A local-first project management tool for developers. Track projects, write notes, log bugs, PRs, and issues. All of these run on your machine with no cloud dependency.
Built with React + TypeScript + Tailwind on the frontend, FastAPI + Python on the backend, and PostgreSQL as the database. Everything runs in Docker.
- Zero Cloud Leak: Your data never leaves your machine.
- Dockerized Architecture: Spin up the whole stack with a single command.
- Interactive Docs: Built-in Swagger UI sandbox to test backend endpoints.
- Docker Desktop
- That's it. Docker handles everything else.
git clone https://github.com/yourusername/devflow.git
cd devflowCopy the example file and fill in your values:
cp .env.example .envOpen .env and update the following:
POSTGRES_PASSWORD=yourpassword # choose any password
DATABASE_URL=postgresql://postgres:yourpassword@db:5432/devflow # repeat the same password here
BACKEND_PORT=8000 # internal/external api container port
VITE_API_URL=http://localhost:8000 # keep this unless you change BACKEND_PORTNote: If you change
BACKEND_PORT, updateVITE_API_URLto match. For example, ifBACKEND_PORT=9000thenVITE_API_URL=http://localhost:9000.
docker compose up -dThis starts three containers:
frontend— Vite dev server at http://localhost:5173backend— FastAPI server at http://localhost:8000 (Automatically initializes database tables on first boot)db— PostgreSQL database
Visit http://localhost:5173 to use the app.
docker compose downTo stop and delete all data (wipes the database volume clean):
docker compose down -vdevflow/
frontend/ # React + TypeScript + Tailwind (Vite)
backend/ # FastAPI + Python
docker-compose.yml
.env # your local config (never committed)
.env.example # template for setup
.gitignore # list of all files to git ignore (.env included)
When the backend is running, FastAPI generates interactive API documentation automatically at:
http://localhost:8000/docs
You can test all routes directly from the browser here.
You can connect TablePlus, pgAdmin, or any Postgres GUI to inspect your live data while Docker is running:
| Field | Value |
|---|---|
| Host | 127.0.0.1 |
| Port | 5432 |
| User | postgres |
| Password | (your POSTGRES_PASSWORD from .env) |
| Database | devflow |
Local Requirements: Node.js v18+ and Python 3.10+
If you want to run the layers locally on your machine native environment without Docker:
-
Install PostgreSQL locally and create an empty database named
devflow -
Create
backend/.envwith:DATABASE_URL=postgresql://postgres:yourpassword@localhost:5432/devflow
-
Set up a virtual environment and install dependencies:
cd backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
-
Run the backend:
uvicorn main:app --reload
-
In a separate terminal window, run the frontend engine:
cd frontend npm install npm run dev
| Layer | Technology |
|---|---|
| Frontend | React, TypeScript, Tailwind CSS, Vite |
| Backend | Python, FastAPI, SQLAlchemy |
| Database | PostgreSQL |
| DevOps | Docker, Docker Compose |
This project is open source and contributions are welcome. If you find a bug or want to suggest a feature, open an issue on GitHub.