Flèch' Studio: Personalized Crossword Engine and D2C Funnel
Built and launched a direct-to-consumer product end to end: a constraint-solving crossword generator, a stateless Stripe-backed order pipeline, and a paid-acquisition funnel measured down to the euro of margin
The Challenge
Turn a list of 5 to 18 personal words into a real French crossword (arrowed clues, no filler words breaking the theme) that fits a printable A4 sheet, in under a second, with zero manual work per order. Then sell it at 9.90 to 19.90 EUR to cold traffic from Meta and TikTok, where a 22-second generation or a broken mobile step kills the conversion.
The Approach
Treated grid generation as an operations research problem: randomized greedy placement with restarts and a lexicographic objective (words placed, area, crossings), then a constraint-satisfaction filler using backtracking with minimum-remaining-values ordering over bitset-indexed lexicons. Every grid is deterministic from a seed, so the order store is Stripe metadata and the product runs with no database. Growth is run like an experiment: one A/B test at a time, first-touch and last-touch attribution carried into checkout, and an internal dashboard reconciling Stripe revenue, ad spend and PostHog funnel steps.
The Solution
Next.js 16 on Vercel, TypeScript generator with 875 tests and byte-for-byte golden fixtures, headless Chromium for print-ready PDFs, Stripe Checkout with catalog-driven pricing and a webhook that prints, emails the customer and dispatches the print shop. 9,315 clue definitions generated offline with an LLM over a 30k-word lexicon. Meta and TikTok conversions sent server-side with event deduplication. A static marketing site (Cloudflare Pages) with landing pages per acquisition angle and a 20-article SEO blog.
Results
Generation latency at 18 words: p50 585 ms, p90 1.6 s, after cutting p90 by up to 40x on saturated word lists
Zero database: orders, attribution and replayable grids live in Stripe metadata, infra cost under 2 USD a month
Full-funnel measurement: 9 funnel steps, first and last-touch attribution, ROAS and net margin per campaign in a custom dashboard
Up to 5,000 visits a day from paid social, 92% mobile, with one live A/B test at a time driving pricing decisions