A modern web application for creating, organizing, and syncing notes and ideas with BuildOne account integration.
- Create & Organize Notes: Quickly capture and organize your thoughts
- Auto Sync: Notes sync automatically across devices
- Simple Authentication: Email and password login
- Tags & Organization: Organize notes with custom tags
- Real-time Updates: Changes save automatically
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- Backend: Next.js API Routes
- State Management: Zustand
- Deployment: Vercel
- Storage: GitHub Gist for data persistence
- Node.js 18+
- npm or yarn
npm installCreate a .env.local file:
NEXT_PUBLIC_API_URL=http://localhost:3000
GITHUB_TOKEN=your_github_personal_access_token
GIST_ID=your_gist_id
- Go to GitHub Settings → Tokens
- Generate new token (classic) with
gistscope - Create a new gist at gist.github.com
- Add file
drafty-data.jsonwith content:{"users":{},"notes":{}} - Copy gist ID from URL (e.g.,
abc123def456) - Add
GITHUB_TOKENandGIST_IDto.env.local
npm run devnpm run build
npm start- Push to GitHub
- Connect repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy
vercel-
POST /api/auth/signup- Create account -
POST /api/auth/login- Login -
GET /api/auth/me- Get current user
GET /api/notes- Get all notesPOST /api/notes- Create notePUT /api/notes/[id]- Update noteDELETE /api/notes/[id]- Delete notePOST /api/notes/sync- Sync notes
app/
├── api/ # API routes
├── dashboard/ # Dashboard page
├── login/ # Login page
├── signup/ # Signup page
├── layout.tsx # Root layout
└── page.tsx # Home page
components/
├── NoteEditor.tsx # Note editor component
└── NoteList.tsx # Notes list component
lib/
├── api.ts # API client
└── store.ts # Zustand store
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
© 2025 Drafty. All rights reserved. This work is licensed under CC BY-NC-ND 4.0. You may not remix, transform, or build upon this material without permission.