I use Digital Ocean and run a Nomad cluster on top of that. Gitea and its action runner builds container images and then pushes nomad job definitions to the cluster. I have zero downtime deployment and rolling deploys. Dagger.io is in there somewhere to make local CI mirror what happens in the action runner.
Setting up Gitea was honestly just an afternoon of work. The sqlite database is backed up to Cloudflare R2 and the code is mirrored. It's unlikely that my project will take off to the point that I'll need to upgrade Gitea to something else, but it's extremely easy to setup, maintain, and build CI/CD on top of.
While there are some problems with open source projects self-hosting their forges without federation, that’s really not the end of the world IMO (but lots of love for Tangled nevertheless).
Moved over from Sonatype Nexus to Gitea Packages as well since administering Nexus is annoying: https://docs.gitea.com/usage/packages
However for CI I use WoodpeckerCI (previously used Drone but migrated over), it works well with containers and is delightfully simple: https://woodpecker-ci.org/
Though I guess in my case I don't collaborate with others much outside of work, so it's just something to interact with across computers and servers.
(but what I'd know, I thought this was about typography forges - didn't know there were also software forges...)
No idea what went wrong with ForgeFed, yeah.
---
Edit:
> Cool. It's been years since ForgeFed came out but it isn't anywhere nearly as federated as Tangled is. What gives?
Just read your other comments. Sorry, but I must point out that it would be polite to disclose that you’re working on Tangled, especially when posting takes like this on a competitor technology.
It will likely require some grant money to become usable.
I'm not against VC funding everywhere, but I don't want it at the core of my development stack.
> I'm not against VC funding everywhere, but I don't want it at the core of my development stack.
Then you should avoid and steer very clear of Tangled since it is VC funded and crypto VCs are invested in this forge.
The direction here can change at any time, and is more likely to enshittify than the others.
Yes, that's what I'm referring to. Could have made it clearer.
A project’s issues and pull requests are only useful for that project.
The author mentions avoiding multiple logins and searching across forges. The former is already addressed by social logins / federated identity. The latter is not very useful today, on a centralized GitHub, aside from finding leaked credentials and vulnerable code.
In fact, the tiny barrier of entry for contributing in a new forge might be a desirable quality, to filter out low-effort contributions.
There's value in related information being aggregated and linked across many projects.
I don't think that's always true. A bug in library A might be referenced in project B with a fix in fork C.
Yes, a hyperlink works to show you where to find info. But it doesn't alert you when a PR on C is merged by A meaning that B is now unblocked.
That said, I don’t think that works well in a single centralized forge today either. Usually you still need A to actually make a release with the fix, which isn’t tracked by the issue/PR system.
Whereas in the "forges" space, it seems Tangled drives federation forward much faster than the ActivityPub-based federation features of Forgejo/Gitea (which are progressing really slow).
Anybody who cares about my repos potentially disappearing can contribute to their hosting by re-providing those repos from their own machines. (Note that only someone with the private key can create new records for a pkarr address).
That's mostly a side-benefit though: I mostly wanted something I can `git push` and `git pull`, that is self-hosted, and self-organises across a bunch of underpowered machines with unreliable network connections, with minimal coordination.
What I like about (the idea of) ForgeFed is that it lets existing forges speak to each other.
In practice I probably just need Forgejo and GitLab to be able to speak to each other.
I believe the future of GitHub, for me, is to solve two problems:
- Discoverability for public open-source projects
- Backup since self-hosting is fragile long-term
So many times when I try to visit the source code of some package uploaded to crates.io, the self-hosted git no longer exists.GitHub repos sit stale for decades.
For day-to-day reliance, my self-hosted Forgejo and CI runners have better uptime.
Only pet peeve with Forgejo:
- It's a highly active project, RFCs, tons of PRs and issues.
- Becoming a daily user, I want to extend it, and in its beautiful simplicity, it's not highly extensible.
- So to avoid maintaining a fork of a very active project, extending it in unison is a social commitment.
What a luxury problem, but still.I'd like to see more hosted Forgejo solutions pop up; it's very low-resource cost.
I think the main attractive thing about Tangled is that it supports proper stacked PRs. But on the other hand it doesn't support private repos at all, and Github is getting stacked PR support soon (fucking finally)...
It's hard to see the advantage of Tangled over Codeberg for example.
https://codeberg.org/forgejo/design/pulls/48
Which is totally understandable.
Managing a healthy highly-popular open-source codebase requires effort to not bloat it.
Which brings me back to wanting good APIs for native Kubernetes CI runners and time-limited PATs for agentic coding.
I can vibe that in a day. But it sure as heck won't be aligned with the future of all Forgejo users.
I would not call stacked PRs bloat. It's a super important workflow. The fact that Github hasn't supported it for so long is insane.
The argument is maintainer bandwidth/fatigue.
From the closed issue:
> Closing this out for the time being, as noted previously (I'm currently leaning towards designing some review refinements and shelving the stacked concept design for the moment) and to clarify that it isn't current and active work.
Also, could you describe the current code-review process for Tangled in more detail please?
My belief is that code review should happen locally, and the unit of work being reviewed stays independent from unit of work being "submitted". The reviewer should be able - locally or in the WebUI - to specify a change-/revision-set (preferably via jj revset language), or add files to review ad-hoc, or even mark specific lines for review!
And then, assign comments to such a review unit - where changes are all being captured as a first-class object, with all the niceties that may come together, e.g.:
- comments are captured in the jj oplog as if they were code changes
- it's easy to surface (locally or in the WebUI) past code reviews
- it's easy to "untangle" and grasp which particular comment belongs to which code review
- [vague from my side] comment might belong to multiple code reviews, or might not; code review might belong to multiple revsets
Anyone remember that? It used to be such an important website and went down the tubes.
Members elect the board which chooses the CEO. A cooperative, in other words. The tech is a solved problem, with lots of open source around to do it. Enough members means paid operations and development staff, or outsourcing one or both, or grants to open source devs, etc. The possibility is there.
That's how we prevent cultural drift: by actually controlling the company.
Like https://codeberg.org/? :-)
I don't think it would take years for an AI first platform to enshittify, it would be instant.