I Replaced Notion and Jira with a Git‑Based Task Board — What I Learned After 9 Months

Tired of Jira bloat and Notion drift? I moved my team's workflow into the repo with a git-based task board. Here’s why it worked and where it didn’t.

Written by: Rohan Deshpande

A person typing on a laptop with a notebook and coffee on a desk
Image credit: Firmbee.com / Pexels

When your team’s backlog lives in three places — Jira for PMs, Notion for specs, and TODO.md on a dev’s laptop — you stop trusting any of them. Two months of duplicated cards, missed reviews, and billing emails from Atlassian later, I tried something my manager called “bonkers”: move the board into the code.

Nine months in, we run a git-based task board. We store tasks as markdown files in the repo, use branches and PRs for work, and a tiny CI job renders a Kanban page on GitHub Pages. It’s not for every team, but for small engineering-led product teams in India (where SaaS line items are increasingly scrutinised), it became our best tradeoff between discipline and friction.

Why a git-based task board worked for us

How we set it up (simple, practical)

  1. Task files: tasks/.md. Each file has YAML frontmatter: title, assignee, status, priority, sprint, and a brief spec. Example: tasks/2026-001.md
  2. Branch per task: feature/2026-001-add-login. Work happens on that branch; the PR merges the task branch into main.
  3. Small automation: a GitHub Action scans tasks/*.md, compiles a Kanban HTML (or JSON), and deploys to a /board page. No heavy UI; just readable columns and links to files/PRs.
  4. CLI helpers: gh for opening PRs, a tiny Python/Node script to create templated task files (git commit included), and a Husky hook to prevent empty status fields.
  5. Notifications: PRs are still where Slack pings happen. We use PR templates to surface required test steps and QA checkboxes.

The workflow in practice

The real benefits we felt

But it’s not a silver bullet — tradeoffs and real downsides

When to try this (and when not to)

Try a git-based task board if:

Skip it if:

Final notes and one hard lesson

The hardest part was culture, not tech. For the first two sprints we tripped over habits: PMs tried to “assign” tasks in Notion still, and some devs opened PRs without updating the task file. We enforced the discipline with pair onboarding, a small README, and a one-week freeze where all activity had to touch tasks/*.md. That forced the habit.

If you’re curious, start small: implement it in a single repo for a sprint or two. If it sticks, you’ll get cleaner PRs and fewer “which ticket was that?” conversations. If it doesn’t, you’ve learned a lot about what your team actually needs — and saved a month of SaaS subscription fees in the process.

If you want, I can share the tiny scripts we used to scaffold tasks and the GitHub Action that renders the board. It’s intentionally simple so teams in India and beyond can adopt it without a big ops lift.

Thanks for reading — now go open a branch for the next thing you want to finish.