How we built Cloude
Cloude came in with an MVP in early access and a round about to close. The founder wanted one team to take the marketing site, the web product and the mobile app inside one codebase, and wanted a privacy claim that could defend itself in front of a security researcher.
Marketing and product, same code
Most consumer cloud products live with a fracture. The marketing site lives in one repo, the product in another, and in the middle there's a translation layer nobody really wants to maintain. At launch, marketing and engineering ship in separate events, and the visitor sees a preview that doesn't match the product they receive on signup.
We argued for one Next.js codebase, one design system, one team. The founder backed the call. The price is that a copy change costs a coordination with the deploy, and a component refactor has to account for SEO. The return is that the Files component the visitor sees on the landing is the real one from the product. On signup, there's no gap. The launch quarter shipped in a single event, and the retention on the first thousand users wasn't spent on disillusion.
Engineering for the TechCrunch day
The seed deck projected an order-of-magnitude jump in users over the next twelve months. We built for the projection, not for the load of the moment.
The file list renders a fixed number of rows on screen, so the browser does the same work with a thousand entries or a million. Recent files come from a single server query, indexed on the columns that matter. The local browser cache reads from disk first, and the first paint shows up before the network responds. When the phone switches from Wi-Fi to cellular, the connection survives without restarting the handshake. The day the first press piece dropped, the product held. Not by luck.
Native mobile, because it has to be
The shortcut was a PWA wrapped in a WebView. We went native. Not for style, but because in a privacy product the encryption keys have to live inside the secure area of the phone, and a WebView can't reach it. The mobile client is React Native on the web's design system, so a token change reaches every client at once. The build stays under the threshold where Apple and Google keep delivering silent background updates, and new versions arrive on the phone without the user having to open the store app.
Privacy that gets verified
On-device encryption often shows up in the latency bill: longer cold starts, files that open more slowly, more trips on the wire. That cost, in the cases we've seen, doesn't come from the encryption operations. It comes from architecture choices that are avoidable if you think about them up front.
Files are encrypted on the device before they leave it. The keys derive from the passphrase the user picks, and they never live on the server. Private keys stay inside the secure area of the phone, and they don't come out on a modified device. The server only holds opaque blobs, and no one on the infrastructure sees a decrypted key.
An independent security audit runs against the architecture on a recurring cadence. The disclosure programme spells out response times to anyone reporting a vulnerability, and every report is tracked through to closure. When a journalist or a compliance officer asks to see what's under the hood, the customer doesn't read our promise. They read a report written by someone else.
What the choice gives back
After launch, when the founder wanted to add a new platform target, a new sharing model, a new page in the transparency report, that was a change in a single repository, not a coordination across three teams. The design system is the contract between the marketing and the product, and the contract holds.