What inPace is, and the rules it's built on
Your plan for this week
| Day | Module | Time |
|---|---|---|
| 1 | The big picture | about 1.5 h |
| 2 | Data, keys and fingerprints | about 1.5 h |
| 3 | Courses and lessons | about 1.5 h |
| 4 | The web layer | about 1.5 h |
| 5 | Trust between learner and checker | about 1.5 h |
| 6 | Tempo's island and notifications | about 1.5 h |
| 7 | Shipping, and explaining it in an interview | about 2 h |
Keep the code open next to this course: github.com/mahmoudyosrimahmoud13/inPace. Every lesson names the files to read. Reading the real code is the point: by Sunday you should be able to draw the system on a whiteboard and walk through any feature end to end.
The product in one paragraph
inPace is a learning app that runs only on your own device. You follow courses, and when you finish a part you save a milestone. You can send your milestones to someone you trust (a checker), who can see that the work is really yours and really in order, and approve it. There are no accounts and no servers: people exchange small signed files or links over WhatsApp, Telegram or email.
The rules every design decision follows
- Local first. All data lives in one folder on the device (
vault.dbplus course files). The app works offline. - No accounts, still trustworthy. Trust comes from cryptography, not from a company's database: every person has a signing key, and every milestone is signed and chained.
- One codebase everywhere. The same Python app runs on Windows, Mac, Linux and Android.
- Plain words. The interface avoids jargon. You'll see this in the code too: names like
go(),page(),say(). - Nothing silent goes online. The app reaches the internet only when you ask (the course library, an update check you allowed, a YouTube video you pressed play on).
Why these rules matter in an interview
When someone asks "why didn't you just build a web app with a backend?", the honest answer is a trade-off: a backend gives easy sync and analytics, but costs money to run, holds people's data, and makes trust depend on the company. inPace chose the opposite corner: zero running cost, full privacy, and trust that anyone can verify. The price is harder sync (you move data with an encrypted backup) and no central dashboard.