Back to projects
TypeScriptNext.jsOperations ResearchConstraint SolvingStripePostHogMeta AdsGrowthVercel

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

1

Generation latency at 18 words: p50 585 ms, p90 1.6 s, after cutting p90 by up to 40x on saturated word lists

2

Zero database: orders, attribution and replayable grids live in Stripe metadata, infra cost under 2 USD a month

3

Full-funnel measurement: 9 funnel steps, first and last-touch attribution, ROAS and net margin per campaign in a custom dashboard

4

Up to 5,000 visits a day from paid social, 92% mobile, with one live A/B test at a time driving pricing decisions