A workspace-centric productivity app for developers
Organize your todos, notes, and pages by project โ not by endless lists.
Notion is great, but sometimes you just want a focused space for a project โ tasks on one side, notes on the other, and rich pages for documentation. No databases, no templates, no friction. Just workspaces that keep you in flow.
- ๐ Workspaces โ Create project-specific spaces to organize everything
- โ Tasks โ Quick todos with priorities (none, low, medium, high)
- ๐ Notes โ Titled notes with content and tags for quick reference
- ๐ Pages โ Rich text pages for detailed documentation within workspaces
- ๐จ Themes โ Multiple beautiful themes including Japanese Pastel
- ๐ Authentication โ Secure auth via Supabase with row-level security
- ๐ฑ Responsive โ Works beautifully on desktop and mobile
- ๐ญ Demo Mode โ Try the app without signing up
- FastAPI โ Modern, fast Python web framework
- Supabase โ PostgreSQL database with real-time capabilities
- Pydantic โ Data validation and settings management
- Python-JOSE โ JWT authentication
- Next.js 14 โ React framework with App Router
- TypeScript โ Type-safe development
- Tailwind CSS โ Utility-first styling
- Radix UI โ Accessible component primitives
- SWR โ Data fetching and caching
- Sonner โ Beautiful toast notifications
- Supabase โ Database, authentication, and storage
- PostgreSQL โ Relational database with RLS
moji/
โโโ backend/
โ โโโ app/
โ โ โโโ main.py # FastAPI application
โ โ โโโ config.py # Settings and environment variables
โ โ โโโ dependencies.py # Auth and Supabase clients
โ โ โโโ models/ # Pydantic schemas
โ โ โ โโโ workspace.py
โ โ โ โโโ task.py
โ โ โ โโโ note.py
โ โ โ โโโ page.py
โ โ โโโ routes/ # API endpoints
โ โ โโโ workspaces.py
โ โ โโโ tasks.py
โ โ โโโ notes.py
โ โ โโโ pages.py
โ โโโ requirements.txt
โโโ frontend/
โ โโโ app/ # Next.js pages (App Router)
โ โ โโโ page.tsx # Dashboard
โ โ โโโ login/
โ โ โโโ profile/
โ โ โโโ settings/
โ โ โโโ workspaces/
โ โ โโโ [id]/
โ โ โโโ page.tsx # Workspace detail
โ โ โโโ pages/
โ โ โโโ [pageId]/
โ โโโ components/ # React components
โ โ โโโ ui/ # shadcn/ui components
โ โ โโโ Sidebar.tsx
โ โ โโโ TaskList.tsx
โ โ โโโ NoteList.tsx
โ โ โโโ PageEditor.tsx
โ โ โโโ ...
โ โโโ lib/ # Utilities
โ โโโ api.ts # API client
โ โโโ supabase.ts # Supabase client
โ โโโ themes.ts # Theme system
โ โโโ hooks.ts
โโโ supabase/
โโโ schema.sql # Database schema
โโโ add_pages.sql # Pages table migration
- Node.js 18+ and npm
- Python 3.10+
- Supabase account (free tier works)
- Create a new project at supabase.com
- Go to SQL Editor and run the contents of
supabase/schema.sql - Run
supabase/add_pages.sqlto add the pages table - Enable Email/Password auth in Authentication > Providers
- Get your API keys from Settings > API:
- Project URL
anonkey (public)service_rolekey (secret, backend only)
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Create .env file
cat > .env << EOF
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_KEY=your-service-role-key
DEBUG=true
ALLOWED_ORIGINS=http://localhost:3000
EOF
# Run the server
uvicorn app.main:app --reload --port 8000The API will be available at http://localhost:8000 with interactive docs at /docs.
cd frontend
# Install dependencies
npm install
# Create .env.local file
cat > .env.local << EOF
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
NEXT_PUBLIC_API_URL=http://localhost:8000
EOF
# Run the dev server
npm run devThe app will be available at http://localhost:3000.
All endpoints require authentication via Bearer token (Supabase JWT) in the Authorization header.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/workspaces |
List all workspaces |
POST |
/api/v1/workspaces |
Create workspace |
PUT |
/api/v1/workspaces/{id} |
Update workspace |
DELETE |
/api/v1/workspaces/{id} |
Delete workspace |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/workspaces/{id}/tasks |
List tasks in workspace |
POST |
/api/v1/workspaces/{id}/tasks |
Create task |
PUT |
/api/v1/tasks/{id} |
Update task |
PATCH |
/api/v1/tasks/{id}/toggle |
Toggle task completion |
DELETE |
/api/v1/tasks/{id} |
Delete task |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/workspaces/{id}/notes |
List notes in workspace |
POST |
/api/v1/workspaces/{id}/notes |
Create note |
PUT |
/api/v1/notes/{id} |
Update note |
DELETE |
/api/v1/notes/{id} |
Delete note |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/workspaces/{id}/pages |
List pages in workspace |
POST |
/api/v1/workspaces/{id}/pages |
Create page |
GET |
/api/v1/pages/{id} |
Get specific page |
PUT |
/api/v1/pages/{id} |
Update page |
DELETE |
/api/v1/pages/{id} |
Delete page |
| Method | Endpoint | Description |
|---|---|---|
GET |
/ |
API status |
GET |
/health |
Detailed health check |
Create project-specific spaces to organize your work. Each workspace contains its own tasks, notes, and pages.
- Quick todos with content
- Priority levels: none, low, medium, high
- Toggle completion status
- Organized by workspace
- Titled notes with rich content
- Tag support for organization
- Quick access from workspace sidebar
- Rich text pages for detailed documentation
- Full-page editor with auto-save
- Organized within workspaces
- Perfect for project documentation
- Default โ Clean dark theme with blue accents
- Japanese Pastel โ Soft lavender and sakura tones with paper texture
- More themes coming soon!
- Row-level security (RLS) ensures users only see their own data
- JWT-based authentication via Supabase
- Secure API endpoints with user verification
- Real-time updates with Supabase subscriptions
- Drag-and-drop task reordering
- Markdown support for notes and pages
- Search across workspaces
- More theme options
- Mobile app (React Native)
- Workspace sharing and collaboration
- Export/import functionality
This project is licensed under the Apache License 2.0 โ see the LICENSE file for details.
Noxire-Hash
- GitHub: @Noxire-Hash
Built with โค๏ธ using FastAPI, Next.js, and Supabase