GitHub Classroom Is Gone: Here’s the Free Tool That Replaces It

If you’re an educator like me who relied on GitHub Classroom to distribute coding assignments, collect submissions, and auto-grade student work, you’ve probably spent the last few weeks scrambling for a replacement. GitHub Classroom has been sunset, and many CS teachers are left wondering how to keep running their courses the way they used to.

The good news: there’s a new tool built specifically to fill that gap, and it’s free and open source.

Meet Classroom 50

Classroom 50 is a free, open-source tool from the Fifty Foundation, the nonprofit behind Harvard’s CS50, designed as a direct alternative to GitHub Classroom. It was announced on July 1, 2026, and it covers the same core workflow teachers relied on before: creating assignments, defining auto-graded correctness tests, and managing student submissions, all built on top of GitHub’s existing infrastructure.

That last part matters. Classroom 50 doesn’t run its own servers to store your class data. Classrooms live inside a GitHub organization you control, with student rosters and submission data stored in a dedicated repository. If you’re already comfortable with GitHub, the mental model will feel familiar.

You can use Classroom 50 two ways:

  • A web application at classroom50.org
  • A command-line tool, for teachers who’d rather script things or work from the terminal

What You’ll Need Before You Start

A couple of setup requirements are worth knowing about up front:

  • A GitHub organization on a Team or Enterprise plan. Classroom 50 relies on Team-tier features like GitHub Pages and branch protection to keep things secure. If you’re a verified educator, GitHub Education offers free Team-tier organizations, so this usually isn’t a cost barrier.
  • A Personal Access Token (PAT). During setup, Classroom 50 asks for a fine-grained service token with access to your organization’s repositories. This token powers the daily score-collection workflow that pulls in student results.

Setup itself is a guided, two-step process: run the automated organization setup, then paste in your service token to finish configuration.

How the Workflow Actually Works

Once your organization is set up, using Classroom 50 breaks down into a few clear steps.

1. Create a classroom. A classroom is just a named container for a group of students and their assignments; think one classroom per class period or per semester. You give it a name and a slug, and optionally a term to distinguish between different offerings of the same course.

2. Create an assignment. For each assignment, you can optionally attach a template repository that becomes the starting point for student work, set a due date, and choose whether it’s an individual or group assignment. There’s also an option to auto-generate a feedback pull request, so you can leave comments directly on a student’s code.

3. Define autograding tests. This is where Classroom 50 really earns the “auto-graded” part of the pitch. For each assignment, you can add tests of three types:

  • Input/Output: feed input to a student’s program and check the output for an exact match, a regex match, or just that it’s included somewhere in the result.
  • Run command: run a command and check for a specific exit code.
  • Python (pytest): run a full pytest suite against the student’s code.

Each test can carry its own point value, timeout, and setup command, so you can weight correctness tests however makes sense for the assignment. Advanced settings also let you customize the GitHub Actions runner, specify a custom Docker image, and restrict which files are considered during grading.

4. Add students to the roster. You can add students individually by GitHub username (or by email, if they don’t have one yet) or bulk-upload a CSV. Students get invited to your GitHub organization and must accept before they can start on assignments.

5. Students accept and submit. You share a link; students accept it and receive a repo named after the classroom, assignment, and their username. From there, they submit through the CLI or by committing directly, which kicks off the autograding workflow and produces a scored release.

6. Collect and review submissions. Scores are aggregated on a nightly schedule by default, or you can trigger a manual collection at any time. The submissions view gives you a running class average, pass/fail counts, and per-student submission history, with sorting and filtering for larger classes. When you need the data outside the platform, there’s a one-click CSV export of all scores.

A Few Things to Know Going In

  • Broad repo access. Because Classroom 50 automates so much of the GitHub workflow, it needs fairly broad read/write access to repositories in your organization. This came up in the community discussion around the launch, and the maintainers have confirmed it’s necessary for the tool to function, so it’s worth understanding before you connect it to an org that has other sensitive repos.
  • English-only for now. Support for other languages, including Spanish, has been requested by the community but isn’t available yet.
  • Active development. The project is genuinely young. It’s soliciting feature requests and bug reports through GitHub Issues, and the maintainers are responsive in the discussion forum.

Getting Help

The Fifty Foundation is running live training sessions for teachers getting started with Classroom 50:

  • Friday, July 24, 1-2pm EDT
  • Friday, August 14, 1-2pm EDT

You can register here. There’s also a full Wiki covering both the web interface and CLI setup, and a discussion forum where you can ask questions directly to the team and other educators making the same transition.

The Bottom Line

If GitHub Classroom’s sunset left a hole in how you run your course, Classroom 50 is worth a serious look. It replicates the workflow educators already know: template repos, auto-graded tests, roster management, submission tracking, all without locking your data into a third-party service, since everything lives in GitHub infrastructure you control. For a tool that’s barely a few weeks old, it’s already a credible, free replacement.

CS50W Completed!

Today, I officially completed CS50w – Web Programming with Python and JavaScript. This course is offered by CS50 at Harvard University. If you or someone you know is interested in learning more about this course, I suggest you visit the CS50W on edX.

Here’s a post with all of the videos I made for each of the 6 projects in the course.

Here’s the certificate I received:

Video: How not to go about coding your CS50P Python problems

In this video, I will show you how I recommend that you go about solving the problems in Harvard’s CS50P Intro to Programming with Python course. Also, for my CTEC 121 Python course that I teach at Clark College. I encourage you to leave a comment, smash the Like button and subscribe to my channel.

Video: This technique might help you with your CS50P Conditionals Problem Set

In this video, you will learn how to make a simple program that simulates deposits and withdrawals from a bank account. The user will enter commands like “deposit 100” or “withdraw 59.99”. The program demonstrates how to use the Python .split() string method, while loops, conditionals, and more.