A purpose-built voting and entry platform that delivers a magazine-quality experience for NanaWall's annual design awards — on-brand, high-performance, and ready to scale from internal curation to public participation.
Showcase is a dedicated contest platform built to power NanaWall's NanaAwards program. It handles the complete lifecycle — entry submission, photo uploads, moderation, category-based voting, and results — all wrapped in a premium visual experience that reflects NanaWall's brand quality. Built on Cloudflare's global edge network for instant performance worldwide.
Running the NanaAwards today means choosing between solutions that don't match the NanaWall brand standard. The options available — Google Forms, SurveyMonkey, ShortStack, Wishpond — all share the same fundamental problems:
The architects, designers, and homeowners who enter NanaAwards create stunning spaces. The platform that showcases their work should be equally stunning.
Showcase is built from the ground up for NanaWall's NanaAwards — not adapted from a generic tool. Every screen, interaction, and pixel is designed to elevate the contest experience:
A guided, step-through experience designed to feel like browsing a premium magazine — not filling out a form. Voters focus on one category at a time, making thoughtful selections with clear progress throughout.
Full-bleed NanaWall hero image, headline, and "Start Voting" CTA
Step through categories, select one entry per category from visual cards
Summary of all selections with option to change before submitting
Celebration moment with elegant animation confirming the vote
Targeted CTAs: schedule consultation, explore products, share on social
Each contest entry is presented as a high-quality visual card with interactive states that provide clear, immediate feedback:
| State | Visual Treatment | Purpose |
|---|---|---|
| Default | Subtle border, full opacity, high-res photo | Invites browsing |
| Hover | Slight lift, shadow, border highlight | Signals interactivity |
| Selected | Brand-color border, checkmark badge, subtle glow | Confirms choice |
| Submitted | Reduced opacity, disabled interactions | Prevents re-voting |
Responsive layout: 4 cards/row on desktop (1200px+), 2 cards/row on tablet (768px+), single card with swipeable carousel on mobile (<768px).
Phase 1 delivers 11 capabilities — everything needed to run NanaAwards end-to-end, from entry submission through voting and post-vote engagement.
Full-bleed hero, configurable text, NanaWall brand colors and typography throughout
Guided step-through with progress indicator, entry cards, selection feedback
Summary screen with all selections, change option, celebration on submit
Targeted CTAs, social sharing, brand reinforcement after voting
Categories, entries, branding, CTAs — all configurable without code changes
Adapter pattern for data sources — static files now, D1 database, Drupal later
Votes persist to Cloudflare D1 for real tallying, analytics, and results
Participants self-submit projects with photos, stories, and contact info
Queue-based review: approve, reject, or request revision on submissions
R2 storage with auto-resize to thumbnail, standard, and hero variants
Auto-sync participant emails to Eloqua — match existing contacts or create new
Showcase runs entirely on Cloudflare's infrastructure — the same platform powering 25M+ internet properties. Every asset is served from 300+ data centers worldwide, ensuring voters in New York and Tokyo get the same instant experience.
Modern UI framework with tiny bundles and fluid animations
Global CDN deployment with instant cache invalidation
Server-side logic at the edge — vote processing, image handling, API routes
SQLite database at the edge for votes, entries, and contest data
Object storage for uploaded images with zero egress fees
Zero-trust auth for admin and moderation routes — no passwords to manage
Edge-first architecture means <100ms TTFB globally. Static assets cached on 300+ CDN nodes. Images auto-optimized and served as WebP. JS bundle target <100KB gzipped.
Showcase integrates with NanaWall's marketing and web infrastructure — not as an afterthought, but as core capabilities designed into the platform.
Every contest participant (voter or entrant) is automatically synced to Eloqua. Existing contacts are matched by email; new contacts are created with contest-specific custom fields (contest year, participation type, category, submission date). Async processing — never blocks the user experience.
Zero-trust authentication for admin and moderation routes. NanaWall team members access moderation via their existing email domain — no new passwords, no custom auth system. Protected by Cloudflare's identity layer.
Export contest winners with full metadata (title, location, images, category, year)
into Drupal-compatible format for the nanawall.com Inspiration Gallery.
Winners appear on /projects with year-based filtering (e.g., "NanaAwards 2026").
Dynamic Open Graph images per contest and per entry. Share buttons with pre-populated content. Every shared link renders a rich preview on social platforms, driving traffic back to the contest.
| Capability | Showcase | ShortStack / Wishpond | Google Forms + Manual |
|---|---|---|---|
| NanaWall branding | ✓ Full control | ~ Template-based | ✗ None |
| Premium visual experience | ✓ Magazine-quality | ~ Generic widgets | ✗ Form UI |
| Entry submission + moderation | ✓ Integrated | ~ Partial | ✗ Manual process |
| Category-based voting | ✓ Step-through UX | ~ Single list | ✗ No voting |
| Eloqua integration | ✓ Built-in | ✗ Zapier required | ✗ Manual CSV |
| Drupal export to nanawall.com | ✓ Planned (Phase 4) | ✗ Not possible | ✗ Manual entry |
| Image processing pipeline | ✓ Auto-optimize | ~ Basic upload | ✗ Manual resize |
| Vote integrity | ✓ Fingerprint + rate limit | ~ IP-based | ✗ None |
| Performance (global) | ✓ Edge-served, <2.5s | ~ Single origin | ✓ Google infra |
| Ongoing SaaS cost | ✓ Near-zero hosting | $100–500+/mo | ✓ Free |
| Data ownership | ✓ Your infrastructure | ✗ Their servers | ✗ Google servers |
Contest launches are spiky — email blast goes out, social posts fire, and thousands of voters arrive in a narrow window. Showcase is architected for these bursts.
NanaAwards 2026 is Phase 1. Showcase continues to evolve with capabilities that benefit NanaWall (Drupal export, enhanced analytics) and the broader platform.
Showcase is Paul's product — a general-purpose contest platform being built for commercial release. NanaAwards 2026 serves as the inaugural deployment and proof-of-concept. Paul is investing his own time to build the core platform at no cost to NanaWall. Only NanaWall-specific customization and integration work is proposed as billable.
The core contest engine — voting, submissions, moderation, image processing — is built at Paul's expense as a product investment. NanaWall pays only for work that is specific to NanaWall: brand integration, Eloqua sync, Drupal export, and contest configuration.
~70% of the total effort is Paul's investment. NanaWall's billable portion covers only NanaWall-specific work.
Estimates are based on demonstrated velocity across recent projects built on the same stack (SvelteKit + Cloudflare Workers + D1 + R2). For reference: TruckIt shipped a full MVP with 12 requirements, 247 acceptance criteria, 124 tests, and production deployment in under 2 days. Bodmail — a complete email platform with 25+ requirements — shipped in 4 concentrated coding days.
The contest engine that powers NanaAwards and future Showcase deployments. This is product development that Paul is funding independently.
| Capability | Description | Hours |
|---|---|---|
| Project scaffolding | SvelteKit + Cloudflare adapter + D1 + R2 + Tailwind + CI/CD | 2 |
| CAP-01: Landing experience | Full-bleed hero, configurable text, responsive layout, scroll animations | 3 |
| CAP-02: Category voting | Step-through flow, entry cards, selection states, progress indicator, mobile carousel | 5 |
| CAP-03: Vote review | Summary screen, change selections, submission with celebration animation | 2 |
| CAP-04: Post-vote engagement | Thank-you screen, configurable CTAs, social sharing, brand footer | 2 |
| CAP-05: Contest configuration | Data file structure, CSS custom properties theming system | 2 |
| CAP-06: Pluggable data layer | Adapter interface, repository pattern, static + D1 adapters | 3 |
| CAP-07: Server-side votes | D1 schema, Workers API, optimistic UI, idempotent submission | 3 |
| CAP-08: Entry submission | Guided form, image upload with preview, validation, confirmation | 4 |
| CAP-09: Entry moderation | Queue UI, approve/reject/revision actions, audit trail | 3 |
| CAP-10: Image pipeline | R2 upload, Workers processing (3 variants), WebP conversion, CDN serving | 4 |
| Testing & QA | Unit tests, integration tests, cross-browser, accessibility audit | 4 |
| Responsive polish | Desktop, tablet, mobile breakpoints, touch interactions, iOS Safari fixes | 3 |
This is Paul's investment in the Showcase product. NanaAwards is the proof-of-concept deployment.
Work that is exclusively for NanaWall's deployment — integrating with NanaWall systems, applying NanaWall branding, and configuring the NanaAwards contest. Billed at Paul's standard hourly rate.
| Work Item | Description | Paul Hours |
|---|---|---|
| CAP-17: Eloqua integration | OAuth/Basic auth setup, contact lookup & create, custom field mapping (contest year, participation type, category), async queue with retry, error handling | 6 |
| NanaWall brand application | Apply NanaWall colors, fonts, logo; configure CSS custom properties; test brand rendering across all pages and devices | 3 |
| NanaAwards contest setup | Configure categories (Residential, Commercial, etc.), populate initial curated entries, set up hero imagery, configure post-vote CTAs | 3 |
| Cloudflare Access config | Set up zero-trust auth for NanaWall team email domain, configure admin/moderation route protection | 1 |
| NanaWall UAT & iterations | Support NanaWall team testing, address feedback, NanaWall-specific adjustments and refinements | 4 |
Drupal integration for pushing winners to nanawall.com. Not required for NanaAwards launch — can be scheduled after the contest concludes and winners are announced.
| Work Item | Description | Paul Hours |
|---|---|---|
| CAP-16: Drupal JSON export | Generate Drupal-importable JSON for winners (Feeds/Migrate format), map Showcase fields to Drupal content types and taxonomy terms | 4 |
| CAP-16: Drupal API push | Direct JSON:API integration — authenticate, create/update project nodes, taxonomy terms (NanaAwards year filter), image transfer | 6 |
| Drupal UAT & validation | Verify projects appear correctly on nanawall.com/projects, year filter works, no duplicate nodes on re-export | 3 |
Phase 4 can be deferred until after NanaAwards 2026 concludes. Scheduling is flexible.
Based on demonstrated delivery velocity: TruckIt (full MVP, 12 requirements, 247 acceptance criteria, production deploy) shipped in under 2 days. Bodmail (complete email platform, 25+ requirements) shipped in 4 concentrated coding days. These are not aspirational — they're measured.
| Milestone | Deliverable | Calendar | Paul Hrs |
|---|---|---|---|
| Week 1 | Project scaffold + voting flow (CAP-01 through CAP-04) — live demo | May 1–9 | 14 |
| Week 2 | Data layer + vote storage + entry submission (CAP-05 through CAP-08) | May 12–16 | 12 |
| Week 3 | Moderation + image pipeline + testing (CAP-09, CAP-10, QA) | May 19–23 | 14 |
| Week 4 | NanaWall branding + Eloqua integration + contest config (CAP-17) | May 26–30 | 13 |
| Week 5 | NanaWall UAT, feedback iterations, responsive polish, launch prep | Jun 2–6 | 4 |
| Launch | NanaAwards 2026 goes live | TBD | — |
Gold rows = NanaWall billable hours. Total: ~57 hours across 5 weeks from kickoff. Includes buffer for feedback cycles. Drupal integration (Phase 4) is scheduled separately after contest concludes.
Unlike contest platforms that charge per entry or per vote, Showcase runs on infrastructure you control. 10 voters or 10,000 — the cost is the same.
| Metric | Target | Measurement |
|---|---|---|
| Voting Completion Rate | > 80% | Landing → Thank You page conversion |
| Category Drop-off | < 5% per step | Step progression analytics |
| Post-Vote CTA Click-through | > 15% | Click tracking on thank-you page |
| Entry Submission Rate | > 10% | Visitors → submissions (when open) |
| Moderation Throughput | > 60/hour | Entries processed per moderator hour |
| Lighthouse Performance | > 90 | Lighthouse CI on all pages |
| Eloqua Sync Rate | 100% | Submitted emails synced (with retry) |
| WCAG Compliance | AA | WCAG 2.1 Level AA audit |
Paul builds a 70-hour contest platform. NanaWall pays for 17 hours of NanaWall-specific work to get a purpose-built, premium NanaAwards experience — live by end of March. No SaaS fees. No vendor lock-in. Full data ownership. Eloqua integrated from day one.