← Back to blog
·7 min readengineeringphilosophy

Why Git-Native Is the Right Foundation for Developer Education

Most course platforms treat code as an afterthought. We think the repo should be the source of truth — for content, versioning, and delivery.

The Gap Between How Engineers Work and How They Teach

Developers spend their careers mastering version control, code review, CI/CD, and pull requests. These tools exist because plain text + git is a surprisingly powerful substrate: it's durable, diffable, auditable, and composable.

Then they go to teach someone else, and suddenly they're in a WYSIWYG editor, dragging content blocks around, exporting ZIP files, and wondering why the "published at" timestamp is wrong by 3 hours.

The mismatch is jarring. And it's unnecessary.

What Git Gives You for Free

When your course lives in a git repository, you get a set of properties that SaaS course platforms charge premium tiers to approximate:

1. Versioning that actually works

Git commits are your course version history. You can tag a release (v1.2.0), roll back a lesson that introduced a bug, or maintain separate branches for "beginner" and "advanced" variants. No database migration required.

2. Peer review for content

Pull requests work for course content too. A guest contributor fixes a typo? Opens a PR. You review it, suggest changes with inline comments, and merge. This is standard practice for documentation at most engineering teams — it should be standard for courses too.

3. CI/CD for publishing

With TeachRepo, a GitHub Actions workflow runs on every push. It validates your course YAML, compiles the MDX, runs your quiz answer keys through the grading logic, and deploys to Vercel. Broken quizzes fail the build before any student sees them.

4. The repo is the canonical source of truth

There's no "export" step that can get out of sync. No proprietary format to migrate away from. The Markdown files in your repo are the course. Clone them, fork them, move platforms — your content goes with you.

The Tradeoff: You Need to Know Markdown

Git-native isn't for everyone. If your audience is non-technical creators, a drag-and-drop interface is genuinely better. TeachRepo is explicitly not for that audience.

It's for engineers, DevRel leads, open-source maintainers, and technical educators who already write READMEs, documentation, and blog posts in Markdown. For them, the mental model is immediately familiar, and the tooling just works.

Course YAML: Expressing Curriculum in Code

Here's what a course.yml file looks like:

title: "Advanced Git for Engineers"
slug: "advanced-git"
price_cents: 2900
currency: usd
version: "2.1.0"
tags: [git, engineering, devops]

lessons:
  - filename: 01-rebasing.md
    title: "Interactive Rebasing"
    access: free
  - filename: 02-reflog.md
    title: "The Reflog: Your Safety Net"
    access: paid
  - filename: 03-hooks.md
    title: "Git Hooks and Automation"
    access: paid

Every field is intentional. Pricing, access control, versioning — all expressed as code, reviewable in a PR, tracked in git history.

Where This Goes

The thesis extends further than individual courses. Imagine:

  • A company's onboarding course living as a git repo inside their org
  • Open-source projects shipping official paid tutorials alongside their docs
  • A curriculum that's forked, remixed, and PRed like any other open-source project

Git isn't a constraint. For the right audience, it's a superpower.

Build your first course the Git way.

Free tier — keep 100% of revenue. Deploy to your own Vercel account.