Windows app · Productivity
Tahdoo
An offline first study app for students, with notes, tasks, calendar, spaced repetition flashcards, habits and optional AI tools. It passed Microsoft Store certification with a 7 day trial and a subscription model.

The business problem
Students juggle separate apps for notes, tasks, calendars and flashcards, and most of them need an account and a connection. The goal was one fast desktop app that works with no account and no network, with a business model that could sustain it.
Requirements I set
- Fully usable offline, with no account, and the user's data never leaving the device unless they opt in.
- AI features optional, using the user's own API key, so there's no per-user cost to the business.
- A free trial that starts at first launch with no network dependency, converting to a Microsoft Store subscription.
- Pass Microsoft Store certification.
Solution design decisions
- Desktop shell with a local database: Electron with React for the interface and an embedded SQLite database. I chose it for offline-first storage and a fast single-file data model.
- Privacy by design: bundled fonts, a strict content security policy, and outbound network only for the user's opt-in AI calls.
- Licensing architecture: a 7-day trial tracked entirely on the device, then subscription verification through the Windows Store API.
- Native purchase bridge: when the Store purchase dialog couldn't open from the desktop shell, I specified a small native .NET helper to own the purchase flow. The same component was later reused by CertMoat.
- Native version evaluated: I scoped a React Native for Windows version as the long-term path away from Electron's platform limits.
How the project was run
- Nine packaged releases. Each failed Store certification was traced to its exact platform cause (product-ID handling, an API that fails silently inside the packaged app, a timing race in the subscription check) and written up before the next submission.
- Added a full review gate before packaging after the early failures.
Results
| Measure | Result |
|---|---|
| Packaged builds | 9 |
| Certification | Passed Microsoft Store certification |
| Code | About 8,400 lines across the Electron main process and React interface, plus a 164 line .NET purchase helper |
What I learned
Platform certification is a test suite you don't control. Reproducing each rejection and fixing the root cause was faster than resubmitting and hoping.
How AI was used
What AI did: The code was written with AI coding tools against my specifications.
What I did: I wrote the requirements, chose the architecture and licensing model, ran every Store submission and diagnosed each certification failure.
How quality was controlled
- Root cause written up before every resubmission
- Full review gate before every package