Hi, Peter the Founder of Pushin.eu here. Sorry, the website escaped containment and landed on HN before I had the chance to update the "marketing materials" aka. landing page. So, here are a few points:
*The product is stable, but still in development. That's why some of the core things like pricing, etc. are missing. BUT:*
1. Business Model: Pushin will have subscriptions for individuals and teams. Pricing is not yet decided but it'll be close to GitHub/GitLab pricing.
2. Privacy: In true German fashion, we *don't* want your private data. Pushin doesn't track anything beyond the obvious: email, password hash, username, whatever information you put on your profile.
3. Roadmap: We're currently in Beta, but everything looks good so far. We'll probably go GA beginning of 2027. I'll focus on delivering the core features first and make sure that they are polished and of good quality before moving on to the nice-to-haves.
4. I say "we" but it's really only me (Peter Ullrich, peterullrich.com) and my dog (Bella, Labrador, beige). "We" are not VC funded, but bootstrapping on bare metal Scaleway servers. My wish is for this to become a proper company soon though.
5. Tech-stack: Elixir (Phoenix + LiveView) for most parts, Rust for the Git parts, S3-compatible buckets and Postgres on Scaleway, servers are bare metal Scaleway servers running in Paris.
6. Git implementation: Just like Tangled, I've used Rust and the gitoxide libraries to build a Git implementation that's fully compatible with the canonical Git CLI, but uses S3-compatible buckets as storage instead of keeping the entire repo on disk. I'll write in-depth about this soon, but it's very much what Tangled did, just with a different storage concept.
I gotta be honest that I'm both scared but also excited that Pushin hit HN. I wish we'd be better prepared, but here we are. Many thanks to anyone who is willing to try it out!
> Pushin doesn't track anything beyond the obvious: email, password hash, username, whatever information you put on your profile
This seems poorly worded or genuinely concerning. Why do you want to track my email, username or anything in my profile. What do you do with it? How do you track it?
"Track" means "store" here and we need to store it for authentication (email+password hash) and to show your public profile (e.g. https://pushin.eu/pjullrich). So, regular things, not tracking you for data mining stuff
Congratulations! I'm hooked.
The AI slop block is what I like to learn more about. The FAQ does not include AI slop. Can you elaborate a bit on it please.
I just added a new FAQ item for that, but I'll copy it here as well:
We plan to reduce low-quality contributions through several features, some already in place and others still to come. Invite-only registration helps us discourage low-quality accounts and confirm that new members are real people. Next, we plan to introduce a vouching system, similar to Tangled's, that lets contributors build a reputation. We'll combine that reputation with other signals to assess new pull requests and issues. Contributions that appear low quality will be clearly marked and de-emphasized, while maintainers will make the final decision. We also plan to limit how many pull requests and issues a new contributor can open in repositories they don't own. This will be an ongoing effort, but the goal is simple: maintainers stay in control of their queues.
Ironic really because that was the original idea behind Git - to build a tree of trusted developers for the Linux kernel. Linus has those immediately below him that he trusts will push good quality code, and those folks do the same with their group of contributors.
> Invite-only registration helps us
If this is invite-only, then what you're doing is emulating the original strategy of Linus: only certain folks have commit rights. Extend that out to only certain folks have PR-creation rights and you're done. Maintainers select those that can contribute, these folks in-turn, select those that can contribute to the project, rinse and repeat.
Let everyone create issues and implicitly ignore these because any issue that doesn't make it passed the "acceptance level of a maintainer" will naturally be ignored and disappear. As is the case over at GH - issues naturally suffocate because no maintainer gives them air.
Perhaps have a special category "untrusted/toxic PRs" for contributors who don't belong in the tree of trust. These PRs are handled in a toxic-proof containment environment, i.e., they get particular vetting attentions by maintainers. Obviously this would be a path into the "tree of trust" for a project.
Then each project can also implicitly define what is "low quality" for their project - it's how they handle the "toxic PRs".
EDIT:
That's also why branching and forking is so cheap in Git: each sub-maintainer can maintain their own fork with it's branches before pushing up changes to the main fork. (Compare branching using RCS/CVS or Subversion to Git to get a feeling of "cheap" ;))
This can be done over at GH if a fork would be actively maintained by a sub-maintainer and every X days/weeks/months they would push the entire changes of the fork to the main repository. That would be closer to the Linux development strategy - as I understand it.
It's closer to walgit as it stores the packs in S3, but it uses Postgres for locking a repo during a push instead of using the Cursor/Walgit trick of using a WAL+CAS in S3. I've evaluated CAS on the Scaleway S3 service, but writing the WAL adds 240ms to every push, a cost we don't have with Postgres where it's a fast row lock. I also evaluated whether keeping a WAL would be useful, but ultimately decided against it because we can track everything the WAL tracks through the git history + audit logs without the write cost overhead.
Hey Peter, that's a very cool idea. I think (digital) sovereignty doesn't just happen, it's something we need to build and that's how we do it. It's a bit like "local first". Looking forward to using it once it launches :)
Well as soon as your pricing is available and full onboarding is done, I will be pushing for it at work. We just left bitbucket and I have everything stored locally until we find an alternative and I just found it.
You seem to cite tangled a lot, and logically, I am wondering if you have any plan to also federalize on top of the AT protocol, so accounts could interact across the site boundary and also allow self hosting but still benefiting from pushin network? It may be hard in terms of design so I understand if you say you won't.
Yes! I’d love to provide private or at least personal firehoses to users maybe based on the same lexicons as Tangled uses so that you can sync your Pushin repo to your own Tangled knot. That’d be cool, no? Also, sign-in with your atmosphere account, and generally offering lexicon-based API output to make it easy to sync to Tangled or somewhere else
That could change at any time. They could move to an Italy datacenter owned by a different company and that would be just fine.
But whether they're making a promise to stay in the EU specifically? Or whether they might expand to territories that aren't physically in Europe? That could matter, and the FAQ doesn't tell us.
(And yeah the line at the top says 100% EU but that's not the full picture.)
In Europe people generally use “Europe” and the EU interchangeably.
I’m not sure many people would include Russia in Europe in normal speech, unless they were a geographer in which case Russia is partly “Europe” in some cases I think.
Even when the UK was part of the EU if someone in the UK said “Europe” they meant continental Europe and someone in continental Europe would be unlikely to mean the UK if they said Europe unless they were using “Europe” as a shorthand for the EU. When the UK was in the EU a United States American saying Europe would probably not not be including the UK in their mental model of Europe and, indeed [0], might not be very clear on what the UK actually is, because that’s confusing for the countries they agglomerate into “England” which might also include Ireland. A United States American saying “Europe” most likely means “Paris” and then maybe France, Italy, Spain or Greece but probably not Germany which is definitely the EU and everything that is wrong with the EU. But maybe Switzerland, because that very European.
As a European I’m not even sure where Serbia is, or if it’s even a real country [1]. I thought it was capital of Albania [2] . Or possibly a region of North Macedonia [3]
[0] only some of what I have said should be taken even part way seriously. Very little in fact
[1] Obviously being satirical here
[2,3] Also real countries, also European, but not necessarily “Europe” and definitely not EU. Yet.
> In Europe people generally use “Europe” and the EU interchangeably.
In Europe some people generally and incorrectly use "Europe" and the EU interchangeably. Europe existed far before the EU and will continue to exist after the EU finally comes to an end.
> Europe hasn't always existed as a concept, and its longevity is unknown.
Europe is the name of a continent. What reason(s) would there be to change the name of a continent?
In contrast, the EU is a trading block, set up to foster greater pan-European trading relations. It's not the only pan-European institution. For example, the Council of Europe ( https://en.wikipedia.org/wiki/Council_of_Europe ) is a separate pan-European institution, set up in 1946 which was before the EU or any of the predecessors of the EU, and amongst other projects was behind the formation of the European Court of Human Rights. I bring this up to highlight that we do not need the EU in order to have collaboration between European countries.
Even if you did/did not, vernacular evolves. So at the time that you fervently hope the EU comes to its (clearly deserved, Mr Putin) end, I imagine people will be able to adapt their wrong speak and clearly incorrect thinking to ensure they adhere to the newspeak.
> at the time that you fervently hope the EU comes to its (clearly deserved, Mr Putin) end
I find it funny you think the only reason people would want the end of the EU is if they're a Russian agent. The EU has very little to do with defence. Perhaps your argument would hold more weight if talking about NATO, but even then it's not necessary for countries to be members of NATO in order to collaborate on protection when their collective security interests align.
« As a European I’m » – So what country do you hail from? I understand it's not Serbia. Just so this wild nonsense and wannabe satire can have proper geographic attribution. (Because despite there being a strong indidivual factor, the systems governing some countries do breed certain mental dispositions.)
> 4. I say "we" but it's really only me (Peter Ullrich, peterullrich.com) and my dog (Bella, Labrador, beige).
I wish you the best, and I understand this might be necessary initially, but honestly I myself would never use a one man operation for anything I run in production.
- Registrar: HOSTINGER operations, UAB, Lithuania. Hostinger-branded authoritative DNS servers run on Cloudflare’s network. This creates a dependency on a US company.
- IPv6 is not supported by the public website/Git endpoint.
- DNSSEC would be a great addition for security, especially due to the use of US-based Cloudflare and Let's Encrypt.
Regardless of that, these don't seen to play for the same audience.
Codeberg Terms of Use[^0] makes it clear that it's only for "projects covered by a licence for free and open source software, free and open source hardware, or free cultural works", and "You must not share projects that mostly consist of code written by "generative AI"-tools". They also only provide private repos where the FOSS system need it for their infra or what not, and not just for any purpose.
These are totally fine for Codeberg to do, and it's wonderful for FOSS!!
However it is not a viable place for many projects that are on GitHub/GitLab now and would want to migrate, say: any commercial project, that would need "permission-free" private repos, or when the teams want to decided themselves how much generative AI their developers should use, not their Git-hosting provider...
That’s right. There are plenty of good options for OSS but few to none focused on both, public and private especially with team/enterprise support. That’s why I created Pushin :) simply to have a place to store both my public and private repos but still retain a community which you dont get on a self-hosted solution
Yes, we can't block models from scraping the public repos and train on them, but *we* won't use your code (neither public nor private) to train models on them. We really only want to host your code and do that well.
> we can't block models from scraping the public repos
FYI, there is the nuke option, which is generating endless nonsense pages as a form of “bot sink” [1] that ends the scraping relatively quickly, but IIRC that also tanks your search rankings, since it likely affects benign crawlers too – not something you’d necessarily want to happen to a new domain, unless you really need to protect server resources against aggressive hostile crawlers like SourceHut and so many others had to combat.
> LLMs cannot “crawl pages” or “scrape” or do anything - it’s an offline archive with a few convenience methods.
Being a bit needlessly pedantic here. I think it's well understood in these circles that such models are being driven by agents, which absolutely can crawl and scrape. The only thing a human needs to do is write rules for the agent to follow.
Yes, sorry this escaped containment before I was able to update the landing page. Since the product is in invite-only beta still, I focused on the UX of the platform instead of the "marketing materials" aka. Landing page
Trust is not "marketing materials". Folks trust that you keep those promises, that their code ist safe. Your product is trust, not the application. Code and application are just the vehicle to deliver that.
I'm very much aware of that and I've put all my effort into making the application trustworthy first. That means: Not a single byte must ever get lost. Since the website wasn't updated for the general public when it hit HN, these trust signals (e.g. privacy policy, ToS, info on business model) are/were missing. Sorry about that!
You don’t have to have all of that material published and polished before you turn your website live. It literally is stuff that belongs on your marketing Wordpress static site or whatever.
If the founder had done a big b2b ad blitz without that stuff, sure, some griping might be warranted. But this isn’t that: some fledgling product website went viral-ish in HN and you’re complaining about the digital equivalent of the paint not being dry.
So often when something launches, these are missing. And it always really surprises me. People apparently just sign up for such services, but I would want to know these details in advance before doing so.
Ooh, here come the others. I'm sure there's more people working on this same thing. Probably mostly a matter of how ready we are to release something. Nice to see it coming out of the Netherlands though.
I think the hardest part about working on the same thing is to not immediately post it when you see other products in the same space pop up.
I didn't get that either until I read this comment. I read "pushin" as one word, figured it was a made up proper name for a product.
Once upon a time, I, too, had a domain where the TLD was part of the actual name and required to read it correctly (think something like foobar-pl.us). In my experience this left most people confused and I abandoned that quite quickly.
I'll introduce subscriptions soon, we're currently still in invite-only beta, but the subscriptions will be very much like GitHub/GitLabs with individual and team pricing.
yet the entire website appears to be itself AI slop. is the codebase vibecoded too? I seem to get a "connection lost" toast notification every time the page loads despite it being a wholly static page.
your service is founding itself on a promise (forges in general are of course not a novel concept) that i feel you're failing to uphold.
What I’d love to see is the ability to use my own domain name, so that if that service ever goes under, I can set up a git service with the same paths and everyone relying on my software can continue to do so. It’s just hard to find the trust to invest in a completely new domain to host my projects under.
I think you should be able to do that if you run your own Tangled knot. I'd assume that you can host it under your domain which means your git service will remain even if Tangled itself is down or goes under.
I feel author might not realize how much this will lead to its death and probably also current visitors that sees this (in its current state - aka design seen 1M times with virtually zero work on branding done) might never return.
I self-hosted Pushin on my own Forgejo instance on a Hetzner bare metal server before Pushin was ready and it was a great experience to be honest! Self-hosting Forgejo is great!
Is your code safe on hetzner though? I wanted to do something similar but I'm hesitant about what hetzner employees can see on the machines so I don't know how private and safe it would be to store code there.
Feels like 2026 is the best time for non-US tech companies to grow. What a weird timeline we're in. Excited for our developments up here in Canada too :D
If I want to create an account not to host repositories, but only to report bugs by opening issues in a repository of an application I'm using, do I still need an invitation code?
It does already, but it's not yet properly documented. You can already run your own Gitea runner and point it at Pushin. I'll also add managed CI runner support based on Firecracker VMs soon. Currently, I use self-hosted runners for my CI, but the UI is a bit rough. I wanted to merge a PR today that fixes all that but then HN happened so just bear with me a little longer :)
Thank you! Sorry about that, this post on HN caught me before it was ready. Upload limits are: 5GB for logs, 5GB for artifacts, 10 GB cache. These limits will probably change once I introduce a paid trier (same limits there, lower limits on the free tier)
I was never really blockchain-something. It was all the hype when I finished my software engineering masters (around 2017/18), so to understand the technology better I started a Podcast and wrote my master thesis about it. I never used it or worked in it afterwards though and I never thought it'd become more than a scam unfortunately
I don't like vibe coding myself, but I love AI assisted development, my new bottleneck is no longer the search for syntax and features but my understanding. Am I welcome on your platform?
This looks really nice! I'm interested in how the CI works though. One thing that annoys me about existing CI is that it's difficult to run locally and relatedly, config files don't work cross platform.
I'd love a CI platform that just used a super thin docker + script driver. Rather than platform specific YAML files that define steps.
There has to be a more thorough solution here. The current form of EU is betraying EU citizens to the USA - we already saw this and were astonished how Leyen insta-submitted to the orange clown. This can no longer be explained by "better business deals", since this is systematic. So, Europe depending on the USA is a lose-lose scenario for EU citizens, including the lack of nuclear arsenal on an EU-wide basis. We see this right now with Putin committing his genocide - he knows that agent Krasnov will never do anything against him. So these isolated strategies such as "xyz never leaving Europe" is fine as a first step, but it needs to be integrated into a cohesive overall strategy, including doing something about US mega-corporations that are extremely hostile to european interests - aka Google, Facebook and so forth. At the very least the EU should help fund open source alternatives much more in a systematic manner, from A to Z. Even that in and by itself is not an overarching strategy, but it is the first two steps towards one.
Why is it any of your business how I do or don't describe my repos? (Genuine question, it seems like a really weird demand to impose on other people for no particular reason)
(Of my 200+ published repos, I'd say about 175 contain code I wrote purely to scratch my own itches - if other people find it useful, great! If they don't find it useful, that's also fine with me - I'm not sure why I should be obliged to go out of my way to help though?)
Hi, Peter the Founder of Pushin.eu here. Sorry, the website escaped containment and landed on HN before I had the chance to update the "marketing materials" aka. landing page. So, here are a few points:
*The product is stable, but still in development. That's why some of the core things like pricing, etc. are missing. BUT:*
1. Business Model: Pushin will have subscriptions for individuals and teams. Pricing is not yet decided but it'll be close to GitHub/GitLab pricing.
2. Privacy: In true German fashion, we *don't* want your private data. Pushin doesn't track anything beyond the obvious: email, password hash, username, whatever information you put on your profile.
3. Roadmap: We're currently in Beta, but everything looks good so far. We'll probably go GA beginning of 2027. I'll focus on delivering the core features first and make sure that they are polished and of good quality before moving on to the nice-to-haves.
4. I say "we" but it's really only me (Peter Ullrich, peterullrich.com) and my dog (Bella, Labrador, beige). "We" are not VC funded, but bootstrapping on bare metal Scaleway servers. My wish is for this to become a proper company soon though.
5. Tech-stack: Elixir (Phoenix + LiveView) for most parts, Rust for the Git parts, S3-compatible buckets and Postgres on Scaleway, servers are bare metal Scaleway servers running in Paris.
6. Git implementation: Just like Tangled, I've used Rust and the gitoxide libraries to build a Git implementation that's fully compatible with the canonical Git CLI, but uses S3-compatible buckets as storage instead of keeping the entire repo on disk. I'll write in-depth about this soon, but it's very much what Tangled did, just with a different storage concept.
I gotta be honest that I'm both scared but also excited that Pushin hit HN. I wish we'd be better prepared, but here we are. Many thanks to anyone who is willing to try it out!
(sorry I got excited and shared it)
I am happy you did as I was looking for a European alternative
Thx for the info. Good luck with the project. There is most definitly a market for this, especially after the Codeberg activist takeover.
Thank you!
> Pushin doesn't track anything beyond the obvious: email, password hash, username, whatever information you put on your profile
This seems poorly worded or genuinely concerning. Why do you want to track my email, username or anything in my profile. What do you do with it? How do you track it?
"Track" means "store" here and we need to store it for authentication (email+password hash) and to show your public profile (e.g. https://pushin.eu/pjullrich). So, regular things, not tracking you for data mining stuff
Those two words are not synonymous. But anycase you should be adding a tos and privacy policy on your website.
Track doesn’t mean store.
The word you are looking for is “collect”.
Saying you “track” implies you’re putting together a profile to be consumed in other services
Congratulations! I'm hooked. The AI slop block is what I like to learn more about. The FAQ does not include AI slop. Can you elaborate a bit on it please.
I just added a new FAQ item for that, but I'll copy it here as well:
We plan to reduce low-quality contributions through several features, some already in place and others still to come. Invite-only registration helps us discourage low-quality accounts and confirm that new members are real people. Next, we plan to introduce a vouching system, similar to Tangled's, that lets contributors build a reputation. We'll combine that reputation with other signals to assess new pull requests and issues. Contributions that appear low quality will be clearly marked and de-emphasized, while maintainers will make the final decision. We also plan to limit how many pull requests and issues a new contributor can open in repositories they don't own. This will be an ongoing effort, but the goal is simple: maintainers stay in control of their queues.
That's awesome. Thanks for working on this!
> We plan to reduce low-quality contributions
Ironic really because that was the original idea behind Git - to build a tree of trusted developers for the Linux kernel. Linus has those immediately below him that he trusts will push good quality code, and those folks do the same with their group of contributors.
> Invite-only registration helps us
If this is invite-only, then what you're doing is emulating the original strategy of Linus: only certain folks have commit rights. Extend that out to only certain folks have PR-creation rights and you're done. Maintainers select those that can contribute, these folks in-turn, select those that can contribute to the project, rinse and repeat.
Let everyone create issues and implicitly ignore these because any issue that doesn't make it passed the "acceptance level of a maintainer" will naturally be ignored and disappear. As is the case over at GH - issues naturally suffocate because no maintainer gives them air.
Perhaps have a special category "untrusted/toxic PRs" for contributors who don't belong in the tree of trust. These PRs are handled in a toxic-proof containment environment, i.e., they get particular vetting attentions by maintainers. Obviously this would be a path into the "tree of trust" for a project.
Then each project can also implicitly define what is "low quality" for their project - it's how they handle the "toxic PRs".
EDIT:
That's also why branching and forking is so cheap in Git: each sub-maintainer can maintain their own fork with it's branches before pushing up changes to the main fork. (Compare branching using RCS/CVS or Subversion to Git to get a feeling of "cheap" ;))
This can be done over at GH if a fork would be actively maintained by a sub-maintainer and every X days/weeks/months they would push the entire changes of the fork to the main repository. That would be closer to the Linux development strategy - as I understand it.
Amazing. Now the next is how to get an invitation or find someone who has codes to share.
Love your tech stack! Elixir and Phoenix will bring you lots of joy, it sure does for us ;)
It has brought me joy for almost 9 years now and I wouldn't trade it for the world! :) Glad that you enjoy it too!
"Everything" is in english. Are Ireland and Malta your primary markets?
Eh, English is the closest thing to a Lingua Franca in Europe, if you want to get as broad as possible.
Especially for a git service, something what would will be eminently used by software developers, who mostly can speak English anyway.
Wenn du willst kann ich auch alles auf Deutsch schreiben aber dann versteht's keiner
Na ja, "keiner" ist vielleicht etwas kurz gegriffen bei der nach Englisch am häufigst gesprochenen Sprache.
And who exactly in European tech doesn't know English?
Good luck, aspecialy in the UE!
How did you choose which countries to include on your map? You have countries that aren't in the EU but are missing countries which are.
Indeed, where the hell Cyprus is? Or you think it is too Russified to trust anymore? Perhaps you have a point.
Who are you having this conversation with?
Love to hear more about the Git implementation. In using S3, are you going the walgit route or more like git-remote-s3?
It's closer to walgit as it stores the packs in S3, but it uses Postgres for locking a repo during a push instead of using the Cursor/Walgit trick of using a WAL+CAS in S3. I've evaluated CAS on the Scaleway S3 service, but writing the WAL adds 240ms to every push, a cost we don't have with Postgres where it's a fast row lock. I also evaluated whether keeping a WAL would be useful, but ultimately decided against it because we can track everything the WAL tracks through the git history + audit logs without the write cost overhead.
Hey Peter, that's a very cool idea. I think (digital) sovereignty doesn't just happen, it's something we need to build and that's how we do it. It's a bit like "local first". Looking forward to using it once it launches :)
Thank you and I absolutely agree! Pushin is merely one building block. We need a European-centric push in many products.
Well as soon as your pricing is available and full onboarding is done, I will be pushing for it at work. We just left bitbucket and I have everything stored locally until we find an alternative and I just found it.
Oh wow! I'll start pushin (pun intended) to get this ready in time for you to switch then :)
You seem to cite tangled a lot, and logically, I am wondering if you have any plan to also federalize on top of the AT protocol, so accounts could interact across the site boundary and also allow self hosting but still benefiting from pushin network? It may be hard in terms of design so I understand if you say you won't.
Yes! I’d love to provide private or at least personal firehoses to users maybe based on the same lexicons as Tangled uses so that you can sync your Pushin repo to your own Tangled knot. That’d be cool, no? Also, sign-in with your atmosphere account, and generally offering lexicon-based API output to make it easy to sync to Tangled or somewhere else
Is there any type of email list I can subscribe to, to be informed of news/updates while (and even after) the site is in invite-only beta?
You can sign-up and I'll invite you to a chat room I'll set up based on chatto.run very soon. That'll be my main outlet for news and announcements.
Awesome, tyvm!
> I say "we" but it's really only me (Peter Ullrich, peterullrich.com) and my dog (Bella, Labrador, beige)
Is there an EU law about a "dog tax" when you've mentioned the dog? Perhaps there should be.
Ps - I'm kidding. Mostly. I like dogs and cats. Frequently, more than people.
Even though we don't have a dog tax in Leiden, NL, where I live, Bella is certainly taxing being the 2yo Labrador pup that she is :D
- and I agree!
Of course the Germans have a dog tax, how could they not?
https://en.wikipedia.org/wiki/Dog_licence#Germany
Interesting team, what does Bella bring to the table?
Mostly her toys which I should throw without first taking them. Only throw, no taking
I've heard enough, she deserves a promotion!
Having a dog is one of the best things someone working in tech (in anything?) can do. It changed my life.
What exactly does “Bots are welcome” mean in value 02?
You're free to use the API from your LLMs or other automations and push LLM-generated code, but not blast maintainers with your slop-machine.
How can I get invited to try it out?
+1
How is this different from a custom forgejo hosted in europe? What features does this provide compared to traditional code forges?
Disclaimer: I am building https://juju.bi, therefore you don't need to answer if uncomfortable.
you have a ui that looks practically linear - i like it...
Your website seems to conflate "Europe" with the EU.
Can you clarify, here and on the website, whether the data remains:
* in _EU member state_ sovereign territory
* in _European states'_ sovereign territory
* on the contentinent of Europe
or some combination of the above?
I am specifically wondering about:
* Out-of-Europe territories of European states.
* UK, Norway, Russia, Switzerland, Serbia etc.
The FAQ seems clear on this
> Where is my code actually hosted?
> On bare-metal servers that we operate in Scaleway's Paris datacenters
That could change at any time. They could move to an Italy datacenter owned by a different company and that would be just fine.
But whether they're making a promise to stay in the EU specifically? Or whether they might expand to territories that aren't physically in Europe? That could matter, and the FAQ doesn't tell us.
(And yeah the line at the top says 100% EU but that's not the full picture.)
I hope they also have a backup outside Paris.
In Europe people generally use “Europe” and the EU interchangeably.
I’m not sure many people would include Russia in Europe in normal speech, unless they were a geographer in which case Russia is partly “Europe” in some cases I think.
Even when the UK was part of the EU if someone in the UK said “Europe” they meant continental Europe and someone in continental Europe would be unlikely to mean the UK if they said Europe unless they were using “Europe” as a shorthand for the EU. When the UK was in the EU a United States American saying Europe would probably not not be including the UK in their mental model of Europe and, indeed [0], might not be very clear on what the UK actually is, because that’s confusing for the countries they agglomerate into “England” which might also include Ireland. A United States American saying “Europe” most likely means “Paris” and then maybe France, Italy, Spain or Greece but probably not Germany which is definitely the EU and everything that is wrong with the EU. But maybe Switzerland, because that very European.
As a European I’m not even sure where Serbia is, or if it’s even a real country [1]. I thought it was capital of Albania [2] . Or possibly a region of North Macedonia [3]
[0] only some of what I have said should be taken even part way seriously. Very little in fact
[1] Obviously being satirical here
[2,3] Also real countries, also European, but not necessarily “Europe” and definitely not EU. Yet.
> In Europe people generally use “Europe” and the EU interchangeably.
In Europe some people generally and incorrectly use "Europe" and the EU interchangeably. Europe existed far before the EU and will continue to exist after the EU finally comes to an end.
> Europe existed far before the EU and will continue to exist after the EU finally comes to an end.
First clause: indisputable.
Second clause: maybe, maybe not. Europe hasn't always existed as a concept, and its longevity is unknown.
> Europe hasn't always existed as a concept, and its longevity is unknown.
Europe is the name of a continent. What reason(s) would there be to change the name of a continent?
In contrast, the EU is a trading block, set up to foster greater pan-European trading relations. It's not the only pan-European institution. For example, the Council of Europe ( https://en.wikipedia.org/wiki/Council_of_Europe ) is a separate pan-European institution, set up in 1946 which was before the EU or any of the predecessors of the EU, and amongst other projects was behind the formation of the European Court of Human Rights. I bring this up to highlight that we do not need the EU in order to have collaboration between European countries.
I’m sure many thought the same about the United States of America when it was founded.
I guess the difference is the founding of the EU didn’t require multiple genocidal slaughters.
Oh, wait.
I think you maybe missed my footnotes.
Even if you did/did not, vernacular evolves. So at the time that you fervently hope the EU comes to its (clearly deserved, Mr Putin) end, I imagine people will be able to adapt their wrong speak and clearly incorrect thinking to ensure they adhere to the newspeak.
> at the time that you fervently hope the EU comes to its (clearly deserved, Mr Putin) end
I find it funny you think the only reason people would want the end of the EU is if they're a Russian agent. The EU has very little to do with defence. Perhaps your argument would hold more weight if talking about NATO, but even then it's not necessary for countries to be members of NATO in order to collaborate on protection when their collective security interests align.
> In Europe people generally use “Europe” and the EU interchangeably.
We do not.
OK! Your generalisation definitely beats mine.
> In Europe people generally use “Europe” and the EU interchangeably.
I guess you don't wander out of your office in Brussels much.
Oh sweetheart. The real looney Eurocrats like us don’t even leave Strasbourg. Brussels is filthy.
« As a European I’m » – So what country do you hail from? I understand it's not Serbia. Just so this wild nonsense and wannabe satire can have proper geographic attribution. (Because despite there being a strong indidivual factor, the systems governing some countries do breed certain mental dispositions.)
From the website:
"Your repos never leave the EU"
That's clear enough I think.
Do you have plans to publish the source code under an open-source license?
Hi, awesome to see more forges!
A few questions if you don't mind:
1) Do you plan to open source the platform? If not, what's your reasoning?
2) You say that platform stability is one of your core goals. How does that look in practice? From what I gather you rely on Scaleway a lot.
3) What makes your platform stand out from e.g. codeberg.org?
Thank you in advance :)
> 4. I say "we" but it's really only me (Peter Ullrich, peterullrich.com) and my dog (Bella, Labrador, beige).
I wish you the best, and I understand this might be necessary initially, but honestly I myself would never use a one man operation for anything I run in production.
Is GitHub really better? If you're a small project, you could always migrate to something else if this guy disappoints.
A few observations:
- Registrar: HOSTINGER operations, UAB, Lithuania. Hostinger-branded authoritative DNS servers run on Cloudflare’s network. This creates a dependency on a US company.
- IPv6 is not supported by the public website/Git endpoint.
- DNSSEC would be a great addition for security, especially due to the use of US-based Cloudflare and Let's Encrypt.
Lack of IPv6 is especially disappointing. Means you'll need IPv4 connectivity for your CI servers and other such infrastructure. :(
> 01 No US kill-switch. Just European law
Not very reassuring as of late
As a daily user of bitbucket, gitlab, and github, it's refreshing to see how insanely, extremely snappy this web ui is.
I hope all the best to succeed with this project, I'm sold!
Thank you! I hope the key shortcuts help too! I took that inspiration from npmx.dev :)
https://codeberg.org/
also fits the description of "Git hosting that never leaves Europe".
Regardless of that, these don't seen to play for the same audience.
Codeberg Terms of Use[^0] makes it clear that it's only for "projects covered by a licence for free and open source software, free and open source hardware, or free cultural works", and "You must not share projects that mostly consist of code written by "generative AI"-tools". They also only provide private repos where the FOSS system need it for their infra or what not, and not just for any purpose.
These are totally fine for Codeberg to do, and it's wonderful for FOSS!!
However it is not a viable place for many projects that are on GitHub/GitLab now and would want to migrate, say: any commercial project, that would need "permission-free" private repos, or when the teams want to decided themselves how much generative AI their developers should use, not their Git-hosting provider...
So yeah, different ballpark.
[0]: https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse...
Not a problem if you don't ask a robot to write code for you.
They also don’t allow code about cryptocurrencies.
They are strongly ideology-focused and it’s a matter of time they ban something you want to upload.
That's entirely fine.
Legally it’s fine to discriminate against some things, yes. Morally, that’s not very clear, it might actually not be entirely fine.
No, the general concept of arbitrary censorship by web hosts isn’t fine at all.
pushin's home page does mention that they 'block slop'. I wonder who decides what slop is, and how?
They mean AI spam PRs.
Codeberg seems to focus on OSS whereas pushin seems to focus on enterprise/commercial uses?
That’s right. There are plenty of good options for OSS but few to none focused on both, public and private especially with team/enterprise support. That’s why I created Pushin :) simply to have a place to store both my public and private repos but still retain a community which you dont get on a self-hosted solution
Its specifically based in France. This matters as EU law is less uniform than US law (yes, like differences between states, but a lot more so).
The UI is a lot snappier than Github.
The promise not to train models on the code is not very useful for public repos, and I cannot see anything about private repos.
Yes, we can't block models from scraping the public repos and train on them, but *we* won't use your code (neither public nor private) to train models on them. We really only want to host your code and do that well.
> we can't block models from scraping the public repos
FYI, there is the nuke option, which is generating endless nonsense pages as a form of “bot sink” [1] that ends the scraping relatively quickly, but IIRC that also tanks your search rankings, since it likely affects benign crawlers too – not something you’d necessarily want to happen to a new domain, unless you really need to protect server resources against aggressive hostile crawlers like SourceHut and so many others had to combat.
[1] https://www.toxsec.com/p/ai-tar-pits-are-drowning-llm-scrape...
Facepalm
LLMs are read only.
A developer would be the one using the LLM to evaluate page response text and scraping what they need.
LLMs cannot “crawl pages” or “scrape” or do anything - it’s an offline archive with a few convenience methods.
> LLMs cannot “crawl pages” or “scrape” or do anything - it’s an offline archive with a few convenience methods.
Being a bit needlessly pedantic here. I think it's well understood in these circles that such models are being driven by agents, which absolutely can crawl and scrape. The only thing a human needs to do is write rules for the agent to follow.
No, it allows people to dodge accountability.
It’s also not true.
An LLM cannot visit the internet at all.
There is no “agent” - that is a marketing term. It’s software and LLM that’s it.
There is no "software" - that is a marketing term. It's bits and that's it.
Not how words work, try calling it bits in any setting where you mean software.
Wouldn’t matter in court anyway or anywhere you put it to the test even if you called it bits.
Point is dodging accountability by saying some “AI did it” when it’s not reflective of reality.
LLMs are read only and have no access to the internet :)
Nice idea, zero trust signals. Don't even see company details or the folks behind and no legal pages.
Yes, sorry this escaped containment before I was able to update the landing page. Since the product is in invite-only beta still, I focused on the UX of the platform instead of the "marketing materials" aka. Landing page
Trust is not "marketing materials". Folks trust that you keep those promises, that their code ist safe. Your product is trust, not the application. Code and application are just the vehicle to deliver that.
I'm very much aware of that and I've put all my effort into making the application trustworthy first. That means: Not a single byte must ever get lost. Since the website wasn't updated for the general public when it hit HN, these trust signals (e.g. privacy policy, ToS, info on business model) are/were missing. Sorry about that!
You don’t have to have all of that material published and polished before you turn your website live. It literally is stuff that belongs on your marketing Wordpress static site or whatever.
If the founder had done a big b2b ad blitz without that stuff, sure, some griping might be warranted. But this isn’t that: some fledgling product website went viral-ish in HN and you’re complaining about the digital equivalent of the paint not being dry.
"Why don't the elevators work in this under construction building?!"
So often when something launches, these are missing. And it always really surprises me. People apparently just sign up for such services, but I would want to know these details in advance before doing so.
I think this maybe needs some more time, to figure out what the actual plan with this is - if any.
The humour is there: https://pushin.eu/orgs/mctestface/members (Boaty Mac Boat Face ref mentioned)
Yes, that's my test organization :)
Ooh, here come the others. I'm sure there's more people working on this same thing. Probably mostly a matter of how ready we are to release something. Nice to see it coming out of the Netherlands though.
I think the hardest part about working on the same thing is to not immediately post it when you see other products in the same space pop up.
Smells vibe coded.
Love it and will try to find a way to use it and pay for it.
That name though, does make me feel that somewhere in the stack is a tool called Gitler. Sorry!!
Thank you, but what? The name was meant like: `Push in (Europe)` hence, pushin.eu
I didn't get that either until I read this comment. I read "pushin" as one word, figured it was a made up proper name for a product.
Once upon a time, I, too, had a domain where the TLD was part of the actual name and required to read it correctly (think something like foobar-pl.us). In my experience this left most people confused and I abandoned that quite quickly.
I read it, perhaps ironically, as colloquial/slang US English, like "lemme git to pushin' y'all!"
I read it as "push in you" and was confused
Any relation to Alexander Pushkin? ;)
He was also a European…
Try this git hosting, for a change: https://mikhailian.mova.org/posts/305-looking-for-a-european...
I would want to know the pricing before I’d move anything there.
It should cost money - I just want to know how much.
It will!
I'll introduce subscriptions soon, we're currently still in invite-only beta, but the subscriptions will be very much like GitHub/GitLabs with individual and team pricing.
- "a platform built for humans, not AI."
- "Bots are welcome. Slop gets blocked."
- "No AI buttons bolted onto every surface."
yet the entire website appears to be itself AI slop. is the codebase vibecoded too? I seem to get a "connection lost" toast notification every time the page loads despite it being a wholly static page.
your service is founding itself on a promise (forges in general are of course not a novel concept) that i feel you're failing to uphold.
What I’d love to see is the ability to use my own domain name, so that if that service ever goes under, I can set up a git service with the same paths and everyone relying on my software can continue to do so. It’s just hard to find the trust to invest in a completely new domain to host my projects under.
I think you should be able to do that if you run your own Tangled knot. I'd assume that you can host it under your domain which means your git service will remain even if Tangled itself is down or goes under.
great idea, sadly full of vibe-code. I assume it was prompted by copying the style of some existing EU-style Design system.
Idea is promising though, hope it matures into something solid.
I feel author might not realize how much this will lead to its death and probably also current visitors that sees this (in its current state - aka design seen 1M times with virtually zero work on branding done) might never return.
I just moved from github to vodeberg then to my own self hosted forgejo on hetzner. I may wait awhile and then try yours.
I self-hosted Pushin on my own Forgejo instance on a Hetzner bare metal server before Pushin was ready and it was a great experience to be honest! Self-hosting Forgejo is great!
Is your code safe on hetzner though? I wanted to do something similar but I'm hesitant about what hetzner employees can see on the machines so I don't know how private and safe it would be to store code there.
Feels like 2026 is the best time for non-US tech companies to grow. What a weird timeline we're in. Excited for our developments up here in Canada too :D
If I want to create an account not to host repositories, but only to report bugs by opening issues in a repository of an application I'm using, do I still need an invitation code?
yes
Will it have continuous integration or is it focused on just version control and issue tracking?
It does already, but it's not yet properly documented. You can already run your own Gitea runner and point it at Pushin. I'll also add managed CI runner support based on Firecracker VMs soon. Currently, I use self-hosted runners for my CI, but the UI is a bit rough. I wanted to merge a PR today that fixes all that but then HN happened so just bear with me a little longer :)
No worries. You can also instead provide integration of third party CI. Thanks for letting me know.
>Bots are welcome. Slop gets blocked.
And yet the marketing copy is egregious AI slop.
> Just European law.
So, calling for as many votes for and against a law as it takes for it to pass.
Congrats, great project. More info would be appreciated, I.E upload limit in GB for each and in total?
Thank you! Sorry about that, this post on HN caught me before it was ready. Upload limits are: 5GB for logs, 5GB for artifacts, 10 GB cache. These limits will probably change once I introduce a paid trier (same limits there, lower limits on the free tier)
There's a sign of life on the elexir forum: https://elixirforum.com/t/macro-mayhem-004-peter-announces-p...
There's a possibility this was made by a person. Apart from that good luck getting any information behind this.
That's true, that's me! My personal website is peterullrich.com
So you are switching focus from blockchain-something to EU-something?
Hm.
I was never really blockchain-something. It was all the hype when I finished my software engineering masters (around 2017/18), so to understand the technology better I started a Podcast and wrote my master thesis about it. I never used it or worked in it afterwards though and I never thought it'd become more than a scam unfortunately
How is this different than Codeberg?
It seems to be AI coded (see other comments) so, unlike codeberg, this will probably accept vibe coded AI code.
I don't like vibe coding myself, but I love AI assisted development, my new bottleneck is no longer the search for syntax and features but my understanding. Am I welcome on your platform?
Yes.
It looks great!!!
This looks really nice! I'm interested in how the CI works though. One thing that annoys me about existing CI is that it's difficult to run locally and relatedly, config files don't work cross platform.
I'd love a CI platform that just used a super thin docker + script driver. Rather than platform specific YAML files that define steps.
“We block slop” - why does a git host care about the quality of code that I choose to produce?
As long as it’s within bandwidth and storage quota, why the hell should they care? “Slop” is ambiguous and ill-defined.
This is ideological anti-customer nonsense.
There has to be a more thorough solution here. The current form of EU is betraying EU citizens to the USA - we already saw this and were astonished how Leyen insta-submitted to the orange clown. This can no longer be explained by "better business deals", since this is systematic. So, Europe depending on the USA is a lose-lose scenario for EU citizens, including the lack of nuclear arsenal on an EU-wide basis. We see this right now with Putin committing his genocide - he knows that agent Krasnov will never do anything against him. So these isolated strategies such as "xyz never leaving Europe" is fine as a first step, but it needs to be integrated into a cohesive overall strategy, including doing something about US mega-corporations that are extremely hostile to european interests - aka Google, Facebook and so forth. At the very least the EU should help fund open source alternatives much more in a systematic manner, from A to Z. Even that in and by itself is not an overarching strategy, but it is the first two steps towards one.
You shouldn't allow repos without descriptions. Do people really cannot be bothered to write one sentence that describes the repo?
Why is it any of your business how I do or don't describe my repos? (Genuine question, it seems like a really weird demand to impose on other people for no particular reason)
Published repos are for collaboration.
Says who?
(Of my 200+ published repos, I'd say about 175 contain code I wrote purely to scratch my own itches - if other people find it useful, great! If they don't find it useful, that's also fine with me - I'm not sure why I should be obliged to go out of my way to help though?)