[{"data":1,"prerenderedAt":642},["ShallowReactive",2],{"navigation_docs":3,"section-navigation-legal":130,"-legal-data-processing-agreement":143,"-legal-data-processing-agreement-surround":555,"doc-previews":559},[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,135,139],{"title":132,"path":133,"stem":134},"Data Processing Agreement","\u002Flegal\u002Fdata-processing-agreement","legal\u002Fdata-processing-agreement",{"title":136,"path":137,"stem":138},"Privacy Policy","\u002Flegal\u002Fprivacy-policy","legal\u002Fprivacy-policy",{"title":140,"path":141,"stem":142},"Terms of Use","\u002Flegal\u002Fterms-of-use","legal\u002Fterms-of-use",{"id":144,"title":132,"body":145,"description":549,"extension":550,"meta":551,"navigation":552,"path":133,"seo":553,"stem":134,"__hash__":554},"legal\u002Flegal\u002Fdata-processing-agreement.md",{"type":146,"value":147,"toc":535},"minimark",[148,160,167,170,173,176,179,184,215,219,289,292,296,299,361,365,368,437,440,444,447,451,457,461,464,468,471,475,482,484,488,491],[149,150,151,155,156,159],"p",{},[152,153,154],"strong",{},"Effective date:"," July 24, 2026\n",[152,157,158],{},"Last updated:"," October 1, 2026",[149,161,162,163,166],{},"This Data Processing Agreement (\"DPA\") forms part of the ",[164,165,140],"a",{"href":141}," between you (\"Customer\", \"Controller\") and the operator of Lucity (\"Processor\", \"we\", \"us\"):",[149,168,169],{},"zeitlos.software Inh. Christian Blättler\nCHE‑439.475.468\nMattenhofstrasse 5, 3007 Bern, Switzerland",[149,171,172],{},"It governs the processing of personal data that we carry out on your behalf when you use lucity.cloud to build, deploy, and run your applications. It applies where you are subject to the EU General Data Protection Regulation (GDPR), the Swiss Federal Act on Data Protection (FADP\u002FnDSG), or both.",[149,174,175],{},"Where you act as a processor for your own customers, references to \"Controller\" also cover your role as their processor, and we act as your sub-processor.",[177,178],"hr",{},[180,181,183],"h2",{"id":182},"_1-roles-and-scope","1. Roles and Scope",[185,186,187,199,202,205],"ul",{},[188,189,190,191,194,195,198],"li",{},"You are the ",[152,192,193],{},"controller"," of the personal data your applications process (for example, data about your end users). We are the ",[152,196,197],{},"processor",", acting only on your documented instructions.",[188,200,201],{},"Your use of the platform, including the configuration of your workloads, environment variables, and services, constitutes your documented instructions. Additional instructions must be agreed in writing.",[188,203,204],{},"We process personal data only to provide the service described in the Terms of Use and do not process it for our own purposes.",[188,206,207,208,211,212,214],{},"We handle your ",[152,209,210],{},"account and billing data"," as a controller in our own right; that processing is described in the ",[164,213,136],{"href":137}," and is outside the scope of this DPA.",[180,216,218],{"id":217},"_2-subject-matter-of-processing","2. Subject Matter of Processing",[220,221,222,235],"table",{},[223,224,225],"thead",{},[226,227,228,232],"tr",{},[229,230,231],"th",{},"Item",[229,233,234],{},"Description",[236,237,238,249,259,269,279],"tbody",{},[226,239,240,246],{},[241,242,243],"td",{},[152,244,245],{},"Subject matter",[241,247,248],{},"Hosting and running the Customer's applications and their data on the platform",[226,250,251,256],{},[241,252,253],{},[152,254,255],{},"Duration",[241,257,258],{},"For the term of the Customer's use of the service",[226,260,261,266],{},[241,262,263],{},[152,264,265],{},"Nature and purpose",[241,267,268],{},"Building, deploying, storing, backing up, and executing the Customer's workloads, databases, key-value stores, and object storage",[226,270,271,276],{},[241,272,273],{},[152,274,275],{},"Types of personal data",[241,277,278],{},"Determined by the Customer. Any personal data the Customer's applications store or process on the platform",[226,280,281,286],{},[241,282,283],{},[152,284,285],{},"Categories of data subjects",[241,287,288],{},"Determined by the Customer. Typically the Customer's own users and contacts",[149,290,291],{},"We have no control over, and do not inspect, the categories of personal data or data subjects the Customer chooses to process through their workloads.",[180,293,295],{"id":294},"_3-our-obligations","3. Our Obligations",[149,297,298],{},"We will:",[185,300,301,307,313,319,325,331,337,343,349,355],{},[188,302,303,306],{},[152,304,305],{},"Process only on instructions."," Process personal data solely on your documented instructions, including regarding international transfers, unless required otherwise by applicable law, in which case we will inform you unless the law prohibits it.",[188,308,309,312],{},[152,310,311],{},"Unlawful instructions."," Inform you immediately if, in our opinion, an instruction infringes the GDPR, the FADP, or other applicable data protection law.",[188,314,315,318],{},[152,316,317],{},"Confidentiality."," Ensure that personnel authorized to process the data are bound by confidentiality.",[188,320,321,324],{},[152,322,323],{},"Security."," Implement appropriate technical and organizational measures as described in Annex 1.",[188,326,327,330],{},[152,328,329],{},"Sub-processors."," Use sub-processors only under the conditions in Section 4.",[188,332,333,336],{},[152,334,335],{},"Assist with data-subject rights."," Taking into account the nature of the processing, assist you by appropriate measures in responding to requests from data subjects exercising their rights.",[188,338,339,342],{},[152,340,341],{},"Assist with compliance."," Assist you in ensuring compliance with your security, breach-notification, and data-protection-impact-assessment obligations, taking into account the information available to us.",[188,344,345,348],{},[152,346,347],{},"Breach notification."," Notify you without undue delay after becoming aware of a personal data breach affecting your data, with the information reasonably available to us.",[188,350,351,354],{},[152,352,353],{},"Deletion or return."," On termination, delete or return the personal data as described in Section 5.",[188,356,357,360],{},[152,358,359],{},"Audits."," Make available the information necessary to demonstrate compliance with this DPA and allow for and contribute to audits, including inspections, conducted by you or an auditor you mandate, subject to reasonable notice, confidentiality, and no undue disruption to our operations.",[180,362,364],{"id":363},"_4-sub-processors","4. Sub-processors",[149,366,367],{},"You provide general authorization for us to engage the sub-processors listed below to process personal data on your behalf. We impose data-protection obligations on each sub-processor that are no less protective than those in this DPA, and we remain responsible for their performance.",[220,369,370,383],{},[223,371,372],{},[226,373,374,377,380],{},[229,375,376],{},"Sub-processor",[229,378,379],{},"Purpose",[229,381,382],{},"Location",[236,384,385,398,411,424],{},[226,386,387,392,395],{},[241,388,389],{},[152,390,391],{},"Hetzner",[241,393,394],{},"Core infrastructure hosting (compute, workloads, databases)",[241,396,397],{},"Germany (EU)",[226,399,400,405,408],{},[241,401,402],{},[152,403,404],{},"OVHcloud",[241,406,407],{},"Object storage hosting and database backups",[241,409,410],{},"France (EU)",[226,412,413,418,421],{},[241,414,415],{},[152,416,417],{},"Bunny",[241,419,420],{},"Edge network in front of your applications (TLS termination and proxying of all HTTP and WebSocket traffic) and content delivery for public buckets",[241,422,423],{},"EU company; global edge network",[226,425,426,431,434],{},[241,427,428],{},[152,429,430],{},"Anthropic",[241,432,433],{},"Internal operations and incident investigation: AI-assisted analysis of platform metadata and logs. Anthropic does not train models on this data",[241,435,436],{},"United States, under Standard Contractual Clauses",[149,438,439],{},"We will give you at least 30 days' notice, by email or platform notification, before adding or replacing a sub-processor. If you reasonably object on data-protection grounds, we will work with you in good faith to address the concern, and if we cannot, you may terminate the affected service.",[180,441,443],{"id":442},"_5-deletion-and-return","5. Deletion and Return",[149,445,446],{},"On termination of the service, or on your request, we will delete the personal data we process on your behalf within 30 days, unless applicable law requires us to retain it. When you delete a project or account, the associated data is removed within 30 days. Because the platform is ejectable, you can export your configuration and data before termination.",[180,448,450],{"id":449},"_6-international-transfers","6. International Transfers",[149,452,453,454,456],{},"Personal data processed on your behalf is hosted in the European Union (see the ",[164,455,136],{"href":137},"). Where a sub-processor transfers personal data outside the EU or Switzerland, that transfer is covered by an appropriate safeguard, such as the EU Standard Contractual Clauses together with, for data subject to the FADP, the recognition of those clauses by the Swiss Federal Data Protection and Information Commissioner.",[180,458,460],{"id":459},"_7-swiss-fadp","7. Swiss FADP",[149,462,463],{},"Where the FADP applies, references to the GDPR are read as references to the equivalent provisions of the FADP, \"personal data\" includes data relating to legal entities to the extent protected by the FADP, and the supervisory authority is the Federal Data Protection and Information Commissioner (FDPIC).",[180,465,467],{"id":466},"_8-liability-and-precedence","8. Liability and Precedence",[149,469,470],{},"The liability limitations in the Terms of Use apply to this DPA. If there is a conflict between this DPA and the Terms of Use regarding the processing of personal data, this DPA prevails.",[180,472,474],{"id":473},"_9-contact","9. Contact",[149,476,477,478],{},"For data-protection matters and to exercise controller rights under this DPA: ",[164,479,481],{"href":480},"mailto:privacy@lucity.cloud","privacy@lucity.cloud",[177,483],{},[180,485,487],{"id":486},"annex-1-technical-and-organizational-measures","Annex 1: Technical and Organizational Measures",[149,489,490],{},"We maintain measures appropriate to the risk, including:",[185,492,493,499,505,511,517,523,529],{},[188,494,495,498],{},[152,496,497],{},"Encryption in transit"," using TLS for connections to the platform and WireGuard for traffic between cluster nodes.",[188,500,501,504],{},[152,502,503],{},"Tenant isolation"," through namespace-level separation of workspaces in Kubernetes, with network policies restricting cross-tenant access.",[188,506,507,510],{},[152,508,509],{},"Access control"," on a least-privilege, role-based basis, with authentication through our self-hosted identity provider.",[188,512,513,516],{},[152,514,515],{},"Secrets handling"," through Kubernetes secrets, kept separate from application code and logs.",[188,518,519,522],{},[152,520,521],{},"Resilience"," through backups of managed databases, stored with a different provider than primary hosting, and replication for databases that run more than one instance.",[188,524,525,528],{},[152,526,527],{},"Monitoring and logging"," of platform activity to detect and respond to security events.",[188,530,531,534],{},[152,532,533],{},"Self-hosted core services"," (identity, container registry, deployment tooling) within our own cluster, limiting exposure to external processors.",{"title":536,"searchDepth":537,"depth":537,"links":538},"",2,[539,540,541,542,543,544,545,546,547,548],{"id":182,"depth":537,"text":183},{"id":217,"depth":537,"text":218},{"id":294,"depth":537,"text":295},{"id":363,"depth":537,"text":364},{"id":442,"depth":537,"text":443},{"id":449,"depth":537,"text":450},{"id":459,"depth":537,"text":460},{"id":466,"depth":537,"text":467},{"id":473,"depth":537,"text":474},{"id":486,"depth":537,"text":487},"How Lucity processes personal data on your behalf.","md",{},true,{"title":132,"description":549},"Ifh8B9rqLg5ZCZd6XaZHpKtVRmzvtszhzX7NxhPI1WY",[556,557],null,{"title":136,"path":137,"stem":138,"description":558,"children":-1},"How Lucity handles your data.",[560,563,565,568,571,574,577,580,583,586,589,592,595,597,599,601,603,605,607,609,611,613,615,617,619,621,623,625,627,629,631,633,635,638,639,640],{"path":6,"title":561,"description":562},"Deploy your first service","Deploy an app to Lucity, put it on a public domain, and connect a PostgreSQL database and an object storage bucket in about fifteen minutes.",{"path":564,"title":9,"description":556},"\u002Fdocs\u002Fguides\u002F.navigation",{"path":16,"title":566,"description":567},"Deploy a Next.js app","Deploy a Next.js app on Lucity, with a database, environment variables that behave, and no Dockerfile.",{"path":20,"title":569,"description":570},"Deploy a Nuxt app","Deploy a Nuxt app on Lucity. Nitro output, runtime config, and a database, with no preset to pick.",{"path":24,"title":572,"description":573},"Deploy a SvelteKit app","Deploy a SvelteKit app on Lucity. One adapter change stands between a fresh project and a running service.",{"path":28,"title":575,"description":576},"Deploy an Astro site","Deploy an Astro site on Lucity, static by default and server rendered when you add an adapter.",{"path":32,"title":578,"description":579},"Deploy an Express API","Deploy an Express API on Lucity. Three requirements, none of them platform-specific.",{"path":36,"title":581,"description":582},"Deploy a FastAPI service","Deploy a FastAPI service on Lucity. Detection is picky about layout, and the fix is one setting.",{"path":40,"title":584,"description":585},"Deploy a Django project","Deploy a Django project on Lucity, with migrations that run themselves and static files that do not.",{"path":44,"title":587,"description":588},"Deploy a Laravel application","Deploy a Laravel application on Lucity, with migrations, caches and a queue worker, and no server to configure.",{"path":48,"title":590,"description":591},"Deploy a Go service","Deploy a Go service on Lucity. Compiled in the build, shipped as a binary, nothing else in the image.",{"path":10,"title":593,"description":594},"Deploy your framework","Deploy guides for the frameworks people actually ship: Next.js, Nuxt, SvelteKit, Astro, Express, FastAPI, Django, Laravel, and Go.",{"path":52,"title":51,"description":596},"Services are the deployable units of a project: what they are, how they are configured, and how they scale.",{"path":56,"title":55,"description":598},"How a deployment goes live on Lucity, and the ways to trigger one.",{"path":60,"title":59,"description":600},"How Lucity turns your source code into a container image.",{"path":64,"title":63,"description":602},"Configuration for your services: service variables, shared variables, and dynamic variables.",{"path":68,"title":67,"description":604},"Put a service on the internet. Use a platform hostname for quick tests, or a domain you own.",{"path":72,"title":71,"description":606},"Managed PostgreSQL databases, replicated and backed up, connected to your services without copying credentials.",{"path":76,"title":75,"description":608},"S3-compatible buckets for uploads, exports and anything else your service needs to keep.",{"path":80,"title":79,"description":610},"Persistent disks for services that need to keep state on the filesystem.",{"path":84,"title":83,"description":612},"A Redis®-compatible key-value store for caching, sessions and queues.",{"path":88,"title":87,"description":614},"Workspaces represent your organization in Lucity, with their own members, isolation and billing.",{"path":92,"title":91,"description":616},"Projects group services, databases and the environments they run in.",{"path":96,"title":95,"description":618},"Development, staging, production: isolated copies of the same application.",{"path":100,"title":99,"description":620},"Download a project as a Helm chart and run it on a Kubernetes cluster of your own.",{"path":104,"title":103,"description":622},"The GraphQL API behind the dashboard, with an interactive playground.",{"path":108,"title":107,"description":624},"Deploy and manage your services from a terminal or a CI pipeline.",{"path":112,"title":111,"description":626},"Deploy and manage your services from Claude Code, Codex, Cursor or any other MCP client.",{"path":116,"title":115,"description":628},"CPU and memory for every service, activity for every database, and disk usage for every volume.",{"path":120,"title":119,"description":630},"What your services print while they run, and the output of every deployment step.",{"path":124,"title":123,"description":632},"Plans, resource usage, the free trial, and what happens when a payment fails.",{"path":128,"title":127,"description":634},"Run the whole platform on a Kubernetes cluster you own, using the same two Helm charts we run ourselves.",{"path":636,"title":637,"description":556},"\u002Flegal\u002F.navigation","Legal",{"path":133,"title":132,"description":549},{"path":137,"title":136,"description":558},{"path":141,"title":140,"description":641},"Terms governing your use of Lucity.",1793355965800]