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.

I Put My Blood Sugar in My Mac’s Menu Bar

I wear a FreeStyle Libre. It’s great. The annoying part is checking it. I’ll be writing or grading (or pretending to write while actually grading), and every twenty minutes I pick up my phone and open an app, or glance at my watch and hope it’s synced. Meanwhile I’m sitting in front of a 27-inch screen all day, and my glucose shows up everywhere except there.

The menu bar on that screen has been showing me the time, the Wi-Fi, and an emoji button I’ve never clicked. It had room for one more thing.

So I built LibreBar. It’s a small native macOS app that puts my current glucose in the menu bar: the number and a trend arrow, updated every minute. Click it, and you get a 12-hour chart with my target range shaded green and anything below it drawn in red. There are desktop widgets in three sizes. It handles mg/dL and mmol/L. It updates itself. That’s the whole app.

A few things that mattered to me while building it:

Privacy. Your LibreLinkUp login is stored in the macOS Keychain and only ever sent to Abbott’s servers, the same ones your phone already talks to. No analytics, no telemetry, no third parties. The app is sandboxed and notarized. The only counting I do is anonymous daily check-ins on my server so I know roughly how many copies are running. Nothing identifying is stored, and the website says so in plain English.

Honesty. Macs don’t have NFC, and Libre sensors won’t pair with them. So LibreBar gets your data through Abbott’s LibreLinkUp sharing service, the same one family members use to follow someone’s glucose. It’s an unofficial API. Abbott could change it someday, and if they do, the app will tell you rather than silently break. Also, this is not a medical device. It just shows you data you already have. Make treatment decisions with your real device, not my menu bar.

My wife found the first bug within a day. I tested everything before launch: signatures, notarization, all of it. Every check passed. Then my wife downloaded the app and macOS told her to move it to the trash. Turns out I had tested the way developers test, with command-line tools, and never once just double-clicked the zip like a normal person. One missing flag in my build script broke the app for everyone who extracted it in Finder, which is everyone, while it worked fine for me. Lesson learned: test like your users, not like yourself. And if you don’t build software: this is why we’re like this.

LibreBar is free and it’s at librebar.app. You need macOS 14 or later, a Libre sensor, and a LibreLinkUp follower account. The site walks you through the setup. It takes about two minutes of phone-app clicking.

I built this for myself and I use it all day. My phone stays in my pocket now, and my watch is back to telling me to stand up. If you use a Libre and a Mac, give it a try and tell me what you think. What should it do next? I’m leaning toward low-glucose notifications.

Pixel perfectionism doesn’t stay on the screen

The worst part of working in pixels all day isn’t the pixels. It’s that pixels taught me everything can be nudged one pixel to the left and undone. Then I go paint a wall, mow the lawn, or glue a fin on a model rocket, and my brain demands pixel precision from materials that have never heard of Control+Z/Command+Z.

Fellow pixel people: how do you turn it off?

LogRaker looks like the app I have always wanted

I’ve just come across a macOS app specifically designed for those of you who monitor application, system, and server log files. There’s a 14-day trial, and the app is priced at only $49.99.

I’ll be back with my review and thoughts.

Oh, and here’s where you can learn more about it https://lograker.app

A Decision That Shaped My Life

In 1994, I left Melville, Long Island, New York, and moved across the country to Camas, Washington, to help open Underwriters Laboratories’ new office near Lacamas Lake. The goal was to help build a more technology-focused operation and reduce our reliance on paper.

Moving across the country was a big decision, but it turned out to be one of the best I’ve ever made.

This week marks 32 years in Washington State. Along the way, I’ve had a rewarding career, built lasting friendships, and, most importantly, met Gayle. This July, we’ll celebrate 20 years of marriage.

Looking back, I’m grateful I took the chance. Washington has been home for more than half my life, and I wouldn’t have it any other way.

Three Times and Still Surprised

A few weeks ago, I received a phone call from Clark College Vice President of Instruction Dr. Terry Brown. At the beginning of the call, he first informed me that I had not been selected for a sabbatical I had applied for, but then told me he had some good news. During that conversation, I learned that I had been selected to receive the Clark College Exceptional Faculty Award. The recognition will also be shared during the graduation ceremonies in June and publicly announced on the Clark College website during Opening Week events this fall.

I was also honored to be one of seven faculty members receiving the award this year, and I want to congratulate the other six recipients. There are so many talented and dedicated people doing incredible work across this college, and I’m proud to be included alongside them.

What makes this especially meaningful to me is that this is now the third time I’ve received the award during my years at Clark College.

When I first came to Clark College in 2013 after many years working in industry, I never imagined something like this would happen once, let alone three times. Teaching has been one of the most meaningful chapters of my life. Exhausting at times? Absolutely. Frustrating sometimes? Of course. But also rewarding in ways that are difficult to explain unless you’ve worked closely with students and watched them slowly build their confidence.

I’ve always tried to bring a real-world perspective into the classroom. Technology changes fast. Sometimes faster than education can keep up with. I want students to see the reality of the field they are entering, not a cleaned-up version. That means learning technical skills, but also learning how to adapt, communicate, collaborate, solve problems, and keep learning when the tools inevitably change again next year.

Accessibility has also been a huge part of my teaching. As someone who is legally blind, I have never found this theoretical for me. It’s part of my daily life, and I’ve worked hard to make it a foundation of our Web Development program at Clark College.

And then there’s AI, which is obviously the elephant in the room right now.

I honestly don’t know exactly what the future holds for two-year Web Development programs. I think anybody claiming they fully know is probably fooling themselves a bit. The technology world is shifting incredibly fast right now, and higher education is trying to figure out where it fits in. Maybe in the future, it will become less a traditional web development degree and more an AI-first program centered on design, development, accessibility, problem-solving, and human-centered technology. I think we’re already starting to see that shift happen.

What I do know is that students still need guidance, mentorship, honesty, and people willing to help them navigate uncertainty.

What means the most to me about this award is knowing that students are part of the nomination process. That matters to me more than I can probably put into words.

To my students, past and present, thank you. Thank you for trusting me, pushing me, challenging me, making me laugh, and occasionally putting up with my long stories and stubbornness.

And to my colleagues across Clark College, thank you as well. None of us does this work alone. I’ve been fortunate to work with incredibly thoughtful and supportive people over the years, and I’ve learned a great deal from all of you.

I also want to acknowledge many of my friends who may be reading this. A lot of you have helped shape who I am in ways you probably don’t even realize. Some of you are friendships I’ve kept since childhood, while others came from previous jobs, industry work, organizations, and different chapters of my life over the years. Some of you have been there through career changes, personal struggles, difficult moments, successes, losses, long conversations, random technology debates, music discussions, and all the twists and turns life throws at people over the years. All of that matters more than people sometimes say out loud.

And finally, to my family, including my wife Gayle and my parents, thank you for helping shape the person I am today. Your support, patience, honesty, and encouragement carried me through more than you probably realize.

I’m deeply grateful for all of it.

Not Selected, Still Committed

Well, I found out today, after checking the Clark College website, that I was not selected for a sabbatical.

This was only my second application in 14 years, so I would be lying if I said I was not disappointed. Interestingly, both of my sabbatical proposals over those 14 years focused on accessibility and AI, two areas I believe are increasingly important.

This latest proposal focused on reworking Intro to Programming and Problem Solving to make it more accessible and to thoughtfully integrate more AI into the course. It is also a foundational course in our Web Development program, so changes to it could affect students throughout the entire pathway.

Although I did not receive it, I am still proud of the work I proposed. Accessibility matters. AI is changing everything around us, and our courses need to evolve with it. Students deserve learning experiences that meet them where they are and prepare them for where the world is heading.

Congratulations to the faculty who received sabbaticals. Sabbaticals are important, and I know the work they are doing will benefit students, programs, and the college as a whole.

Right now, I am on FMLA leave, which gives me a moment to step back and reflect. I still believe deeply in the ideas behind this proposal. Accessibility and AI are not passing trends. They are part of the future, and I hope the work I outlined eventually makes its way into the classroom in one form or another.