[{"data":1,"prerenderedAt":411},["ShallowReactive",2],{"navigation_docs":3,"-blog-european-open-source-alternative-to-vercel-heroku-railway":258},[4,31,92,117,138,164,184,225,241],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Basic Concepts","\u002Fgetting-started\u002Fconcepts","1.getting-started\u002F1.concepts","i-lucide-book-open",{"title":16,"path":17,"stem":18,"icon":19},"About Lucity","\u002Fgetting-started\u002Fabout","1.getting-started\u002F2.about","i-lucide-info",{"title":21,"path":22,"stem":23,"icon":24},"Self-Hosting","\u002Fgetting-started\u002Fself-hosting","1.getting-started\u002F3.self-hosting","i-lucide-server",{"title":26,"path":27,"stem":28,"icon":29},"Roadmap","\u002Fgetting-started\u002Froadmap","1.getting-started\u002F4.roadmap","i-lucide-map",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"Features","i-lucide-layers","\u002Ffeatures","2.features",[37,42,47,52,57,62,67,72,77,82,87],{"title":38,"path":39,"stem":40,"icon":41},"Projects","\u002Ffeatures\u002Fprojects","2.features\u002F1.projects","i-lucide-folder",{"title":43,"path":44,"stem":45,"icon":46},"Scaling","\u002Ffeatures\u002Fscaling","2.features\u002F10.scaling","i-lucide-scaling",{"title":48,"path":49,"stem":50,"icon":51},"Billing & Pricing","\u002Ffeatures\u002Fbilling","2.features\u002F11.billing","i-lucide-credit-card",{"title":53,"path":54,"stem":55,"icon":56},"Services","\u002Ffeatures\u002Fservices","2.features\u002F2.services","i-lucide-box",{"title":58,"path":59,"stem":60,"icon":61},"Environments","\u002Ffeatures\u002Fenvironments","2.features\u002F3.environments","i-lucide-git-branch-plus",{"title":63,"path":64,"stem":65,"icon":66},"Builds","\u002Ffeatures\u002Fbuilds","2.features\u002F4.builds","i-lucide-hammer",{"title":68,"path":69,"stem":70,"icon":71},"Deployments","\u002Ffeatures\u002Fdeployments","2.features\u002F5.deployments","i-lucide-upload",{"title":73,"path":74,"stem":75,"icon":76},"Promotion","\u002Ffeatures\u002Fpromotion","2.features\u002F6.promotion","i-lucide-arrow-right-left",{"title":78,"path":79,"stem":80,"icon":81},"GitHub Integration","\u002Ffeatures\u002Fgithub-integration","2.features\u002F7.github-integration","i-lucide-github",{"title":83,"path":84,"stem":85,"icon":86},"Eject","\u002Ffeatures\u002Feject","2.features\u002F8.eject","i-lucide-door-open",{"title":88,"path":89,"stem":90,"icon":91},"Environment Variables","\u002Ffeatures\u002Fvariables","2.features\u002F9.variables","i-lucide-variable",{"title":93,"icon":24,"path":94,"stem":95,"children":96,"page":30},"Infrastructure","\u002Finfrastructure","3.infrastructure",[97,102,107,112],{"title":98,"path":99,"stem":100,"icon":101},"Databases","\u002Finfrastructure\u002Fdatabases","3.infrastructure\u002F1.databases","i-lucide-database",{"title":103,"path":104,"stem":105,"icon":106},"Redis","\u002Finfrastructure\u002Fredis","3.infrastructure\u002F2.redis","i-lucide-zap",{"title":108,"path":109,"stem":110,"icon":111},"Cron Jobs","\u002Finfrastructure\u002Fcron-jobs","3.infrastructure\u002F3.cron-jobs","i-lucide-clock",{"title":113,"path":114,"stem":115,"icon":116},"Networking","\u002Finfrastructure\u002Fnetworking","3.infrastructure\u002F4.networking","i-lucide-network",{"title":118,"icon":119,"path":120,"stem":121,"children":122,"page":30},"Architecture","i-lucide-workflow","\u002Farchitecture","4.architecture",[123,128,133],{"title":124,"path":125,"stem":126,"icon":127},"Philosophy","\u002Farchitecture\u002Fphilosophy","4.architecture\u002F1.philosophy","i-lucide-compass",{"title":129,"path":130,"stem":131,"icon":132},"How It Works","\u002Farchitecture\u002Fhow-it-works","4.architecture\u002F2.how-it-works","i-lucide-cpu",{"title":134,"path":135,"stem":136,"icon":137},"GitOps","\u002Farchitecture\u002Fgitops","4.architecture\u002F3.gitops","i-lucide-git-commit",{"title":139,"icon":140,"path":141,"stem":142,"children":143,"page":30},"Security","i-lucide-shield","\u002Fsecurity","5.security",[144,148,152,156,160],{"title":145,"path":146,"stem":147},"Overview","\u002Fsecurity\u002Foverview","5.security\u002F1.overview",{"title":149,"path":150,"stem":151},"Build Isolation","\u002Fsecurity\u002Fbuild-isolation","5.security\u002F2.build-isolation",{"title":153,"path":154,"stem":155},"Network Policies","\u002Fsecurity\u002Fnetwork-policies","5.security\u002F3.network-policies",{"title":157,"path":158,"stem":159},"Pod Security","\u002Fsecurity\u002Fpod-security","5.security\u002F4.pod-security",{"title":161,"path":162,"stem":163},"Registry Authentication","\u002Fsecurity\u002Fregistry-auth","5.security\u002F5.registry-auth",{"title":165,"icon":166,"path":167,"stem":168,"children":169,"page":30},"Use Cases","i-lucide-lightbulb","\u002Fuse-cases","6.use-cases",[170,175,179],{"title":171,"path":172,"stem":173,"icon":174},"Agencies","\u002Fuse-cases\u002Fagencies","6.use-cases\u002F1.agencies","i-lucide-building-2",{"title":176,"path":177,"stem":178,"icon":6},"Startups & Small Teams","\u002Fuse-cases\u002Fstartups","6.use-cases\u002F2.startups",{"title":180,"path":181,"stem":182,"icon":183},"Platform Teams","\u002Fuse-cases\u002Fplatform-teams","6.use-cases\u002F3.platform-teams","i-lucide-users",{"title":185,"icon":186,"path":187,"stem":188,"children":189,"page":30},"Comparisons","i-lucide-scale","\u002Fcomparisons","7.comparisons",[190,195,200,205,210,215,220],{"title":191,"path":192,"stem":193,"icon":194},"PaaS Comparison: Lucity vs Railway, Render, Heroku, Fly.io, Coolify","\u002Fcomparisons\u002Foverview","7.comparisons\u002F1.overview","i-lucide-table",{"title":196,"path":197,"stem":198,"icon":199},"vs Railway","\u002Fcomparisons\u002Fvs-railway","7.comparisons\u002F2.vs-railway","i-lucide-train",{"title":201,"path":202,"stem":203,"icon":204},"vs Render","\u002Fcomparisons\u002Fvs-render","7.comparisons\u002F3.vs-render","i-lucide-layout-template",{"title":206,"path":207,"stem":208,"icon":209},"vs Heroku","\u002Fcomparisons\u002Fvs-heroku","7.comparisons\u002F4.vs-heroku","i-lucide-cloud",{"title":211,"path":212,"stem":213,"icon":214},"vs Vercel","\u002Fcomparisons\u002Fvs-vercel","7.comparisons\u002F5.vs-vercel","i-lucide-triangle",{"title":216,"path":217,"stem":218,"icon":219},"vs Fly.io","\u002Fcomparisons\u002Fvs-fly-io","7.comparisons\u002F6.vs-fly-io","i-lucide-plane",{"title":221,"path":222,"stem":223,"icon":224},"vs Coolify","\u002Fcomparisons\u002Fvs-coolify","7.comparisons\u002F7.vs-coolify","i-lucide-snowflake",{"title":226,"icon":227,"path":228,"stem":229,"children":230},"Changelog","i-lucide-scroll-text","\u002Fchangelog","8.changelog",[231,233,237],{"title":226,"path":228,"stem":232},"8.changelog\u002Findex",{"title":234,"path":235,"stem":236},"Workspaces, Billing, Scaling, Custom Domains, Variables","\u002Fchangelog\u002Fcontinued-development","8.changelog\u002F1.continued-development",{"title":238,"path":239,"stem":240},"Projects, Builds, Deployments, Environments, Databases, Ejection","\u002Fchangelog\u002Finitial-development","8.changelog\u002F2.initial-development",{"title":242,"path":243,"stem":244,"children":245,"page":30},"Legal","\u002Flegal","legal",[246,250,254],{"title":247,"path":248,"stem":249},"Data Processing Agreement","\u002Flegal\u002Fdata-processing-agreement","legal\u002Fdata-processing-agreement",{"title":251,"path":252,"stem":253},"Privacy Policy","\u002Flegal\u002Fprivacy-policy","legal\u002Fprivacy-policy",{"title":255,"path":256,"stem":257},"Terms of Use","\u002Flegal\u002Fterms-of-use","legal\u002Fterms-of-use",{"id":259,"title":260,"author":261,"body":262,"date":402,"description":403,"extension":404,"meta":405,"navigation":406,"path":407,"seo":408,"stem":409,"__hash__":410},"blog\u002Fblog\u002Feuropean-open-source-alternative-to-vercel-heroku-railway.md","The European open-source alternative to Vercel, Heroku, and Railway","Christian Blättler",{"type":263,"value":264,"toc":398},"minimark",[265,277,280,283,292,295,298,304,313,350,358,372,375],[266,267,268,269,276],"p",{},"Ever since I deployed my first web app to Vercel (back when it was ",[270,271,275],"a",{"href":272,"rel":273},"https:\u002F\u002Fvercel.com\u002Fblog\u002Fzeit-is-now-vercel",[274],"nofollow","still called ZEIT",") as a teenager, I was hooked on the developer experience. Simple and intuitive, yet scalable enough for real projects.",[266,278,279],{},"At the time I was used to configuring Windows servers by hand, so it felt genuinely magical that infrastructure could be this effortless.",[266,281,282],{},"That fascination with infrastructure automation stuck with me. I have spent almost ten years as a software engineer on infrastructure automation projects, much of it on teams running containers at scale with Kubernetes. I saw first hand how a few well-chosen integrations can turn a plain cluster into a platform that is far greater than the sum of its parts.",[266,284,285,286,291],{},"So I always assumed Kubernetes would be the obvious foundation for a platform like this. That is why it surprised me to learn that Heroku, Vercel, and Railway were all built on proprietary container orchestration (",[270,287,290],{"href":288,"rel":289},"https:\u002F\u002Fwww.heroku.com\u002Fblog\u002Fnext-generation-heroku-platform\u002F",[274],"Heroku appears to have moved to Kubernetes in recent years",").",[266,293,294],{},"For a long time that was just an interesting technical detail. Then the recent geopolitical instability made something clear: these platforms fall under US jurisdiction, and with it the US CLOUD Act, which is more than a theoretical risk for a European business.",[266,296,297],{},"So I finally started building the platform I had been sketching in the back of my mind for years, with one goal:",[299,300,301],"blockquote",{},[266,302,303],{},"Replicate the developer experience of Vercel, Heroku, and Railway, on an open platform that never locks you in.",[266,305,306,307,312],{},"The result is Lucity. You can ",[270,308,311],{"href":309,"rel":310},"https:\u002F\u002Flucity.cloud\u002Fapp\u002Flogin",[274],"try it for free",". A few of the highlights:",[314,315,316,320,323,326,329,332,335,338,341,344,347],"ul",{},[317,318,319],"li",{},"Git push to deploy",[317,321,322],{},"Automated builds for your favorite languages and frameworks: Node.js, Next.js, Python, Go, PHP, Ruby, Rust, Java, Elixir, Bun, Deno, .NET, and static sites",[317,324,325],{},"One-click PostgreSQL (replicated), S3-compatible object storage, and Redis-compatible key-value stores",[317,327,328],{},"Tokenless deployments from GitHub Actions",[317,330,331],{},"AI-native deployments powered by an MCP server and a Claude Code plugin",[317,333,334],{},"Dynamic variables, so you reference credentials instead of hardcoding them",[317,336,337],{},"Usage-based billing: pay only for what you use",[317,339,340],{},"Vulnerability and leaked-credential scans on every commit",[317,342,343],{},"Separate environments for development, staging, and production",[317,345,346],{},"Logs, metrics, and observability built in",[317,348,349],{},"Custom domains, private networking, and much more",[266,351,352,353,357],{},"And naturally, that headline feature is what makes \"no lock-in\" more than a slogan. When you want out, ",[354,355,356],"code",{},"lucity eject"," hands you the full configuration as standard Helm charts, ready to run on any Kubernetes cluster with Lucity out of the picture. It works because Lucity keeps no database of its own: it derives all of its state from Kubernetes and the systems around it. Your infrastructure stays yours.",[266,359,360,361,365,366,371],{},"Lucity is under active development. Reach out at ",[270,362,364],{"href":363},"mailto:christian@zeitlos.software","christian@zeitlos.software"," or open an issue at ",[270,367,370],{"href":368,"rel":369},"https:\u002F\u002Fgithub.com\u002Fzeitlos\u002Flucity",[274],"github.com\u002Fzeitlos\u002Flucity"," for feature requests and bug reports.",[266,373,374],{},"It is also listed as a European alternative on:",[314,376,377,384,391],{},[317,378,379],{},[270,380,383],{"href":381,"rel":382},"https:\u002F\u002Feuropeantechmap.eu\u002Fcompany\u002Flucity",[274],"European Tech Map",[317,385,386],{},[270,387,390],{"href":388,"rel":389},"https:\u002F\u002Feuroalternative.eu\u002Flucity",[274],"euroalternative.eu",[317,392,393],{},[270,394,397],{"href":395,"rel":396},"https:\u002F\u002Feuropeanpurpose.com\u002Ftool\u002Flucity",[274],"European Purpose",{"title":399,"searchDepth":400,"depth":400,"links":401},"",2,[],"2026-07-27","Why I built Lucity: the same developer experience as Vercel, Heroku, and Railway, on an open platform you own and can leave at any time.","md",{},true,"\u002Fblog\u002Feuropean-open-source-alternative-to-vercel-heroku-railway",{"title":260,"description":403},"blog\u002Feuropean-open-source-alternative-to-vercel-heroku-railway","5x1NNXphPtBvtrDNpLqWHSNiqsj4uIv7Fz5aitCEyE8",1785159027878]