Upload your photo
Drag and drop, browse the photo library, or paste directly from the clipboard. The shell resizes images client-side to keep uploads lightweight.
Turn into the Grinch, travel to Paris, get a professional headshot, or remix your next social post from one photo. This starter Cloudflare Pages shell is wired for browse, try, search, and category landing pages.
PRD-aligned flow: drag in a photo, choose from the searchable catalog, preview the transform, then download or share the result.
Drag and drop, browse the photo library, or paste directly from the clipboard. The shell resizes images client-side to keep uploads lightweight.
Browse category pages, search by tags, or open a specific filter from the curated starter catalog. Filter metadata lives at /docs/filters-index.json.
Use the result slider, switch between variants, copy share text, and preview the free-usage dashboard before backend wiring is complete.
These cards pull from the current month’s seasonalMonths values, with a curated fallback when the full manifest is still being assembled.
Each category page is static HTML with shared JS components, unique metadata, and automatic catalog hydration when new filters land.
Curated popularity sorting provides strong default recommendations while the real analytics and expanded manifest are still being wired in.
Use the browser for discovery, dark-mode browsing, and fast demo transforms with daily free usage indicators.
The UX already makes room for “Get the app” and “uses your API key” messaging without fabricating backend credentials.
The companion app can point at the same manifest path once the full generated catalog replaces the starter data.
The static foundation is ready for Cloudflare Pages deployment, catalog iteration, and future worker integration.