We operate products. We don't talk about them.
This is not a portfolio. This is not a pitch deck.
This is where we write about what we believe
and how we build. If that's interesting to you,
keep reading. If not, that's fine too.
Writing
Two apps can look identical. Same screens, same features, same stack. And yet one converts at 12% and the other at 4%. The answer is embarrassingly simple: one team ships 10x more iterations. This is the story of how we built a self-hosted OTA update system for 400K DAU.
Cloudflare R2 + D1 + Workers. Under a dollar a month. Seven onboarding variations in two weeks. The compound effect in action.
read full article →How venture capital became the system's answer to an uncomfortable question: what happens when creators don't need permission anymore? This is not an anti-VC article. It's a sociological observation about how a financial instrument became an identity, a rite of passage, and a mechanism of control.
Venture capital has achieved radical monopoly over entrepreneurial legitimacy. If you haven't raised, you don't exist. Not because you're not building. Because the system only recognizes one signal.
read full article →The startup mythology has three heroes: the tireless founder, the visionary genius, and the resilient warrior. All three are lies — not because these people don't exist, but because the stories are told backwards, stripping out the only variables that actually mattered.
Timing accounted for 42% of the difference between success and failure. More than the team, the idea, the business model, or the funding. Here's what actually matters: timing, barriers to entry, and luck.
read full article →Accessibility used to mean one thing: making software usable for people with disabilities. But with Claude Code and AI coding agents, your codebase now has a second class of "user" that needs to navigate it. A codebase that's "AI-accessible" produces better AI output — fewer hallucinations, fewer broken implementations, faster iteration.
The developer's role shifted from writing code to structuring it. An architect who structures a codebase well can get 10x output from Claude Code. Here are the 6 rules we follow.
read full article →Every few months, someone writes a blog post about switching from React Native to native, or vice versa. Both sides are wrong — because the choice doesn't need to be binary. Our thesis: start React Native, go native where it hurts.
We call it the hotspot model. 92% React Native, 8% native modules. That 8% covers the swipe engine, image preloading, and a custom camera module. Everything else is cross-platform.
read full article →DAU is the vanity metric that killed more products than bad code ever did. It counts opens, not engagement. It rewards push notification spam over genuine value. We replaced it with something harder to game: weekly retained users who complete a core action.
The moment we stopped optimizing for DAU, our actual retention improved. Turns out, when you stop counting zombie sessions, you start building for the users who matter.
read full article →Most teams treat pricing as a fixed variable. We decided to treat it like any other product surface — something you test continuously and iterate on weekly. Over 60 days, we ran 40 distinct experiments across cohorts.
The single biggest finding: showing the daily cost instead of the monthly cost increased conversion by 34%. $0.33/day feels like a decision you've already made. $9.99/month feels like a commitment.
read full article →We deleted our sprint board. Not because we stopped planning — because the planning loop compressed from two weeks to two hours. Claude Code let us go from idea to deployed feature in a single session, which made the ceremony of sprint planning feel like overhead.
Now we write a one-line intent, build it, ship it, and measure it. The backlog is a text file. The standup is a commit log.
read full article →After analyzing 200K+ user journeys, we found a consistent pattern: users who complete 3 meaningful interactions within their first 48 hours convert to paid at 4x the rate of users who don't. Not 2. Not 5. Three.
The entire free experience should be engineered to get users to that third interaction as fast as possible. Everything else is noise.
read full article →Every screen in your onboarding has a drop-off rate. Every question you ask is a decision point where the user can leave. If you're treating onboarding as education, you're optimizing for the wrong thing. Onboarding is a conversion funnel. Measure it like one.
The best onboarding we've built has zero explanation. It just puts the user inside the product and lets them do the thing they came for.
read full article →Three people. Four live products. Combined 80K+ MAU. No project managers. No QA team. No dedicated DevOps. This isn't a flex — it's a constraint we chose because small teams make better decisions faster.
The trick isn't working harder. It's ruthless prioritization, aggressive automation, and the willingness to let things be slightly broken if they're not on the critical path.
read full article →Frequentist A/B testing requires sample sizes most consumer products don't have on a per-experiment basis. You either wait 3 weeks for significance or you make gut calls. Both are bad. Bayesian methods give you a third option: make decisions with calibrated uncertainty.
We switched to Bayesian A/B testing 8 months ago. We now run 3x more experiments and make faster calls with higher confidence.
read full article →The push notification is the most underrated product surface in mobile. For most users, the notification IS your product — it's the only part they see on any given day. If your notification is generic, your product is generic.
We spent 6 weeks redesigning nothing but our notifications. Retention went up 22%. We didn't change a single screen inside the app.
read full article →The average user has 4-6 active subscriptions. Yours needs to survive the monthly audit — that moment when they open Settings and decide what to cancel. The products that survive aren't the cheapest. They're the ones that delivered obvious value in the last 30 days.
We built a "value receipt" — a monthly summary of what the product did for you. Churn dropped 18% in the first month.
read full article →Twelve deploys a day isn't about speed for the sake of speed. It's about making each deploy so small that rolling back is trivial and debugging is instant. When a deploy is 15 lines of code, you know exactly what broke.
Our CI pipeline runs in 90 seconds. Our rollback takes one command. Fear of deploying is a symptom of deploys being too big.
read full article →Theses
The default playbook is broken. Raise money, buy users, figure out retention later. This produces a leaky bucket that looks like growth on a slide but bleeds cash in a spreadsheet.
Retention is a product problem, not a marketing problem. If your D7 retention is below 20%, you don't have a distribution problem. You have a product that people don't want to come back to. No amount of push notifications will fix that.
Build something people open on their own. Then figure out how to get more of those people.
The gap between teams that win and teams that don't is iteration velocity. Not talent. Not funding. Not taste. Velocity.
An A/B test that runs for 3 weeks is a strategy failure. If your sample size requires 3 weeks, your test is too subtle. Run bigger swings. Change the entire screen. Remove the feature entirely. Double the price. These tests converge fast because the delta is real.
The team that runs 50 experiments in a quarter will outperform the team that runs 5 every single time, even if each individual experiment is worse.
Every layer of complexity you add is a user you lose. The settings page is where products go to die. "Customizable" is a feature for the builder, not the user.
The best consumer products make one decision for you, and it's the right one 80% of the time. The remaining 20% is the cost of simplicity, and it's worth paying.
If your onboarding has more than 3 steps, you've already lost the median user.
Teams will A/B test button colors for weeks but won't touch their pricing for years. Pricing is the single highest-leverage experiment you can run. It directly impacts revenue with zero engineering cost.
Most consumer subscriptions are underpriced. The anchoring effect of "it's just an app" has trained an entire generation of builders to charge $4.99/month for products that deliver hundreds of dollars in value. The willingness to pay exists. You're just not testing for it.
Somewhere around 2020, "shipping" became a content strategy instead of a product strategy. The incentive shifted from building things people use to building things people tweet about.
The best products we've encountered were built by people who didn't have time to post about them. They were too busy reading support tickets and staring at dashboards.
We don't share our metrics. We don't share our roadmap. We share our thinking, when we think it's useful. That's it.
LLMs let a team of 3 do what used to require 15. This is real and we use it every day. But the principles haven't changed. You still need product-market fit. You still need retention. You still need a business model that works.
What AI actually changes: the minimum viable team size drops, the iteration cycle compresses, and the cost of being wrong goes down. This means you should be making more bets, faster, with smaller teams. It doesn't mean the bets don't need to be good.
The free tier exists to build a habit, not to generate leads. If your free users never convert, the problem isn't your paywall — it's that your free experience didn't make them need the product enough.
The conversion event should feel like removing friction, not adding a gate. The user should be pulling toward paid, not being pushed.
Stack
Work here
We don't have job descriptions. We have problems. If you've shipped consumer products before — real ones, with real users and real revenue — and you want to work in a team that moves fast and doesn't waste your time, reach out.
We're a small team in Paris, mostly remote. We write things down and we ship them. If something breaks, you fix it. If something works, you double down.