[{"data":1,"prerenderedAt":384},["ShallowReactive",2],{"navigation_docs":3,"section-navigation-docs":130,"-comparisons-vs-heroku":164,"-comparisons-vs-heroku-siblings":362},[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},{"id":165,"title":166,"actions":167,"body":168,"description":353,"extension":354,"meta":355,"navigation":356,"path":358,"seo":359,"stem":360,"__hash__":361},"solutions\u002F2.comparisons\u002F4.vs-heroku.md","Lucity vs Heroku: Open-Source Heroku Alternative",null,{"type":169,"value":170,"toc":338},"minimark",[171,180,185,188,223,227,232,235,238,241,245,248,251,254,258,265,272,275,279,282,285,289,292,299,303,317,321],[172,173,174,175,179],"p",{},"Heroku invented the modern PaaS. ",[176,177,178],"code",{},"git push heroku main"," changed how we deploy software. But that was 2009. A lot has happened since then.",[181,182,184],"h2",{"id":183},"where-heroku-excels","Where Heroku Excels",[172,186,187],{},"Credit where it's due. Heroku earned its place in developer history:",[189,190,191,199,205,211,217],"ul",{},[192,193,194,198],"li",{},[195,196,197],"strong",{},"Pioneered the PaaS model",": Heroku showed the world that developers shouldn't need to manage servers to deploy applications. Every PaaS since, including Lucity, owes something to that vision.",[192,200,201,204],{},[195,202,203],{},"Massive add-on ecosystem",": databases, monitoring, logging, search, email. Heroku's marketplace has add-ons for nearly everything. Decades of ecosystem growth.",[192,206,207,210],{},[195,208,209],{},"Enterprise features",": Salesforce integration, private spaces, Shield for compliance. If you're in the Salesforce ecosystem, Heroku has deep integrations nobody else offers.",[192,212,213,216],{},[195,214,215],{},"Battle-tested at scale",": Heroku has run millions of applications. The platform has seen every edge case, every failure mode, every scaling challenge.",[192,218,219,222],{},[195,220,221],{},"Familiar to millions",": so many developers learned deployment through Heroku. That institutional knowledge has enormous value.",[181,224,226],{"id":225},"where-lucity-differs","Where Lucity Differs",[228,229,231],"h3",{"id":230},"modern-architecture","Modern Architecture",[172,233,234],{},"Heroku runs on an aging infrastructure. Dynos, buildpacks, a proprietary runtime, all architecture decisions made in a different era of cloud computing. Heroku Postgres is solid but aging. The routing layer has known limitations. Scheduling and background workers require bolt-on add-ons.",[172,236,237],{},"Lucity is built on Kubernetes, Helm, CloudNativePG, and Gateway API: the tools the cloud-native ecosystem has converged on over the past decade. These aren't trendy choices; they're industry standards with massive communities, extensive documentation, and long-term support.",[172,239,240],{},"The ecosystem moved on. Your platform should too.",[228,242,244],{"id":243},"pricing","Pricing",[172,246,247],{},"Heroku's pricing has become increasingly enterprise-focused since the Salesforce acquisition. The free tier is gone. Basic dynos start at $7\u002Fmonth with limited features. Production-grade setups with proper databases, logging, and monitoring add up quickly. And those add-ons? Each one has its own pricing tier.",[172,249,250],{},"Lucity is open source. Self-host on your own cluster and pay only for the compute you actually use. No per-dyno pricing. No add-on surcharges. No \"you need Professional dynos to get preboot\" upsells.",[172,252,253],{},"If you'd rather not manage infrastructure, Lucity Cloud offers managed hosting with transparent pricing. But the self-hosted option is always there. A sentence Heroku literally cannot say.",[228,255,257],{"id":256},"ejectability","Ejectability",[172,259,260,261,264],{},"Heroku gives you buildpacks and a ",[176,262,263],{},"Procfile",". If you leave, you take your source code and start rebuilding everything from scratch: deployment pipelines, environment configurations, database provisioning, service discovery, monitoring setup.",[172,266,267,268,271],{},"Lucity gives you standard Helm charts and values. ",[176,269,270],{},"lucity eject"," produces everything you need to run independently: the chart, the values for each environment, your databases and buckets as standard operator resources, and a setup guide. No Lucity dependencies, no proprietary formats, no migration project.",[172,273,274],{},"Leaving Heroku is a quarter-long project. Leaving Lucity is a command.",[228,276,278],{"id":277},"open-source","Open Source",[172,280,281],{},"Heroku is proprietary, owned by Salesforce. You can't see the code, can't self-host, can't modify it. When Salesforce decides to change pricing, sunset features, or shift strategic direction (and they have, repeatedly), your options are to accept it or migrate.",[172,283,284],{},"Lucity is AGPL-3.0. The code is public, auditable, and forkable. Run it yourself, contribute improvements, or just read the source when something behaves unexpectedly. Open source means you're a participant, not just a customer.",[228,286,288],{"id":287},"declarative-releases","Declarative Releases",[172,290,291],{},"Heroku deploys from Git pushes, which was revolutionary in 2009. But the result is a slug on Heroku's runtime, not a declarative description you own. There's no portable desired state and no history you can read outside Heroku's tooling.",[172,293,294,295,298],{},"Lucity deploys every project as a standard Helm release per environment, with the state stored in your cluster. Every change is a new release revision. Promote between environments by copying the image digest, with no rebuild. Roll back by re-applying a previous revision. See what was deployed and when with ",[176,296,297],{},"helm history",". It's deployment management that works with tools your team already knows.",[181,300,302],{"id":301},"who-should-choose-heroku","Who Should Choose Heroku",[189,304,305,308,311,314],{},[192,306,307],{},"Enterprises already deep in the Salesforce ecosystem",[192,309,310],{},"Teams that need Heroku's mature add-on marketplace for specific integrations",[192,312,313],{},"Developers who value familiarity and don't want to learn new tools",[192,315,316],{},"Projects where Heroku Shield's compliance features (HIPAA, PCI) are specifically needed",[181,318,320],{"id":319},"who-should-choose-lucity","Who Should Choose Lucity",[189,322,323,326,329,332,335],{},[192,324,325],{},"Teams that want a modern PaaS without the Salesforce tax",[192,327,328],{},"Teams that care about open source, self-hosting, or data residency",[192,330,331],{},"Teams that want ejectability: the ability to leave without a migration project",[192,333,334],{},"Developers who want to learn Kubernetes organically, not as a crisis response",[192,336,337],{},"Cost-conscious teams that want to self-host and pay only for compute",{"title":339,"searchDepth":340,"depth":340,"links":341},"",2,[342,343,351,352],{"id":183,"depth":340,"text":184},{"id":225,"depth":340,"text":226,"children":344},[345,347,348,349,350],{"id":230,"depth":346,"text":231},3,{"id":243,"depth":346,"text":244},{"id":256,"depth":346,"text":257},{"id":277,"depth":346,"text":278},{"id":287,"depth":346,"text":288},{"id":301,"depth":340,"text":302},{"id":319,"depth":340,"text":320},"Compare Lucity and Heroku. Modern Kubernetes-native PaaS with ejectability, open-source, and no Salesforce tax.","md",{},{"title":357},"vs Heroku","\u002Fcomparisons\u002Fvs-heroku",{"title":166,"description":353},"2.comparisons\u002F4.vs-heroku","IA3FeD8uDRxeCtnr9BYFio_Q3VrUBrLZHpAj6huRT_w",[363,367,371,372,376,380],{"path":364,"title":365,"description":366},"\u002Fcomparisons\u002Fvs-railway","Lucity vs Railway: Open-Source Railway Alternative","Compare Lucity and Railway. Same deploy experience, but open-source, self-hostable, and ejectable to standard Kubernetes.",{"path":368,"title":369,"description":370},"\u002Fcomparisons\u002Fvs-render","Lucity vs Render: Open-Source Render Alternative","Compare Lucity and Render. Both simple to use, but Lucity is open-source, self-hostable, and ejectable to standard Kubernetes.",{"path":358,"title":166,"description":353},{"path":373,"title":374,"description":375},"\u002Fcomparisons\u002Fvs-vercel","Lucity vs Vercel: Full-Stack Vercel Alternative","Compare Lucity and Vercel. Vercel excels at frontend, Lucity handles the full stack with databases, workers, and ejectability.",{"path":377,"title":378,"description":379},"\u002Fcomparisons\u002Fvs-fly-io","Lucity vs Fly.io: Open-Source Fly.io Alternative","Compare Lucity and Fly.io. Fly.io runs apps at the edge on custom hardware. Lucity is open-source, self-hostable, and ejectable to standard Kubernetes.",{"path":381,"title":382,"description":383},"\u002Fcomparisons\u002Fvs-coolify","Lucity vs Coolify: Open-Source PaaS Comparison","Compare Lucity and Coolify, two open-source PaaS platforms with fundamentally different architectures. Docker Compose simplicity vs Kubernetes ejectability.",1793355964534]