From CLI to full-stack to fully agentic — a productivity platform where you can manage tasks, projects, and notes through a web UI or just by chatting with an AI assistant.
DoIt is a productivity application that combines a traditional web interface with a conversational AI assistant. You can organize your work the classic way — dashboards, Kanban boards, note editors — or skip the clicks entirely and just tell the chatbot what you need. Both interfaces share the same data, so everything stays in sync.
| Dashboard | Kanban Board |
|---|---|
![]() |
![]() |
| Notes Board | Chat Interface |
|---|---|
![]() |
![]() |
+---------------------------------------------------------+
| Frontend (Next.js 16) |
| Dashboard | Projects | Notes | Chat UI/Widget |
+------+-------------+-------------+----------------------+
| REST | REST | SSE + REST
v v v
+--------------+ +------------------+
| Backend | | MCP Service |
| FastAPI | | FastMCP + Gemini |
| | | Agent + Tools |
+------+-------+ +--------+---------+
| |
v v
+---------------------------------------------------------+
| PostgreSQL (Neon Serverless) |
| users | projects | tasks | notes | categories | chat |
+---------------------------------------------------------+
- Create, update, delete, and organize tasks across multiple projects
- Kanban board with drag-and-drop columns (TODO / In Progress / Done)
- Grid view alternative with priority levels (Low, Medium, High) and due dates
- Rich markdown editor with formatting toolbar
- Image and audio media attachments
- Category-based organization and filtering
- Multiple projects with Kanban or Grid framework selection
- Color-coded categories shared across notes and tasks
- Dashboard with stats overview
- Full
/chatpage and a floating chat widget accessible from any screen - Natural language management — "Add a task called Deploy v3", "Show my notes", "Create a project called Backend Rewrite"
- 15 MCP tools covering tasks, notes, projects, categories, and dashboard stats
- Google Gemini agent with per-user authenticated context
- Real-time SSE streaming with markdown rendering
- Persistent conversation history with create, switch, and delete support
- Multi-stage Docker builds for all services (optimized image sizes)
- Umbrella Helm chart with subcharts for frontend, backend, and MCP
- Minikube deployment with nginx Ingress for path-based routing
- Health probes (liveness/readiness) on all services
- Secrets management via gitignored
values.secret.yaml
- Better Auth with email/password, Google, and GitHub OAuth
- Docker Compose with three services (backend, mcp, frontend)
- GitHub Actions CI/CD deploying to Hugging Face Spaces
- Neon serverless PostgreSQL with Alembic migrations
doit/
+-- frontend/ # Next.js 16, TypeScript, Tailwind, shadcn/ui
+-- backend/ # FastAPI, SQLAlchemy, Alembic, Better Auth
+-- mcp/ # FastMCP, Gemini agent, MCP tools (Python 3.13+)
+-- helm/doit/ # Umbrella Helm chart with subcharts
+-- doit-cli/ # Original CLI app
+-- specs/ # Feature specs, plans, and task breakdowns
+-- docs/ # Documentation
+-- docker-compose.yml # Full local dev stack
+-- .github/workflows/ # CI/CD pipelines
# Copy env files
cp backend/.env.example backend/.env
cp mcp/.env.example mcp/.env
cp frontend/.env.example frontend/.env.local
# Fill in your database URL, auth secrets, and Gemini API key
# Start all services
docker compose upThe app will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- MCP Service: http://localhost:8080
# Backend
cd backend && uv sync && uv run dev
# MCP Service
cd mcp && uv sync && uv run dev
# Frontend
cd frontend && npm install && npm run dev# Start Minikube and enable Ingress
minikube start --cpus=4 --memory=8192 --driver=docker
minikube addons enable ingress
# Build images inside Minikube
eval $(minikube docker-env)
docker build -t doit-backend:latest ./backend
docker build -t doit-mcp:latest ./mcp
docker build -t doit-frontend:latest ./frontend
# Configure secrets
cp helm/doit/values.secret.yaml.example helm/doit/values.secret.yaml
# Edit values.secret.yaml with your actual DATABASE_URL, BETTER_AUTH_SECRET, GEMINI_API_KEY
# Deploy
helm dependency update ./helm/doit
helm install doit ./helm/doit -f ./helm/doit/values.secret.yaml
# Add DNS entry (use minikube ip to get the IP)
# Add to /etc/hosts: <minikube-ip> doit.local
# Access at http://doit.local| Layer | Technology |
|---|---|
| Frontend | Next.js 16, TypeScript, Tailwind CSS, shadcn/ui |
| Backend API | FastAPI, SQLModel, Alembic, Pydantic |
| MCP Service | FastMCP, Openai agents sdk, Google Gemini, FastAPI (SSE) |
| Database | PostgreSQL (Neon Serverless) |
| Auth | Better Auth (email, Google, GitHub OAuth) |
| CLI | Python, Rich, prompt-toolkit |
| DevOps | Docker Compose, GitHub Actions, Hugging Face Spaces |
| Kubernetes | Minikube, Helm 3, nginx Ingress |
- Phase 1 — CLI — Terminal task manager with slash commands and smart autocomplete
- Phase 2 — Full-Stack Web App — Next.js + FastAPI web platform with auth, projects, Kanban, and notes
- Phase 3 — Conversational AI — MCP-powered chatbot with Gemini agent and 15 natural-language tools
- Phase 4 — Local K8s Deployment — Minikube deployment with Helm charts and Ingress routing
MIT




