NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Before GitHub (lucumr.pocoo.org)
alastairp 4 hours ago [-]
> What GitHub Gave Us

To me one of the clear things that GitHub gave us was a structure around a person rather than a project. To me it felt liberating to quickly create a repository attached to my name than it was to go through the (what felt to me) very serious process of coming up with a project name and reserving it on sourceforge just to get a cvs or svn repository (along with website, mailing lists, issue tracking(?), etc, etc...). It felt like the mental load of "oh this is just a quick thing" was a lot easier with github.

> It gave projects issue trackers, pull requests, release pages, wikis, organization pages, API access, webhooks, and later CI.

Although it didn't give us this all at once. I still remember when we created a new user account in order to simulate an organisation, before they existed. I distinctly recall discussing with friends if we wanted to set up a bug tracker software for our project with the assumption that "GitHub will probably release one in a few months anyway". In the end we just kept a text file committed in the repository. Issues were announced a few months later.

psychoslave 3 hours ago [-]
[flagged]
pxc 3 hours ago [-]
Huh? The usual pattern is that experiments belong to a user and then they graduate to having their own org iff they grow enough maintainers for that to make sense. How is that toxic or self-centered? It's just like "here's a place to do low-stakes experiments in public view". It's not particularly about ego or selfishness or whatever.
psychoslave 3 hours ago [-]
How is that self centeric to put someone in the center of the attention spot? It is pretty much the definition of a self centric attitude.

How it becomes toxic most of the time? Sociopaths will always have an edge to be on top of self centric pyramidal organisations. And those who starts nice people tend to get corrupted by the system which favor attempts to breed, threat and decive the small surface area in the center of the concentric power construction. Exceptional beings can certainly be pointed to show this is not the absolute fatality. Probably far rarer than sociopaths ready to harass them though.

estimator7292 2 hours ago [-]
You are being a toxic asshole right now by accusing people of being sociopaths completely unprompted.

Honestly, pretty sociopathic behavior right here.

kelnos 3 hours ago [-]
What a weird take on what GP said...
wps 4 hours ago [-]
I am still so salty that Git won out for the average project over Fossil. Sure Git has some performance advantages for massive codebases like the Linux Kernel, but the vast majority of projects will never run into performance limits from their VCS. Fossil’s internal tools (wiki, forum, tickets<issues>, etc) are just so useful to have versioned with your code in one file.

I use Fossil for all my freelance work and it so easily allows me to get right back into the context of a project, niche details and agreements had with a client, etc. No need to pollute the codebase or gather together a million emails or notetaking software just to get back up to speed.

It can still change, I hate the notion that because Git is so culturally embedded we couldn’t ever switch. Fossil makes it super easy to switch and the workflow is actually easier coming from Git.

thayne 14 minutes ago [-]
Part of the problem is that fossil is very opinionated. It's great if your development flow is similar to that of the sqlite team. But it is very difficult to get it to work for other workflows. And in particular, fossil is designed for use by small teams and isn't really designed to be used by large organizations. This is even explicitly mentioned in the "Fossil versus Git" page (https://fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki)
PunchyHamster 2 hours ago [-]
You can (and people did) do same kind of tooling based off git protocol and storage. Hell, even one for distributed code reviews.

It just... never was something majority actually want so they didn't really get any traction.

Issues wise you also get few nasty cases where you really do not want to keep it with project, like having clients send a bunch of screenshots or even videos of triggering some bugs can grow storage pretty quickly... and while extra few GBs on a file server isn't a big deal, keeping it with code repo just so someone can look at tickets locally is PITA, and you quickly get into "let's not use it, it just makes everything complicated and everyone repo bloated".

Someone could probably implement most of fossil features using git as backing store without all that much problems, the wiki/issues/whatever else features would just be separate, parallel branch hierarchy

wps 2 hours ago [-]
Those screenshots and videos are taking up space SOMEWHERE, whether it be your inbox or your filesystem, why not have them as unversioned artifacts in your db? (Fossil supports this). Of course if you have multiple people working on it and many assets, other solutions would be better (shared cloud drives, etc). But for my use case of a storing textual information only (and perhaps a demo video, which many Git users often keep a video in their source and link it in the readme), Fossil works great to keep all my stuff together in the same context.

I explicitly dislike the idea of using Git as the backing store. Forget the fact that Git is not native on Windows and is immensely bloated; the actual .git folder is a mess for backup systems when working locally compared to a single database file.

thayne 5 minutes ago [-]
> Those screenshots and videos are taking up space SOMEWHERE,

Sure but there is a big difference between being stored once (modulo backups) on a central server, and every developer needing to download all the resources for every issue and the entire wiki in order to work on the code at all. It works fine for sqlite, because they only have a handful of developers, so it's not a big deal for them each to have their own local copy of everything. But having to download GBs of issue and wiki data in order to make a pull request (however that would work with fossil) or otherwise contribute is a significant barrier to entry.

kelnos 2 hours ago [-]
I feel like part of that was timing. IIRC, when git was already stable and usable as a daily-driver, Fossil was still sometimes requiring that you completely recreate your repo when updating to a new version.

Git certainly had (and perhaps still has) worse user experience, but it worked and felt production-ready, with, of course, one of the largest open source projects in the world using it, and that made all the difference, perception-wise.

anotherevan 1 hours ago [-]
When I tried Fossil it had things weirdly separated.

I was expecting when I make a commit, I would have the facility to specify what issues it addressed and it would close them for me automatically. It seemed there is so much opportunity there to "close the loop" when the issue tracker, etc and integrated in your VCS, but it wasn't taken.

Karrot_Kream 2 hours ago [-]
> It can still change, I hate the notion that because Git is so culturally embedded we couldn’t ever switch. Fossil makes it super easy to switch and the workflow is actually easier coming from Git.

I was exposed to Mercurial before Git and I stubbornly tried to advocate for it over Git for a while. BitBucket, at the time, gave Github a good run for their money and had great Mercurial support and was what I preferred.

I'm not really sure VCS were ever differentiated for there to be a wide world of them. They all solved the same set of problems so similarly that it felt, to me, that there had to be one winner. Right now most of the competition is in the Git Porcelain space.

N.B. I actually have a soft spot for darcs, which was my first actual DVCS. I just loved it so much more than svn and refused to use svn in college and used darcs to actually manage my projects and push them to svn after.

anotherevan 1 hours ago [-]
I'm still using Mercurial whenever I can (including work!). The Tortoisehg GUI is good for doing reviews, and the command line is comfortable.

I grew up on CVS and then Subversion. Played with Bazaar a little, mainly because it could use an SFTP location as the back-end.

And I still avoid Git if I can help it. I would/do figure it out when I have to, but it never feels comfortable. Such is my avoidance that I'm dabbling with Jujutsu although I'll still need to really sit down and read through it some more to grok the way it works.

sikozu 3 hours ago [-]
Now is a great time for somebody to buy fossilhub.com and create a new community.
powvans 3 hours ago [-]
I know someone[0] who is working on exactly this right now: https://fossilrepo.io/

I don't think he's got public sign ups turned on yet. Maybe hit him up on the Twitter for more info.

[0] - https://x.com/ragelink

psychoslave 3 hours ago [-]
I wonder what tradeoffs make Git faster for large repository. Though for a long time that excluded large blobs.
PunchyHamster 2 hours ago [-]
Git has format dedicated for storing snapshots of trees and diffing them, fossil just uses SQLite and few tricks to keep size small
Lammy 5 hours ago [-]
> But maybe the most underappreciated thing GitHub did was archival work: GitHub became a library. It became an index of a huge part of the software commons because even abandoned projects remained findable.

I think this is a bad thing actually. Having something that's centralized but helpful-99%-of-the-time atrophies our collective archival skills. If everything had to be seeded by someone to keep it alive, everyone would be better at holding on to their copies of the things they really cared about instead of being able to assume they can just check it out again when they want to.

There should be no single place that something can be taken down. When a project on GitHub gets DMCAed it takes everyones' forks with it too. Just look at what happened when Nintendo took down the popular Switch emulators in 2024, where archival/continuation efforts consisted of people figuring out who had the latest revision checked out and sharing it. That was only possible because they were very popular project: https://news.ycombinator.com/item?id=40254602

Aside: I really love the Splatoon-ish header/footer animation on this site! Very unintrusive, adds a lot to the vibe, and also quickly gets out of your way as soon as you scroll down. I'm totally going to rip this off lol

palata 3 hours ago [-]
> Having something that's centralized but helpful-99%-of-the-time atrophies our collective archival skills.

Also it feels like "if it's not on GitHub, it doesn't exist", which is a bad thing. Feels like too many developers don't know that code can be stored somewhere else.

basilgohar 4 hours ago [-]
Archival is easy but copyright and IP law gets in the way. If we removed obstacles to making information accessible, it would lead to less concentration of power.
jamesfinlayson 2 hours ago [-]
Yeah first thing I do when I come across a repo I like is to clone it. I've seen a few reverse engineering projects disappear before my eyes.
mhi3 3 hours ago [-]
I don't agree with this. Github has existed for years and one of the reasons developers trust it is that they never monetized their "archival" work yet (TBD with all the new Copilot features).

The alternative would be many sites, each one of them with their own DMCA rules.

What would be the better alternative?

Lammy 3 hours ago [-]
Why are you thinking in terms of “sites”? I was imagining something more like a GitTorrent.
simonw 5 hours ago [-]
I absolutely loved Trac. Getting a Trac setup as step 1 in starting a new open source project was just an unbelievable amount of friction.

Fun fact: Django is still running on Trac today, and has been for more than 20 years now: https://code.djangoproject.com/timeline

(I was not involved in setting that one up, though it's possible I helped get the private Trac that pre-dated it running, I honestly can't remember!)

mbreese 4 hours ago [-]
Trac was great.

But, my first issue tracker was bugzilla. Setting that up was a bit of a pain, and it didn’t integrate well with anything, but it was very satisfying to see “Zarro Boogs”.

bombcar 3 hours ago [-]
Bugzilla was relatively painless to setup but it already had a bit of the Jira going on - in that it had SO MANY OPTIONS!

I remember being interested in MantisBT and a few others (Launchpad for BZR?) mainly because it seemed they made a bunch of decisions for me.

mbreese 2 hours ago [-]
It's a bit fuzzy, but what I remember was getting it running was painless -- but there was a ton of effort in getting it configured.

In retrospect, it was probably the flexibility of projects like Bugzilla that heralded the "opinionated" approaches to software that followed. In many ways software also follows the patterns of the language they are written in . Bugzilla was written in Perl, so of course there is more than one way to do anything.

I had forgotten about Mantis, but that was the first tracker that the non-programmers in our group were comfortable using. It is a bit funny how quickly we all migrated to Github as a larger community as it became the default for just about everything.

bombcar 1 hours ago [-]
It's fun when you find these various things still in the wild - they're all still out there!

https://dwarffortressbugtracker.com/my_view_page.php

the_mitsuhiko 5 hours ago [-]
Trac is in many ways what motivated me to build out an app in Python rather than in PHP for redistribution. It had a great plugin system!
noir_lord 5 hours ago [-]
I liked bitbucket, it did its job, it didn’t break for me and I preferred mercurial.

Employers used GH so I switched but even now I use GH as a dumb git endpoint and do all my build/deploy with docker and shell scripts so switching for me is extremely cheap.

For work stuff I’ll use whatever I’m paid to use if I don’t get to make the call just as it was back in the svn days.

dijit 5 hours ago [-]
Weirdly, I also have fond memories of Trac despite absolutely despising it at the time for “doing too much and excelling at nothing as a result”.

I guess that award goes to Gitlab now, which I will probably also remember fondly.

saghm 4 hours ago [-]
I like Gitlab fine by ignoring pretty much everything it does other than host the source code and let me view READMEs in the browser (and for work, also merge requests). In general the more I have to use anything other than those, the more frustrated I get, which was also how I felt about Github in the past. I'm not sure I've ever had a non-frustrating experience when trying to set up a CI pipeline on any platform, so I guess Gitlab's CI isn't any better or worse than others in that regard. There are an awful lot of tabs on the left any time I look for something through those menus though, most of which I don't know what they do and I would probably not be happy to have to learn.
jamesfinlayson 2 hours ago [-]
> I guess that award goes to Gitlab now

Painfully true - I remember a company I was at replacing GitHub and a bunch of other tools with GitLab because it was better to pay for one tool that does it all. Kind of.

4 hours ago [-]
pistoriusp 5 hours ago [-]
This got me thinking about code.google.com, I can't believe Google dropped the ball that hard.
zaphar 4 hours ago [-]
Man what a blast from the past. I was on that team before it got shut down.
bsimpson 4 hours ago [-]
…have you met Google?
jrobbins 3 hours ago [-]
Memories...
weiliddat 4 hours ago [-]
Reading this and mitchellh's post I was curious about code archival services, and found a few projects.

GitHub has their own: https://archiveprogram.github.com/

Software Heritage is a non-profit funded by UNESCO: https://www.softwareheritage.org/2019/08/05/saving-and-refer...

Although they're mostly the code / commit history, not so much surrounding metadata like issues, PRs, discussions, wiki, etc.

bsimpson 4 hours ago [-]
I think I was one of the first people to try Flask. I learned Python so I could take advantage of AppEngine for free and easy modern hosting, which put me in the right spot when Flask launched. I've long been an admirer of Armin's, and recognized his domain before I clicked the link. As he points out, in those days, you didn't default to GitHub.

His post is a response to Mitchell's, from just a few hours ago. I'm impressed with how quickly he wrote a long-form, high-quality, well-reasoned post.

pdonis 2 hours ago [-]
> His post is a response to Mitchell's, from just a few hours ago.

Is there a link to Mitchell's post somewhere? I can't find one in the article.

epage 2 hours ago [-]
An important part to me that gets overlooked is shared logins. Rust runs the tests of all known Rust projects in a tool called `crater`. I was analyzing a run identifying projects relying on internals of Cargo and opening issues. When making 200 issues by hand, it is a big help when the process is low friction: I had credentials for the site and allowing blank templates. Any time I came across a self-hosted instance, I usually ended up giving up.
kelnos 3 hours ago [-]
It's fun to read stuff like this and then reflect on the journeys of the projects I've been involved with. Most of my open source work has been done with self-hosted infra. My main example is Xfce: back when I started with them in 2004, we had a SVN server, using (I think) CVSweb's then-new SVN support for the web interface, and... maybe that was it?

My memory is telling me that I set up Bugzilla at some point after I joined the core team, though that may have been someone else. When git started becoming a big deal, I spearheaded converting our big SVN repo into many git repositories, and set up the cgit web interface for it. We were still using Bugzilla at that point.

I left the project in 2009 or 2010 or so (I'd joined a small startup and didn't have much time for OSS, sadly), and rejoined in 2022. In the intervening years they'd stood up a GitLab instance with CI runners, and had migrated everything from Bugzilla to GitLab issues.

It's still a very small team (handful of active people), and the infra is mostly managed by one person. It's all very doable, even for small teams. We're very lucky that our infra is generously donated/sponsored, though we also probably get just enough in regular donations that we could pay for it ourselves if we had to. I really appreciate that we're not dependent on Github/Microsoft for anything. Seriously, if you told me 20 years ago that Microsoft of all companies was going to own the largest OSS code forge in the world, I would have thrown up. It still doesn't sit well with me.

rnewme 38 seconds ago [-]
xfce is integral part of my life. Thank you for working on it
socalgal2 1 hours ago [-]
What is GitHub’s decline? I’ve used it extensively since 2011 ish (to lazy to look up when) it’s only gotten better. What’s the issue?
swader999 45 minutes ago [-]
Uptime and crappy GitHub actions are the main complaints.
flaburgan 4 hours ago [-]
What we need is gitlab to finally integrate ActiviyPub so we can fork, comment, open merge request on all gitlab instances from our personal instance. Git is already decentralized, this isn't that hard to do.
pietervdvn 4 hours ago [-]
Forgejo is slowly working on federation
deepsun 29 minutes ago [-]
And not a single mention of GitLab. I remember it was a pretty serious contender, sometimes leader, strange that author doesn't mention it.
ctoth 4 hours ago [-]
I remember this old thing called Bugs Everywhere -- it was a bug/issue tracker which actually lived inside your hg repository. I wonder if we could standardize on something like that? or git notes with an issues ref? or something magical like that?

Then it's BYOR -- bring your own renderer. Trivial CLI bugtrackers, agentic nonsense, pretty web stuff, whatever and the data lives in the repo.

lloydatkinson 4 hours ago [-]
I've often wondered why no one has built an issue tracker with Git notes, or if one exists, why it's not widespread.
psychoslave 3 hours ago [-]
https://github.com/git-bug/git-bug

And probably the network/black-hole effect of platforms like GitHub, Linkedin and the like are hard to achieve with fully distributed solutions, all the more when the other side is backed by huge capital which absolutely love concentration of power.

prima-facie 3 hours ago [-]
Smaller, decentralised forges actually make lots of sense from a digital sovereignty point of view. Over reliance on a single instance like GitHub is not healthy in the long run. The issue they would have to solve is federation.
kelnos 2 hours ago [-]
Yeah, federation is really the sticky bit. It's very frustrating for people to have to create yet another account in order to file an issue or submit a pull request.

And on top of that, spam is a huge issue. We've progressively further and further locked down new accounts on gitlab.xfce.org because the spam situation has just gotten so bad. We actually don't allow new "native" account creation at this point, and ask people to come to our Matrix channel to ask for an account. We do allow SSO from Github and gitlab.com, but some spam still sneaks through that way too.

I have my own personal Gitea instance that just doesn't allow outside users at all. I'd love to move all my personal projects to it, but at some point I would actually like to try to start a community around one or two of them, and I don't want to have to deal with spam.

prima-facie 35 minutes ago [-]
Oh we have a neat solution for that. Just give us your government issued id! I'm joking of course.

Thank you for maintaining Xfce! It's the best de around.

rtpg 3 hours ago [-]
I really worry about a bunch of people going over to codeberg. Site's already super slow, but apparently it's quite nice when self-hosted

Anyone who is able to just plop a forgejo instance on their own machines... please do that if possible!

DustinBrett 2 hours ago [-]
I was posting on Planet Source Code before SourceForge existed.
MrAlex94 5 hours ago [-]
If it wasn’t for SourceForge I’m not sure my life would’ve ended up where it is! They use to promote projects they liked and ended up putting Waterfox on their front page a few times. Really sad when they started blasting people with ads and swapping out installers with adware for popular projects. By that time I moved to Microsoft’s CodePlex, if anyone else remembers that? Felt like I was the only one using it at the time! I remember the connection speeds to it were atrocious, but appreciated they’d share ad revenue from the downloads of a projects page which was nice. I remember it was actually super expensive to offer downloads [for binaries] back then, using these code hosting websites was the only way to do it for “free”
xtracto 3 hours ago [-]
I also remember SourceForge fondly, before the ad infested thing.

Specially, I remember not "getting" Github at some point. Bitbucket had mercurial support, sourceforge had SVN, and all the Cool projects lived in SF (I'm talking mid/late 2000s).

The first time I navigated into a github project and just saw the code three I was puzzled. (SF was centered on the project/product while GH focused on the code.

a1o 3 hours ago [-]
Hey, I also remember Launchpad and Bazar, and adding an individual new source to my apt. Launchpad had something like CI before everyone from what I remember.
drbig 3 hours ago [-]
Great through-history write-up! Thank you.

> That is one of the great ironies of modern Open Source. The distributed version control system won, and then the world standardized on one enormous centralized service for hosting it.

Cycles everywhere indeed. Perhaps we should ->

> GitHub wrote a remarkable chapter of Open Source, and if that chapter is ending, the next one should learn from it and also from what came before.

Indeed! Try to learn from the inevitable iterations to make the next instance at least that slightly better.

... Where the stuff meets the metastuff it seems all works under very similar forces. My thinking is step-by-step - it works on the individual level, and it scales up.

Day to day is step by step and a step today funds the step tomorrow.

dangus 3 hours ago [-]
This “slowly dying” effect is what happens to every company that gets acquired by big monster slug companies like Microsoft.

What Microsoft acquisitions still have any of their original spark left in them? Or Oracle? Or IBM? Or Google? Etc…

Hell, some Microsoft originals from inside the company like Xbox have even lost their edge.

Money is great and I’m sure I’d take the big check, too, but I’m surprised more tech founders don’t think of their legacy in this way when they decide to sell out.

It’s considered a grand accomplishment to essentially lead the wonderful thing you created to its slow demise and hand it over to apathetic quarterly earnings zombies.

bombcar 3 hours ago [-]
Up until about a year ago, GitHub was the example that would be given if you asked the question.

And now it’s gone.

kkfx 4 hours ago [-]
Radicle is a good answer, coupled with a reborn Usenet, maybe Nostr. We have like never before the ability to communicate and cooperate yet most fails to understand and implement that.

Nearly any of us could run an XMPP/Matrix server and federate with friends or Nostr/{0xchat,whitenoise}, all with audio, video, text, file exchange etc, yet less than 1% do that.

Simply people, techies as well, have forgot the meaning of personal ownership and therefore are owned by someone else.

pbronez 2 hours ago [-]
Maybe something like https://fossil-scm.org/home/doc/trunk/www/index.wiki is worth another look. Although Forgejo is probably an easier switch from GitHub. If their federation ideas play out well, that could be a good outcome from all this
latchkey 3 hours ago [-]
If everyone moves off GH, it'll just go back to normal again?
youwangd 4 hours ago [-]
[dead]
einpoklum 5 hours ago [-]
> Before GitHub, Open Source was a much smaller world.

Not that much smaller right-before GitHub and right-after it became available.

> but in the number of projects most of us could realistically depend on.

Most FOSS I realistically depend on I don't obtain from GitHub actually.

> There were well-known projects, maintained over long periods of time by a comparatively small number of people.

There were even more not-well-known projects, maintained for less time, by a larger number of people. They just weren't that many of them in one place.

> You knew the names.

You absolutely did not know the names. Post author is just thinking of the names they knew as though those were everybody.

> reputation mattered in a very direct way.

And now it doesn't?

> We took pride (and got frustrated) when the Debian folks came and told us our licensing stuff was murky or the copyright headers were not up to snuff, because they packaged things up.

RedHat was just as popular a distribution; and most users used Windows (like they do today); and the BSD distributions were a thing (although we didn't have Apple's BSD, i.e. MacOS)

Bottom line: Inaccurate description of history.

the_mitsuhiko 5 hours ago [-]
> You absolutely did not know the names. Post author is just thinking of the names they knew as though those were everybody.

I absolutely knew the names of the people I interacted with and whose projects I used. I even went to conferences with some of them. When I worked on my first web portal for Ubuntu we had a total of about ~4 dependencies and all was vendored. I knew the person who packaged my Python libraries for Debian.

You might call it an inaccurate description of history but it is very much my experience.

j16sdiz 4 hours ago [-]
back in the day, I work in a web hosting company.

I know every name on mysql devel team.

The only reason i subscribe that mail list is: i reported some bugs and need to follows the release.

Signal to noise ratio on those mailing list was high. I can't say the same for github or discord

selectively 4 hours ago [-]
GitHub is fine. The blog post gestures vaguely at nothing. You put stuff on GitHub. You host repo. You run Actions. It all works.

So what is the issue? It's just nonsense, brain rot.

conartist6 4 hours ago [-]
I'm working pretty hard on building what comes after Github, but I'm going full-tilt boogie and trying to also work out what comes after Git.

I'd love to have a longer conversation with you about how we can seed a better system, because on the off chance I'm successful I have a once-in-a-generation opportunity to fix past mistakes.

MeetingsBrowser 3 hours ago [-]
Your username is con artist lol
swader999 43 minutes ago [-]
Maybe he likes a challenge?
conartist6 2 hours ago [-]
Yes, Hi! I'm Conrad.
_-_-__-_-_- 1 hours ago [-]
and also a con artist?
conartist6 38 minutes ago [-]
I'd say a code artist, more commonly called a hacker. https://paulgraham.com/hp.html

To be clear for the past five years I've done nothing but write OSS code (https://github.com/conartist6) while sharing pretty much all my engineering thoughts on a public Discord server (https://discord.gg/NfMNyYN6cX), so I'm not very worried at all that a person determined to find out would be unable to tell if I'm legit. You just can't fake 20,000 hours worth of public toil.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 02:34:52 GMT+0000 (Coordinated Universal Time) with Vercel.