[{"data":1,"prerenderedAt":684},["ShallowReactive",2],{"navigation_docs":3,"section-navigation-docs":130,"blog-index":164},[4,8,50,54,58,62,66,70,74,78,82,86,90,94,98,102,106,110,114,118,122,126],{"title":5,"path":6,"stem":7},"Quickstart","\u002Fdocs\u002Fquickstart","docs\u002F01.quickstart",{"title":9,"path":10,"stem":11,"children":12},"Guides","\u002Fdocs\u002Fguides","docs\u002F02.guides\u002Findex",[13,14,18,22,26,30,34,38,42,46],{"title":9,"path":10,"stem":11},{"title":15,"path":16,"stem":17},"Next.js","\u002Fdocs\u002Fguides\u002Fnextjs","docs\u002F02.guides\u002F1.nextjs",{"title":19,"path":20,"stem":21},"Nuxt","\u002Fdocs\u002Fguides\u002Fnuxt","docs\u002F02.guides\u002F2.nuxt",{"title":23,"path":24,"stem":25},"SvelteKit","\u002Fdocs\u002Fguides\u002Fsveltekit","docs\u002F02.guides\u002F3.sveltekit",{"title":27,"path":28,"stem":29},"Astro","\u002Fdocs\u002Fguides\u002Fastro","docs\u002F02.guides\u002F4.astro",{"title":31,"path":32,"stem":33},"Express","\u002Fdocs\u002Fguides\u002Fexpress","docs\u002F02.guides\u002F5.express",{"title":35,"path":36,"stem":37},"FastAPI","\u002Fdocs\u002Fguides\u002Ffastapi","docs\u002F02.guides\u002F6.fastapi",{"title":39,"path":40,"stem":41},"Django","\u002Fdocs\u002Fguides\u002Fdjango","docs\u002F02.guides\u002F7.django",{"title":43,"path":44,"stem":45},"Laravel","\u002Fdocs\u002Fguides\u002Flaravel","docs\u002F02.guides\u002F8.laravel",{"title":47,"path":48,"stem":49},"Go","\u002Fdocs\u002Fguides\u002Fgo","docs\u002F02.guides\u002F9.go",{"title":51,"path":52,"stem":53},"Services","\u002Fdocs\u002Fservices","docs\u002F03.services",{"title":55,"path":56,"stem":57},"Deployments","\u002Fdocs\u002Fdeployments","docs\u002F04.deployments",{"title":59,"path":60,"stem":61},"Builds","\u002Fdocs\u002Fbuilds","docs\u002F05.builds",{"title":63,"path":64,"stem":65},"Variables","\u002Fdocs\u002Fvariables","docs\u002F06.variables",{"title":67,"path":68,"stem":69},"Domains","\u002Fdocs\u002Fdomains","docs\u002F07.domains",{"title":71,"path":72,"stem":73},"PostgreSQL","\u002Fdocs\u002Fpostgres","docs\u002F08.postgres",{"title":75,"path":76,"stem":77},"Object storage","\u002Fdocs\u002Fobject-storage","docs\u002F09.object-storage",{"title":79,"path":80,"stem":81},"Volumes","\u002Fdocs\u002Fvolumes","docs\u002F10.volumes",{"title":83,"path":84,"stem":85},"Key-value store","\u002Fdocs\u002Fredis","docs\u002F11.redis",{"title":87,"path":88,"stem":89},"Workspaces","\u002Fdocs\u002Fworkspaces","docs\u002F12.workspaces",{"title":91,"path":92,"stem":93},"Projects","\u002Fdocs\u002Fprojects","docs\u002F13.projects",{"title":95,"path":96,"stem":97},"Environments","\u002Fdocs\u002Fenvironments","docs\u002F14.environments",{"title":99,"path":100,"stem":101},"Eject","\u002Fdocs\u002Feject","docs\u002F15.eject",{"title":103,"path":104,"stem":105},"API","\u002Fdocs\u002Fapi","docs\u002F16.api",{"title":107,"path":108,"stem":109},"CLI","\u002Fdocs\u002Fcli","docs\u002F17.cli",{"title":111,"path":112,"stem":113},"Claude Plugin & MCP","\u002Fdocs\u002Fclaude-plugin","docs\u002F18.claude-plugin",{"title":115,"path":116,"stem":117},"Metrics","\u002Fdocs\u002Fmetrics","docs\u002F19.metrics",{"title":119,"path":120,"stem":121},"Logs","\u002Fdocs\u002Flogs","docs\u002F20.logs",{"title":123,"path":124,"stem":125},"Billing","\u002Fdocs\u002Fbilling","docs\u002F21.billing",{"title":127,"path":128,"stem":129},"Self-hosting","\u002Fdocs\u002Fself-hosting","docs\u002F22.self-hosting",[131,132,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163],{"title":5,"path":6,"stem":7},{"title":9,"path":10,"stem":11,"children":133,"page":-1},[134,135,136,137,138,139,140,141,142,143],{"title":9,"path":10,"stem":11},{"title":15,"path":16,"stem":17},{"title":19,"path":20,"stem":21},{"title":23,"path":24,"stem":25},{"title":27,"path":28,"stem":29},{"title":31,"path":32,"stem":33},{"title":35,"path":36,"stem":37},{"title":39,"path":40,"stem":41},{"title":43,"path":44,"stem":45},{"title":47,"path":48,"stem":49},{"title":51,"path":52,"stem":53},{"title":55,"path":56,"stem":57},{"title":59,"path":60,"stem":61},{"title":63,"path":64,"stem":65},{"title":67,"path":68,"stem":69},{"title":71,"path":72,"stem":73},{"title":75,"path":76,"stem":77},{"title":79,"path":80,"stem":81},{"title":83,"path":84,"stem":85},{"title":87,"path":88,"stem":89},{"title":91,"path":92,"stem":93},{"title":95,"path":96,"stem":97},{"title":99,"path":100,"stem":101},{"title":103,"path":104,"stem":105},{"title":107,"path":108,"stem":109},{"title":111,"path":112,"stem":113},{"title":115,"path":116,"stem":117},{"title":119,"path":120,"stem":121},{"title":123,"path":124,"stem":125},{"title":127,"path":128,"stem":129},[165,310],{"id":166,"title":167,"author":168,"body":169,"date":301,"description":302,"extension":303,"meta":304,"navigation":305,"path":306,"seo":307,"stem":308,"__hash__":309},"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":170,"value":171,"toc":297},"minimark",[172,182,185,188,196,199,202,208,216,253,261,274,277],[173,174,175,176,181],"p",{},"Ever since I deployed my first web app to Vercel (back when it was ",[177,178,180],"a",{"href":179},"https:\u002F\u002Fvercel.com\u002Fblog\u002Fzeit-is-now-vercel","still called ZEIT",") as a teenager, I was hooked on the developer experience. Simple and intuitive, yet scalable enough for real projects.",[173,183,184],{},"At the time I was used to configuring Windows servers by hand, so it felt genuinely magical that infrastructure could be this effortless.",[173,186,187],{},"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.",[173,189,190,191,195],{},"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 (",[177,192,194],{"href":193},"https:\u002F\u002Fwww.heroku.com\u002Fblog\u002Fnext-generation-heroku-platform\u002F","Heroku appears to have moved to Kubernetes in recent years",").",[173,197,198],{},"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.",[173,200,201],{},"So I finally started building the platform I had been sketching in the back of my mind for years, with one goal:",[203,204,205],"blockquote",{},[173,206,207],{},"Replicate the developer experience of Vercel, Heroku, and Railway, on an open platform that never locks you in.",[173,209,210,211,215],{},"The result is Lucity. You can ",[177,212,214],{"href":213},"https:\u002F\u002Flucity.cloud\u002Fapp\u002Flogin","try it for free",". A few of the highlights:",[217,218,219,223,226,229,232,235,238,241,244,247,250],"ul",{},[220,221,222],"li",{},"Git push to deploy",[220,224,225],{},"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",[220,227,228],{},"One-click PostgreSQL (replicated), S3-compatible object storage, and Redis-compatible key-value stores",[220,230,231],{},"Tokenless deployments from GitHub Actions",[220,233,234],{},"AI-native deployments powered by an MCP server and a Claude Code plugin",[220,236,237],{},"Dynamic variables, so you reference credentials instead of hardcoding them",[220,239,240],{},"Usage-based billing: pay only for what you use",[220,242,243],{},"Vulnerability and leaked-credential scans on every commit",[220,245,246],{},"Separate environments for development, staging, and production",[220,248,249],{},"Logs, metrics, and observability built in",[220,251,252],{},"Custom domains, private networking, and much more",[173,254,255,256,260],{},"And naturally, that headline feature is what makes \"no lock-in\" more than a slogan. When you want out, ",[257,258,259],"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.",[173,262,263,264,268,269,273],{},"Lucity is under active development. Reach out at ",[177,265,267],{"href":266},"mailto:christian@zeitlos.software","christian@zeitlos.software"," or open an issue at ",[177,270,272],{"href":271},"https:\u002F\u002Fgithub.com\u002Fzeitlos\u002Flucity","github.com\u002Fzeitlos\u002Flucity"," for feature requests and bug reports.",[173,275,276],{},"It is also listed as a European alternative on:",[217,278,279,285,291],{},[220,280,281],{},[177,282,284],{"href":283},"https:\u002F\u002Feuropeantechmap.eu\u002Fcompany\u002Flucity","European Tech Map",[220,286,287],{},[177,288,290],{"href":289},"https:\u002F\u002Feuroalternative.eu\u002Flucity","euroalternative.eu",[220,292,293],{},[177,294,296],{"href":295},"https:\u002F\u002Feuropeanpurpose.com\u002Ftool\u002Flucity","European Purpose",{"title":298,"searchDepth":299,"depth":299,"links":300},"",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":167,"description":302},"blog\u002Feuropean-open-source-alternative-to-vercel-heroku-railway","xuRbBPKHwwahxgYR0lALv5Zg-NRzWzcUuGKU51R6AjQ",{"id":311,"title":312,"author":168,"body":313,"date":677,"description":678,"extension":303,"meta":679,"navigation":305,"path":680,"seo":681,"stem":682,"__hash__":683},"blog\u002Fblog\u002Fthe-software-deployment-trilemma.md","The Software Deployment Trilemma",{"type":170,"value":314,"toc":671},[315,326,329,343,346,349,352,359,365,371,376,379,386,389,392,395,398,406,409,418,422,425,462,465,527,530,538,545,553,556,565,569,572,575,584,587,595,598,601,604,607,610,619,623,626,629,637,640,647,656,659,664,667],[173,316,317,323],{},[318,319],"img",{"alt":320,"src":321,"title":322},"Trilemma evaluation overview","\u002Fimg\u002Fblog\u002Ftrilemma-evaluation-overview.jpg","An overview of all categories in respect to the trilemma.",[324,325,322],"em",{},[173,327,328],{},"While building Lucity, I evaluated today's software deployment solutions and realized how the following trilemma applies to all of them: Scalable, Simple, Sovereign — pick two.",[173,330,331,332,337,338,342],{},"Ideally we want a solution that excels in all three aspects, but the trilemma dictates that a compromise in one aspect is inevitable. This is akin to ",[177,333,336],{"href":334,"target":335},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FZooko%27s_triangle","_blank","Zooko's triangle"," or the ",[177,339,341],{"href":340,"target":335},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCAP_theorem","CAP theorem",".",[173,344,345],{},"In this article, I will categorize existing software deployment solutions into three groups: PaaS, self-hosting tools, and Kubernetes. Each group will be evaluated according to the aspects of the trilemma.",[173,347,348],{},"At the end I'll come back to Lucity and show where it sits within this triangle. The ejectable architecture of Lucity means you can move around the triangle instead of being pinned to a fixed position.",[173,350,351],{},"Before we dive into the categories, here are my definitions of the three dimensions we're examining.",[173,353,354,358],{},[355,356,357],"strong",{},"Scalability"," does not only apply to compute resources such as memory and CPU cores, but also geographical distribution and organization size. A truly scalable solution can support a large team working on a globally distributed deployment.",[173,360,361,364],{},[355,362,363],{},"Simplicity"," measures the gradient of the learning curve as well as the extent of ongoing maintenance efforts for operating a production deployment. This includes initial setup, maintenance work, and security updates.",[173,366,367,370],{},[355,368,369],{},"Sovereignty"," measures independence from third parties. This is not to be confused with self-hosting. Self-hostable software can also put you in a position where you are at the mercy of a third-party (think about the Broadcom VMware license debacle from recent years).",[372,373,375],"h2",{"id":374},"_1-the-antichrist-of-sovereignty-platform-as-a-service","1. The Antichrist of Sovereignty: Platform as a Service",[173,377,378],{},"Platform as a Service (PaaS) solutions like Vercel, Heroku and Railway are the gold standard in terms of simplicity, allowing you to deploy a web service within minutes.",[173,380,381,382,195],{},"Over the years these platforms also established a solid quiver of scalability features: horizontal and vertical scaling, multiple geographical regions and CDN integrations (",[177,383,385],{"href":384,"target":335},"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=47581721","but some don't seem to be able to manage their CDN properly",[173,387,388],{},"To no one's surprise, PaaS solutions fall short in terms of sovereignty. If you want to migrate off a PaaS you have to start from scratch. Like totally from scratch. This does not only mean writing Dockerfiles and building your CI\u002FCD pipelines. It also means evaluating dozens of tools for managing deployments, observability, logs, containers, build pipelines, vulnerability scanning, and connectivity.",[173,390,391],{},"But that's just where the real work starts. Once you have defined your new stack, you'll need to train your teams on the technical concepts that were previously abstracted away by the PaaS. This includes things like VM lifecycles, OCI containers, networking, and VPN tunnels.",[173,393,394],{},"Today's PaaS hide the underlying infrastructure layer from developers. This means curious team members will hit a wall when trying to learn how their deployments work under the hood. PaaS solutions like Vercel, Railway or Heroku are essentially gatekeeping your team from acquiring that knowledge.",[173,396,397],{},"These aspects help to demonstrate that the inherent vendor lock-in of PaaS solutions is a very real liability for your business. Depending on your use case, this liability might be acceptable. I believe PaaS solutions are great for short-lived endeavours, such as education projects and experiments.",[173,399,400,401,405],{},"Platforms like Heroku have established a new paradigm of software deployment that still offers unmatched simplicity. Lucity's user experience aims to replicate that as closely as possible. Lucity also integrates ",[177,402,404],{"href":403},"https:\u002F\u002Frailpack.com\u002Fgetting-started","Railpack",", an open-source project by Railway that builds containerized applications directly from source code.",[173,407,408],{},"Lastly, I believe critical software should give you the choice between a managed cloud offering and hosting it yourself. If recent geopolitical developments taught us anything, it's that you should not put business-critical software at the mercy of a third-party without an exit hatch.",[173,410,411,415],{},[318,412],{"alt":413,"src":414},"Trilemma evaluation for PaaS","\u002Fimg\u002Fblog\u002Ftrilemma-evaluation-paas.jpg",[324,416,417],{},"PaaS solutions represent the gold-standard in terms of simplicity but fall short on sovereignty.",[372,419,421],{"id":420},"_2-we-have-paas-at-home-self-hosting-tools","2. \"We have PaaS at home\": Self-Hosting Tools",[173,423,424],{},"Remember the good ol' days where you just used ftp to copy some html and php to your apache web server?",[426,427,431],"pre",{"className":428,"code":429,"language":430,"meta":298,"style":298},"language-bash shiki shiki-themes gruvbox-dark-medium gruvbox-dark-medium gruvbox-dark-medium","ftp yourserver.com\nput index.html\nput contact.php\n","bash",[257,432,433,446,454],{"__ignoreMap":298},[434,435,438,442],"span",{"class":436,"line":437},"line",1,[434,439,441],{"class":440},"sX5TD","ftp",[434,443,445],{"class":444},"sQLXx"," yourserver.com\n",[434,447,448,451],{"class":436,"line":299},[434,449,450],{"class":440},"put",[434,452,453],{"class":444}," index.html\n",[434,455,457,459],{"class":436,"line":456},3,[434,458,450],{"class":440},[434,460,461],{"class":444}," contact.php\n",[173,463,464],{},"Over the years this workflow grew up, but the shape stayed the same. You own a server, manually install your software on it, and hope nothing breaks. For containerized apps this has evolved into SSHing in, pulling your code, building an image, and running it.",[426,466,468],{"className":428,"code":467,"language":430,"meta":298,"style":298},"ssh user@yourserver.com\ngit pull\ndocker build -t myapp .\ndocker run -d --restart=always -p 80:80 myapp\n",[257,469,470,478,486,504],{"__ignoreMap":298},[434,471,472,475],{"class":436,"line":437},[434,473,474],{"class":440},"ssh",[434,476,477],{"class":444}," user@yourserver.com\n",[434,479,480,483],{"class":436,"line":299},[434,481,482],{"class":440},"git",[434,484,485],{"class":444}," pull\n",[434,487,488,491,494,498,501],{"class":436,"line":456},[434,489,490],{"class":440},"docker",[434,492,493],{"class":444}," build",[434,495,497],{"class":496},"s1Tsi"," -t",[434,499,500],{"class":444}," myapp",[434,502,503],{"class":444}," .\n",[434,505,507,509,512,515,518,521,524],{"class":436,"line":506},4,[434,508,490],{"class":440},[434,510,511],{"class":444}," run",[434,513,514],{"class":496}," -d",[434,516,517],{"class":496}," --restart=always",[434,519,520],{"class":496}," -p",[434,522,523],{"class":444}," 80:80",[434,525,526],{"class":444}," myapp\n",[173,528,529],{},"Self-hosting tools like Coolify, Cap Rover or Dokku are the conceptual successor: they automate this workflow behind a UI.",[173,531,532,533,537],{},"Where these tools will start showing their limits is once you want to invite your team and collaborate on projects. Generally these tools are built to be operated by one person and they lack proper team management, SSO and audit features required by a team. Coolify's docs acknowledge that by stating that their teams feature \"",[177,534,536],{"href":535,"target":335},"https:\u002F\u002Fcoolify.io\u002Fdocs\u002Fget-started\u002Fconcepts#teams","isn't fully polished for production use","\".",[173,539,540,541,342],{},"Once you look beyond organizational scaling, you will also notice that these tools fall short when it comes to scaling deployments beyond one server. Some of them support Docker Swarm for multi-server deployments, but I would advise against using that for new projects, since it's ",[177,542,544],{"href":543,"target":335},"https:\u002F\u002Fdocs.docker.com\u002Fretired\u002F#swarmkit","officially retired",[173,546,547,548,552],{},"Another limit you might encounter with these tools is that most of them have an unclear mid- to long-term roadmap. Furthermore, development and maintenance is often dependent on one single developer or a small team with limited experience. Recently, security company Aikido found ",[177,549,551],{"href":550,"target":335},"https:\u002F\u002Fwww.aikido.dev\u002Fblog\u002Fai-pentesting-coolify-cves","several high-severity CVEs in Coolify",". After skimming the CVEs I was surprised by the simplicity of these vulnerabilities, especially for an open-source project that has been around for years and accumulated over 50k GitHub stars.",[173,554,555],{},"It's good to see self-hosting tools like Coolify, Cap Rover or Dokku making sovereign software deployments more accessible. Just be sure you're aware of the limitations of these tools. I think these tools are great for hobby projects and deploying personal websites, but they really start to show their limits once your team grows beyond just you.",[173,557,558,562],{},[318,559],{"alt":560,"src":561},"Trilemma evaluation for Self-hosting Tools","\u002Fimg\u002Fblog\u002Ftrilemma-evaluation-self-hosting-tools.jpg",[324,563,564],{},"Self-hosting tools are a solid sovereign option if you can live with the limited scalability they offer.",[372,566,568],{"id":567},"_3-embrace-the-yaml-kubernetes","3. Embrace the YAML: Kubernetes",[173,570,571],{},"Kubernetes is probably one of the most misunderstood technologies in the modern software engineering era.",[173,573,574],{},"As Kelsey Hightower famously said:",[173,576,577,581],{},[318,578],{"alt":579,"src":580},"Tweet by Kelsey Hightower: \"Kubernetes is a platform for building platforms. It's a better place to start; not the endgame.\"","\u002Fimg\u002Fblog\u002Ftrilemma-kelsey-hightower-quote.jpg",[324,582,583],{},"Tweet by Kelsey Hightower, an iconic developer in the cloud-native ecosystem.",[173,585,586],{},"Kubernetes is a wildly customizable abstraction layer for running containers across many servers. If you've ever manually deployed software across multiple VMs, you probably know how quickly this can get messy. The config will drift and debugging becomes very difficult. Kubernetes solves this problem by providing you with a unified API for managing your containers, storage, and configuration.",[173,588,589,590,594],{},"At its core, Kubernetes is essentially an extensible state machine backed by a distributed key-value store. This extensibility becomes incredibly valuable if you want to build your own virtualization platform or integrate it into your very specific data center setup. As a developer of ",[177,591,593],{"href":592,"target":335},"https:\u002F\u002Fflexplane.io\u002F","flex.plane",", I appreciate that extensibility.",[173,596,597],{},"But here's where the misconception comes in. It's the reason behind all those frustrated LinkedIn and Reddit posts. Kubernetes was never designed to be used directly by application developers.",[173,599,600],{},"Granting a full-stack developer access to a Kubernetes cluster and instructing them to deploy their app is like passing a painter raw cotton, wooden planks, animal hair, and mineral pigments and asking them to paint a portrait. Everything they need to do their job is technically there, but they expected a canvas, brushes and paint. Someone was supposed to assemble the tools before the artist sat down to work. The same applies to Kubernetes.",[173,602,603],{},"So yes, technically teams can deploy their apps directly to Kubernetes. But for 95% of teams Kubernetes is an abstraction layer that sits too low. Kubernetes was designed to orchestrate containers on a massive scale. This is the reason it's the tool of choice for companies like Google, Amazon and Microsoft. But that does not mean it's unusable for smaller deployments.",[173,605,606],{},"Thanks to its open-source nature and the adoption of said companies, a rich ecosystem formed around Kubernetes over the years. This ecosystem includes tools for managing security, observability and compliance. Proven workflows and standards have emerged, and the industry has found consensus on best practices around cloud-native software deployment.",[173,608,609],{},"Exactly this expertise is the reason Lucity builds atop Kubernetes. Lucity makes Kubernetes accessible by automating a proven software deployment workflow on pre-configured infrastructure. This allows you to enjoy the strengths of the Kubernetes ecosystem without worrying about its complexity. And you get the peace of mind that the exit door is there when you need it.",[173,611,612,616],{},[318,613],{"alt":614,"src":615},"Trilemma evaluation for Kubernetes","\u002Fimg\u002Fblog\u002Ftrilemma-evaluation-kubernetes.jpg",[324,617,618],{},"Kubernetes prioritizes scalability and extensibility at the cost of simplicity.",[372,620,622],{"id":621},"how-lucity-bends-the-trilemma","How Lucity Bends the Trilemma",[173,624,625],{},"Just like Vercel, Railway or Heroku, Lucity is a PaaS and shares most characteristics with this group: It's simple to get started and offers automated build & deploy pipelines, observability, scaling and security scanning.",[173,627,628],{},"But this is where Lucity differs from the other solutions: It allows you to export the underlying Helm chart, GitOps repo, and configuration and deploy them on any Kubernetes cluster. This is useful if you ever need customization beyond what's possible within the platform or if you need to use Kubernetes-specific features.",[173,630,631,632,636],{},"Additionally, Lucity is open-source (AGPLv3 license) and allows users to self-host the platform with the full feature set. While all major PaaS are operated by US companies, Lucity is built by ",[177,633,635],{"href":634,"target":335},"https:\u002F\u002Fzeitlos.software\u002F","zeitlos.software","—a Swiss company—and hosted in the EU, governed by strict privacy laws.",[173,638,639],{},"This makes Lucity the only solution that can move around the trilemma triangle instead of being pinned to a fixed position.",[173,641,642,643,342],{},"If that sounds interesting to you, give it a try and ",[177,644,646],{"href":645,"target":335},"https:\u002F\u002Flucity.cloud\u002Fapp\u002Flogin?utm_source=blog&utm_medium=post&utm_campaign=software-deployment-trilemma","sign up for a free trial",[173,648,649,653],{},[318,650],{"alt":651,"src":652},"Trilemma evaluation for Lucity","\u002Fimg\u002Fblog\u002Ftrilemma-evaluation-lucity.jpg",[324,654,655],{},"Lucity is the only trilemma shape that can change. Start with an open-source PaaS and eject to a full Kubernetes setup if you outgrow it.",[657,658],"hr",{},[173,660,661,662,342],{},"Thanks for reading this post on the software deployment trilemma. I'm interested to hear your questions, comments or feedback. Feel free to reach me at ",[177,663,267],{"href":266},[173,665,666],{},"PS: This blog post was written by a real human.",[668,669,670],"style",{},"html pre.shiki code .sX5TD, html code.shiki .sX5TD{--shiki-light:#FABD2F;--shiki-default:#FABD2F;--shiki-dark:#FABD2F}html pre.shiki code .sQLXx, html code.shiki .sQLXx{--shiki-light:#B8BB26;--shiki-default:#B8BB26;--shiki-dark:#B8BB26}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s1Tsi, html code.shiki .s1Tsi{--shiki-light:#D3869B;--shiki-default:#D3869B;--shiki-dark:#D3869B}",{"title":298,"searchDepth":299,"depth":299,"links":672},[673,674,675,676],{"id":374,"depth":299,"text":375},{"id":420,"depth":299,"text":421},{"id":567,"depth":299,"text":568},{"id":621,"depth":299,"text":622},"2026-04-15","There seems to be a trilemma in software deployment solutions that says: Scalable, Simple, Sovereign — pick two.",{},"\u002Fblog\u002Fthe-software-deployment-trilemma",{"title":312,"description":678},"blog\u002Fthe-software-deployment-trilemma","pnQQ9yNswubRoU8deuu84XhluiDI3fKl2MpVya4K99E",1793355964664]