Back to portfolio →

Personal project · SaaS product

FreeFlow

Project management connecting tasks, dependencies, time and finances for small teams and consultancies.

FreeFlow landing page showing a flow of tasks, dependencies and values.
Public landing page · early access. View full-size image ↗Open FreeFlow ↗

Problem: delivery and finances in separate tools

Freelancers and small teams usually track tasks in one tool and time, budget and cost in spreadsheets. It is hard to tell whether a late project is also becoming expensive.

FreeFlow organizes projects by mode (development, support or general) with a Kanban board, a visual dependency flow, checklists, time tracking, cycles and per-project management finances.

Decision: monorepo with shared domain rules

The project is a Bun monorepo with the React/Vite interface, the Elysia API and shared packages for the database schema (Drizzle), API contracts and pure domain rules. The same business rule runs in the browser and on the server, and types flow across both ends.

Architecture decisions are recorded as ADRs, such as separating management finances from real billing and the deployment topology.

FreeFlow Kanban board with tasks, assignees, due dates and values per column.
Demo · board with values per column. View full-size image ↗Open FreeFlow ↗

Teams, access and collaboration

The API scopes data by workspace, with teams and role-based access control. Authentication uses Better Auth with HttpOnly cookie sessions and rate limiting.

Comments with mentions trigger notifications, and updates reach the interface through Server-Sent Events. An MCP integration lets coding agents read and update project tasks.

FreeFlow finance panel with estimated result, margin, received, forecast and incurred cost.
Demo · project finance panel. View full-size image ↗Open FreeFlow ↗

Quality and delivery

GitHub Actions CI blocks integration on lint, type, migration or test failures and also builds the API Docker image. Tests cover the interface (Vitest and Testing Library), the API and PostgreSQL integration, including a permission matrix.

The frontend runs on Vercel and the API on Railway, with the database on a private network. Production deployment includes a post-release smoke test and a rollback path.

Building with AI agents

I built FreeFlow on my own, working with Claude Code and Codex. I define the product, each sprint's scope, architecture decisions and acceptance criteria; the agents implement from those plans, and I review and integrate every delivery.

The process is documented in the repository: ADRs, sprint plans with a Definition of Done and a rules file for the agents. In the last sprint, three Claude Code sessions worked in parallel, each in its own worktree, with file ownership per track, queued migrations and integration only through pull requests. CI blocks anything that fails lint, types or tests, regardless of who wrote the code.

Current status

The core works end to end in production. Without an account, the app opens in demo mode: you can create projects saved in the browser or explore a sample project with a board, dependencies and a finance panel. Accounts, teams and sync use the API, in early access.

Get in touch →