June 2026  ·  Blog

We Were Wrong About the Cloud

For two years this site said "100% offline. No account. Free." All of that was true — and most of it was motivated by a fear of cloud costs that turned out to be unfounded.

The original version of SiteDictation was a desktop app. You downloaded a .dmg, approved a security warning, and the app ran locally. Audio was bundled inside. Translations were bundled inside. Nothing phoned home. The product worked without an internet connection after the initial download.

We framed this as a feature. In some ways it was — offline is genuinely useful. But the deeper reason was a belief formed in 2022 while running a Java Spring application on AWS Elastic Beanstalk: servers are expensive.

Elastic Beanstalk cost real money to run, even with zero traffic. The meter ran whether or not anyone was using the product.

That belief was correct for that architecture. It was completely wrong for what we needed.

What actually changed

The architecture we needed — and didn't build until recently — has no servers. Audio files live on CloudFront, served at $0.0085/GB after the first terabyte free. A Lambda function runs only when called, billed in 100ms increments. S3 stores user data at $0.023/GB. At the scale of a language learning app with hundreds of users, the bill is single digits per month.

10,000 daily active users doing 25-minute sessions — each playing 80 audio clips at 150KB each — consumes about 3.6TB of CloudFront bandwidth per month. After the free tier: roughly $22. Not $2,200. Not $220. $22.

The "we need to avoid servers" belief was a valid prior formed from real experience. It just didn't generalise. Elastic Beanstalk runs EC2 instances 24 hours a day whether you have traffic or not. A CDN with a Lambda backend charges for actual use. These are different cost models, and conflating them led us to choose a harder distribution path — packaged desktop software — when the right answer was simpler.

What the desktop-first approach cost us

Desktop software has real friction: a download, a security approval, an installation. The web has none of that. Someone who lands on a page and sees "Try it in your browser" can be practising Romanian sentences thirty seconds later. Someone who sees "Download the .dmg" might come back later, or might not.

Beyond conversion, desktop distribution means version management. An update requires a new download. A bug fix requires users to download again. The web app updates silently, immediately, for everyone. The spaced repetition algorithm improved last week — every web user got that automatically. Desktop users on an old version didn't.

There was also the assumption that "offline" was a differentiator. For most language learners it isn't — they practice at home, on their phone, with a connection. Offline is a nice property, not a reason to choose a product.

What we kept

The desktop app still exists and still works. If you prefer a native application, or genuinely practice offline, or don't want a browser tab, you can still download it. The algorithm is identical. The corpora are the same. Nothing about the desktop experience got worse.

What changed is the emphasis. The browser is now the primary path. sitedictation.com/play/ has seven languages, full corpora (19,000+ Romanian sentences, 70,000+ French, 23,000+ Spanish), and a subscription model for users who want to go beyond the free tier. The desktop app is a secondary option for users who have specific reasons to prefer it.

On "free, no account"

The browser app has a free tier — 1,000 sentences, no account required, no credit card. Beyond that is a Pro subscription at €9.99/month. We no longer claim the product is "completely free" because that's not accurate for the full corpus.

The honest version: the free tier is genuinely free and genuinely useful. A thousand sentences of real native speaker audio with spaced repetition is more practice material than most people exhaust in their first several months. The subscription exists for users who want the full archive — and for people who want to support continued development.

We should have built this way from the start. The limiting belief was ours, not a constraint of the technology.

Site Dictation — listen to native speakers, type what you hear, spaced repetition handles the rest. Romanian, German, French, Spanish, Italian, Portuguese, and English. Try it in your browser →