TaskFlow.
Task Management App
My first Python project — built on my own with zero prior knowledge and no tutorials, and where I learned FastAPI and authentication.
No public deployment yet. Watch the demo video below; the source code is on GitHub.

- Role
- Solo — design and full-stack development
- Status
- Demo video + source on GitHub
- Stack
- Next.js · TypeScript · Supabase · FastAPI · Python
01
Watch the demo
02
Overview
TaskFlow is a full-stack task management app aimed at development teams: projects, task buckets, and a dashboard that shows what is done and what is still pending.
The front end is Next.js and TypeScript. The back end is a FastAPI service written in Python, with Supabase handling sign-in and the database in between.
It was my first project in Python. I started with zero knowledge, built it without following tutorials, and learned the whole language through it.
03
The problem
This started as a learning project, and I want to be upfront about that. I wanted to build a real back end of my own, and to understand how it and a Next.js front end agree about who the user is.
So the goal was less “another to-do app” and more: learn Python, FastAPI and authentication by building something that has to work.
04
What it does
01
Dashboard
A summary view with total projects, completed and pending tasks, and an overall completion rate, plus a live list of recent tasks.
02
Projects and task buckets
Create projects and organise their tasks into buckets, so a team can see what is in progress at a glance.
03
Accounts
Sign-up and login, with each person only able to see their own data.
05
How it fits together
Supabase issues the user's auth token. The token travels from the Next.js app to the Python service, and the database decides what each user is allowed to see.
01
Next.js + TypeScript
Landing page, login and dashboard
02
Supabase Auth
Issues the user's token on sign-in
03
FastAPI (Python)
Back-end service the front end talks to
04
Supabase Postgres + RLS
Row Level Security keeps each user's rows private
06
What I built
- Front end in Next.js and TypeScript
- Python back end with FastAPI
- Auth and database setup on Supabase, including Row Level Security
- Testing every API myself
07
Challenges
Learning Python by building
I had no Python background and no tutorial to follow. Every time I fixed one error, the next one appeared, so the whole project was a rollercoaster. Working each one out myself is how I learned the language.
Authentication
Getting sign-in to work across the front end, the Python service and Supabase was where I learned the most, because nothing worked until every piece agreed about who the user was.
Testing the APIs on my own
I tested the APIs myself as I built them, instead of assuming they worked, which is how I found and fixed most of my mistakes.
08
What I learned
- Python, from scratch — the whole language, learned through this one project.
- FastAPI, and how to structure and test a back-end API.
- Authentication: how an auth token actually travels between services, and what each side has to check before it trusts it.
- How Row Level Security stops one user's data leaking to another, enforced by the database itself and not just by application code.
Next case study
Al-Habl
A Quran platform that doesn't just tell you to reflect — it walks you through the Quran with a five-lens structure, AI that never makes up answers, and a community to do it with.