Editor’s note (2026-08-30): this post describes the setup we moved to in April 2026 and why. Since then the memory shortage has pushed European hosting prices up sharply, and we’ve decided to use non-EU services again where the EU option costs multiples or isn’t EU all the way down its own supply chain. The reasoning is in the August update. The privacy policy is updated whenever a service actually changes.
We haven’t launched yet. We’re in the messy, unglamorous phase of testing everything as if it were the live system: breaking things, fixing things, making sure the beta is solid when it goes out the door.
In the middle of all that, we rebuilt our infrastructure.
The question that started it
While talking with friends and people close to the project, the same question kept coming up: “You keep saying you care about privacy, but your website runs on Cloudflare, your database is on Cloudflare, your analytics are Cloudflare. Isn’t that all US infrastructure?”
They were right. It was a fair challenge.
When we started building Voidcom, Cloudflare was the obvious choice. Cloudflare Pages is fast to set up, the CDN is excellent, and services like D1 and Web Analytics made it easy to ship without managing servers. For a small team focused on the actual product, it made sense.
But “it was convenient” isn’t a great answer when you’re building a communication platform that promises to respect its users’ privacy.
The gap between words and infrastructure
The EU-US Data Privacy Framework exists, and Cloudflare participates in it. Legally, data transfers were covered. But legal frameworks change, and they have before. The US CLOUD Act lets authorities compel US companies to hand over data stored anywhere in the world. FISA Section 702 enables surveillance of non-US persons’ communications.
None of this means Cloudflare was doing anything wrong. It means that relying on US-based infrastructure for a product about private communication opens a gap between what we say and where the data lives.
We didn’t want that gap to exist when we asked people to trust us.
What we changed
We decided not to wait until after launch. If we’re going to ask beta users to trust Voidcom with their communication, the infrastructure should match the promise from day one.
What we moved:
Website hosting, from Cloudflare Pages to a self-hosted instance on Hetzner in Germany. We run our own deployment pipeline now. More work to maintain, but full control over where the data lives.
Content delivery, from Cloudflare’s CDN to Bunny CDN, an EU-based company headquartered in Slovenia. Fast edge delivery, DDoS protection, and no data leaving the European Union.
Website database, from Cloudflare D1 (US) to our own database on Hetzner in Germany. Newsletter subscribers, beta applications, all of it stays on our servers now.
Analytics, from Cloudflare Web Analytics to Plausible Analytics, self-hosted on our own infrastructure. No cookies, no personal data, no third party involved. The analytics data never leaves our server.
Code and CI/CD: we host our repositories on Codeberg, a non-profit, Germany-based Git hosting platform, and run our CI/CD pipelines through Woodpecker CI on self-hosted runners on our own server hardware.
Installer downloads are served from Scaleway Object Storage in France. When you download Voidcom, the binary comes from EU infrastructure.
Newsletter emails were already handled by Proton Mail in Switzerland, covered by EU adequacy decisions. This one didn’t need to change.
Application servers: our backend is designed to run across multiple EU providers (Hetzner, OVH, IONOS, Leaseweb) in Germany, load-balanced with cross-provider failover so a single-vendor outage can’t take the service down. User accounts, messages, voice, all of it will be EU-hosted from day one.
This is just the beginning
We’re not claiming to have eliminated every non-EU dependency. Infrastructure has many layers: domain registrars, DNS, upstream network providers. We’ll keep evaluating.
But moving the services that directly handle user data and website visitors to EU-based or self-hosted infrastructure is a real step. It costs us more time, more effort, and more operational complexity. We’re doing it because it’s consistent with what we believe.
Why now, not later
We could have launched the beta on Cloudflare and migrated later. It would have been easier. Nobody would have noticed.
That’s exactly the kind of thinking we’re trying to avoid. “We’ll fix it later” is how products end up with privacy policies that don’t match reality. We’d rather do the hard thing now, in the middle of testing and under time pressure, and launch with infrastructure we’re proud of.
If we’re going to ask you to trust us with your conversations, your voice calls, and your communities, we want to earn that trust before you sign up, not after.
Where things stand
We’ve updated our privacy policy to reflect these changes. It’s written in plain language and tells you exactly where your data goes, who processes it, and why.
We’re in the final stretch before beta. Still testing, still fixing. But now when someone asks “where does my data actually live?”, we have an answer we’re comfortable with.
Apply for the beta and see for yourself.