Vault
A self-hosted personal command centre backed by your own Google Drive.
- Status
- Completed
- Date
- October 2026
- Category
- Systems
Summary
A self-hosted command centre for notes, projects, job applications and a calendar in which every record is a plain markdown or JSON file inside the user's own Google Drive, with no vendor database of their content.
Description
Vault is a personal information manager built around one constraint: the user's data must remain theirs. Notes, projects, job applications and calendar events live as markdown and JSON files in a folder tree inside the user's own Google Drive, while the application keeps no copy and a small SQLite database holds only the account, OAuth link and preferences. Because Drive is the only store, every surface is honest about failure: an unreachable route returns a typed 403 with a remedy, and a failed save keeps the draft. Lists are served from cached metadata without reading note bodies.
Architecture
- Google Drive file store
- Type-aware filing
- Drive-availability gate
- Metadata list index
- Bounded caches
- Shared application shell
- Realtime over Socket.IO
Technology
- TypeScript
- Next.js 15 (App Router)
- React 19
- Tailwind CSS 3.4
- Radix UI
- react-resizable-panels
- Socket.IO
- NextAuth
- Google OAuth
- SQLite
- Prisma
- Google Drive REST v3
- Vitest
- Testing Library
- Docker
- Docker Compose
- Railway
- ESLint
Features
- Drive-backed content, no vendor store: notes are markdown and jobs are JSON inside Google Drive.
- Type-aware filing: a note lands in the folder for its content type, recorded in the file itself.
- Drive-availability gate: data routes return a typed 403 with a connect link instead of failing.
- Lists without body reads: list metadata lives in Drive properties, so a list costs one call.
- Honest failure states: a failed save keeps the draft and reports the server's reason.
Links
Images
Machine-readable: /projects.json · /llms.txt · /llms-full.txt