I had spreadsheets for everything.
Money I lent to friends. Domain renewals. Bookmarks I'd never find again. Birthdays I'd forget. Each one a tab in a file I'd eventually lose or
share by accident.
So I built NoSheetKit — a suite of small focused tools that each do one job.
The philosophy
No backend. No database. No signup. Data stays in your browser via localStorage.
If you want backups, you have two options:
- Local export — download a ZIP with one JSON file per app, anytime, no login needed.
- Google Drive — connect your account and generate/upload that same ZIP automatically to your own Drive. No shared storage, no third-party servers — your Drive, your file.
The stack
- Next.js (App Router)
- Tailwind CSS + shadcn/ui
- localStorage as primary storage
- Google OAuth for optional login
- Google Drive API for automatic backups
- Google Calendar API for reminders
The apps
- Loans — money lent/borrowed with partial payments and balances
- Dates — birthdays, anniversaries, reminders
- Domains — portfolio with renewal dates and alerts
- Links — saved URLs with tags
- Tasks — kanban + list with spaces
- Collections — books, games, gear tracking
Some decisions I found interesting
localStorage over IndexedDB — simpler, sufficient for personal data volumes,
easier to debug and export.
Cold backup over live sync — Drive backup only triggers manually or at
login/logout. No conflict resolution needed, no sync complexity.
No global state — each mini-app is fully independent. No Zustand, no context
hell. Just a generic useLocalStorage hook shared across apps.
Try it
Live demo (no signup needed): https://nosheetkit.com
Repo (MIT): https://github.com/tulu/no-sheet-kit
Would love feedback on the architecture or the product direction.
Top comments (0)