A notes app that remembers what you meant to do.
Private by default. Works offline. Open source.
Write a note. When it's about something you meant to do, it comes back later and asks one question — anything come of this? — with four answers: Not yet · Add update · Done · Let go.
No due dates, no streaks, no guilt.
The ones worth showing people, you can publish to a Feed — note by note, afterwards, and only if you want to. Nothing is public unless you say so, and writing needs no account at all.
| Notes | To-dos | Follow up | Feed | A followed-through thread |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
Captured from the Expo web build at phone width. The feed authors are the local sample data described under Status.
📖 The longer version — the idea, the sharing, accounts, privacy · 📐 What it is, precisely · 🔑 Accounts setup
Built in the open, by one person, part-time. Usable for notes today.
Two things to know before cloning: there's no server yet, so the social side runs against local storage with a few sample authors standing in for other people, and there's no sync, so notes live on the device that wrote them.
| ✅ | Foundations · a good local notes app |
|---|---|
| 🚧 | Follow-through (notes come back; the four-answer card is next) · accounts (sync is next) |
| — | Share sheet and URL scheme · import · ship |
| ✅ | Profiles and handles · follows and the feed |
|---|---|
| 🚧 | Publishing (works in-app; public web pages not built) · safety (no comments yet) |
| — | Themes and wallpapers · discovery |
npm install
npm start # Expo dev server
npm run android # or: npm run iosRequires Node ≥ 20.19, and a development build rather than Expo Go — Google Sign-In is native code:
npx expo prebuild --clean
npx expo run:androidSign-in needs credentials. Without them the app still launches, still takes notes and still reads
the feed. Copy apps/mobile/.env.example to .env.local and see docs/auth.md.
npm test # packages/core, vitest
npm run typecheck
npm run lintAll three run in CI on every PR.
apps/mobile Expo app (expo-router, NativeWind) MIT
packages/core pure TS domain logic, no RN, no Supabase MIT
packages/db Drizzle schema + Postgres migrations AGPL-3.0
supabase migrations, RLS policies AGPL-3.0
docs about.md, product.md, the plans, auth.md, ADRs
packages/core holds hashtag parsing, title derivation, the review scheduler, search ranking and
feed composition — the pieces most likely to have subtle bugs and the most annoying to debug
through a UI, so they're pure functions with unit tests and no simulator involved.
Two seams worth knowing about:
apps/mobile/src/db/social-repo.tsis the entire social storage layer. When there's a real server, that one file gets reimplemented over HTTP and nothing else changes.- Feed rules are code, not database policy. Row-level security answers one question — "is this
row public" — while following, blocking and ordering are decided in
packages/core/src/social.ts, where they can be tested.
The app is local-only until sync lands, so nothing here touches Postgres day to day. To work on the schema, see supabase/README.md.
MIT for the app and core logic, AGPL-3.0-or-later for the database and server. See ADR 0004.




