Moving My Side Projects to GitHub Now That Private Repos Are Free

Moving My Side Projects to GitHub Now That Private Repos Are Free

Tutorials git github side-projects tools

Github made a big change last week: as of January 7th, free accounts get unlimited private repositories, no more forcing you onto a paid plan just because you didnt want the whole world seeing your half-finished todo app. Ive been sitting on this news for a few days trying to decide if its worth the migration headache, and I think it is, so heres what I did with my own mess of repos this weekend.

For years my setup was: public stuff lives on GitHub, anything I didnt want strangers poking through lives on Bitbucket, because Atlassian let you have free private repos with up to five collaborators going back to like 2011. Worked fine. But my Bitbucket account was basically a graveyard. I think I pushed to it maybe four times in 2018, and every time I logged in I had to sit through a "whats new" tour I didnt ask for.

The free tier still caps you at three collaborators per private repo, which is fine for me since exactly zero other humans are collaborating on my scripts that scrape weather data and email me if its going to rain during my commute. If youre running something bigger than a solo project or a two-person side hustle youll still want Team or one of the paid tiers, but for the "I dont want my employer googling my name and finding an unfinished project with embarrassing commit messages" use case, this covers basically everyone I know.

What I actually did

First thing, dont just flip every repo to private and call it done. I went through and actually deleted about a dozen repos that were dead: old jQuery plugins nobody including me was using, a WordPress theme I built in 2013 and havent touched since, a Node script for a Slack bot that stopped working when Slack changed their API and I never bothered fixing it. If youve been coding for more than five or six years you probably have this same junk drawer sitting in your account. Its oddly satisfying to delete it.

Then for the stuff I wanted to keep but didnt need public — half-built side project ideas, a personal finance tracker with real (obfuscated, but still) numbers sitting in old commits, a couple of client scripts I should never have put in a public repo in the first place if Im honest. I moved those over from Bitbucket using a plain git clone --mirror and a push to the new GitHub remote. Takes maybe ninety seconds per repo if you already have git set up right, longer if you have LFS files or huge binary blobs sitting in your history from some past mistake (looking at you, that one repo where I accidentally committed a 400MB video file back in 2015 and never scrubbed it out of the history).

One thing that tripped me up: GitHub still treats private repos differently for Pages. Public repos get GitHub Pages for free no matter what plan youre on, but private repos need a paid plan to serve Pages off them. Not a huge deal for me since none of my private stuff needs a live site right now, but if your workflow depends on that, dont assume free-private means free-everything-else.

Honestly my bigger complaint isnt with GitHub, its with myself — I have something like sixty repositories total across two services and I genuinely could not tell you what half of them do without opening them up. Somewhere in there is a repo literally named "test2" that Im scared to delete because what if its important. Its not important. Its never important. But I know myself and Im going to keep it forever anyway, sitting there mocking me.

If you havent looked at your own repo situation in a while, this is as good an excuse as any to do it. Go turn things private that should be private, delete the stuff thats actually dead, and stop paying for a second account just to keep your unfinished projects away from recruiters. Took me about two hours total including the mirror migrations, and I feel weirdly lighter about it, the way you do after finally cleaning out a closet youd been avoiding for years.