Back

TaskFlow

A personal task and project tracker built for myself — runs entirely on GitHub Pages with no backend, no database, no monthly cost.

Web App React Open Source
View on GitHub →

Why I Built It

I needed a task tracker I actually owned. Every tool I tried was either too complex, required an account, cost money after the free tier, or stored my data on someone else's server. I wanted something simple — just tasks, projects, and deadlines — that I could open in a browser without logging in, that never loses my data, and that I can fork and change whenever I want.

The solution: store everything as a single JSON file inside a GitHub repository. The app reads and writes that file directly via the GitHub API. No server, no database, no subscriptions. Everything lives in your own repo, under your own account, forever.

What It Does

  • Track tasks under named projects, or as standalone general tasks
  • Set deadlines or leave tasks open-ended — both are tracked differently
  • Priority levels: urgent, normal, someday — automatically ranked
  • Dashboard shows what needs attention today, overdue items, and hours queued
  • Pin any task to today's strip so it stays visible
  • 7-day schedule chart and 14-day Gantt chart built into the dashboard
  • Streak tracker — counts consecutive days with at least one completed task
  • Focus timer — click a project to start timing it, auto-pauses on inactivity
  • Suggested tasks surface what you should work on next, with a reason
  • All data committed to your GitHub repo on every save

How It's Built

Frontend React 18 + Vite
Styling Tailwind CSS v3
Charts Recharts + custom Gantt
Data storage JSON file in your GitHub repo
Hosting GitHub Pages (free)
Backend None — GitHub Contents API only

How to Use It

  • Step 1 — Fork the repo at github.com/akash2000e/Taskflow to your own GitHub account
  • Step 2 — Copy data/tasks.example.json to data/tasks.json and commit it to your repo
  • Step 3 — Go to your repo → Settings → Pages → set source to the gh-pages branch (GitHub Actions creates this automatically after first push)
  • Step 4 — Create a GitHub Personal Access Token with repo scope at github.com/settings/tokens
  • Step 5 — Open your Pages URL, enter your GitHub username, repo name, and token on the Setup screen — done

Your token stays only in your browser's localStorage — it never leaves your device. Every task you add, edit, or complete is committed directly to your data/tasks.json file.