{"protocol":"clank-docs/1","frameworkVersion":"0.7.0","canonicalOrigin":"https://docs.clank.run","agentEndpoints":{"compact":"https://docs.clank.run/llms.txt","full":"https://docs.clank.run/llms-full.txt","rawPattern":"https://docs.clank.run/raw/{slug}.md","documentPattern":"https://docs.clank.run/api/docs/{slug}.json"},"groups":[{"id":"start","title":"Start with npm","description":"Install the package, create an app, choose its shape, and ship the first working version.","slugs":["getting-started","application-recipes","ai-first","public-beta"]},{"id":"framework","title":"Framework","description":"The reactive runtime, rendering model, routing, forms, UI behavior, and public APIs.","slugs":["architecture","reactivity","rendering","routing","forms","ui","tailwind","performance","api-reference"]},{"id":"full-stack","title":"Full stack","description":"Server rendering, live SQLite data, authentication, migrations, services, and observability.","slugs":["full-stack","database","migrations","auth","authentication","server","services","observability","data-plane"]},{"id":"agents","title":"Agents and generation","description":"Deterministic blueprints and contracts that make applications legible to coding agents.","slugs":["blueprints"]},{"id":"deploy","title":"Deploy and operate","description":"The CLI, control plane, releases, custom domains, organizations, and production hosting.","slugs":["cli","deployment-platform","platform-dashboard","organizations","distributed-deployment","railway","self-hosting","releases"]},{"id":"security","title":"Security and resilience","description":"Threat boundaries, verification evidence, failure testing, recovery, and platform hardening.","slugs":["security","platform-security","threat-model","security-asvs","code-audit","chaos-testing","conformance","recovery"]},{"id":"project","title":"Project","description":"Maintenance, compatibility, releases, contribution rules, and the open-source project record.","slugs":["maintenance","renaming-from-proact","overview","changelog","contributing","security-policy","code-of-conduct"]}],"docs":[{"slug":"getting-started","source":"docs/getting-started.md","groupId":"start","groupTitle":"Start with npm","title":"Getting started with the npm package","description":"Install one npm package, create an authenticated full stack application, and run it locally. You do not need to clone the Clank repository or assemble a framework toolchain.","headings":["Requirements","1. Install Clank","2. Create an application","3. Run it","Your application files","Everyday commands","Make the first change","Add data safely","Use Tailwind","Build with an agent","Deploy","Package imports","Next steps"],"words":848,"readingMinutes":4,"url":"https://docs.clank.run/docs/getting-started","raw":"https://docs.clank.run/raw/getting-started.md","json":"https://docs.clank.run/api/docs/getting-started.json"},{"slug":"application-recipes","source":"docs/application-recipes.md","groupId":"start","groupTitle":"Start with npm","title":"Application recipes for humans and agents","description":"This guide is the shortest path from an application request to a readable Clank implementation.","headings":["Choose the shape first","Contract first build order","Forms","Reusable interaction logic","Agent semantics","CRUD and live collaboration","Commerce","Dashboard","Booking or wizard","Readability checklist","Verification checklist"],"words":747,"readingMinutes":4,"url":"https://docs.clank.run/docs/application-recipes","raw":"https://docs.clank.run/raw/application-recipes.md","json":"https://docs.clank.run/api/docs/application-recipes.json"},{"slug":"ai-first","source":"docs/ai-first.md","groupId":"start","groupTitle":"Start with npm","title":"AI-first contracts","description":"Clank separates model providers from application contracts. It does not dictate which model or SDK to use. Instead, it makes capabilities discoverable, inputs deterministic, side effects explicit, and the rendered interface machine readable","headings":["Runtime schemas","Actions","Discovery and invocation bridge","Action UI state","Semantic UI","Inspect and operate","Agent described views","Security model"],"words":622,"readingMinutes":3,"url":"https://docs.clank.run/docs/ai-first","raw":"https://docs.clank.run/raw/ai-first.md","json":"https://docs.clank.run/api/docs/ai-first.json"},{"slug":"public-beta","source":"docs/public-beta.md","groupId":"start","groupTitle":"Start with npm","title":"Public beta readiness","description":"Clank's public beta is suitable for controlled self hosted evaluation once every gate below passes. “Beta” means the contracts are usable and tested, while operators should expect upgrade work and should not place irreplaceable or highly re","headings":["Go/no go gate","Known beta limitations","Suggested beta operating targets","Rollout"],"words":698,"readingMinutes":4,"url":"https://docs.clank.run/docs/public-beta","raw":"https://docs.clank.run/raw/public-beta.md","json":"https://docs.clank.run/api/docs/public-beta.json"},{"slug":"architecture","source":"docs/architecture.md","groupId":"framework","groupTitle":"Framework","title":"Architecture","description":"The reactive kernel imports nothing. DOM depends only on the kernel. Routing depends on the kernel and DOM types. AI uses the kernel for action UI state and DOM types for described views. Forms depend on the kernel and schema contracts. Hea","headings":["Module boundaries","Reactive graph","DOM strategy","Async consistency","Agent protocol","Build strategy","Full stack data flow","Deployment data flow"],"words":956,"readingMinutes":5,"url":"https://docs.clank.run/docs/architecture","raw":"https://docs.clank.run/raw/architecture.md","json":"https://docs.clank.run/api/docs/architecture.json"},{"slug":"reactivity","source":"docs/reactivity.md","groupId":"framework","groupTitle":"Framework","title":"Reactivity","description":"Clank tracks reads while a computed value or effect is running. A signal write synchronously invalidates computed values and reruns only the effects that read the changed source. Effects are deduplicated inside a batch.","headings":["Signals","Computed values","Effects and cleanup","Batches and transactions","Untracked reads","Ownership","Stores","Async resources","Streams"],"words":298,"readingMinutes":2,"url":"https://docs.clank.run/docs/reactivity","raw":"https://docs.clank.run/raw/reactivity.md","json":"https://docs.clank.run/api/docs/reactivity.json"},{"slug":"rendering","source":"docs/rendering.md","groupId":"framework","groupTitle":"Framework","title":"Rendering and components","description":"Clank compiles TSX into direct DOM construction and fine grained reactive bindings. There is no virtual DOM and no whole component rerender loop. A component executes once to establish structure; expressions update independently afterward.","headings":["TSX components","Automatic reactivity","Classes and styles","Events","Forms","Refs and directives","Lifecycle and context","Conditional control flow","Keyed lists","Lazy components and promises","Raw HTML and hydration","Compiler escape hatches"],"words":796,"readingMinutes":4,"url":"https://docs.clank.run/docs/rendering","raw":"https://docs.clank.run/raw/rendering.md","json":"https://docs.clank.run/api/docs/rendering.json"},{"slug":"routing","source":"docs/routing.md","groupId":"framework","groupTitle":"Framework","title":"Routing","description":"tsx const router = createRouter({ routes: [ { path: \"/\", component: Home, title: \"Home\" }, { path: \"/users/:id\", component: User, title: match = User ${match.params.id} , load: async ({ params, signal }) = { const response = await fetch( /a","headings":["Define and start a router","Patterns","Component props","Links and navigation","Loaders and cancellation","Guards","Base paths and non browser resolution"],"words":200,"readingMinutes":1,"url":"https://docs.clank.run/docs/routing","raw":"https://docs.clank.run/raw/routing.md","json":"https://docs.clank.run/api/docs/routing.json"},{"slug":"forms","source":"docs/forms.md","groupId":"framework","groupTitle":"Framework","title":"Forms","description":"Clank forms are headless: the framework owns state, validation, accessible control wiring, submission, and cancellation while the application owns its HTML and Tailwind classes.","headings":["Create a form","Render native controls","State","Validation","Submission and server errors","Form manifests for agents","Multi step and nested forms","Security notes"],"words":518,"readingMinutes":3,"url":"https://docs.clank.run/docs/forms","raw":"https://docs.clank.run/raw/forms.md","json":"https://docs.clank.run/api/docs/forms.json"},{"slug":"ui","source":"docs/ui.md","groupId":"framework","groupTitle":"Framework","title":"Headless UI behavior","description":"Clank provides small state machines for behavior that is deceptively difficult to implement correctly. They return ordinary HTML props and directives rather than styled components, so Tailwind and application markup remain fully under your ","headings":["Disclosure","Modal dialog","Tabs","Pagination","Directives","Accessibility rules"],"words":365,"readingMinutes":2,"url":"https://docs.clank.run/docs/ui","raw":"https://docs.clank.run/raw/ui.md","json":"https://docs.clank.run/api/docs/ui.json"},{"slug":"tailwind","source":"docs/tailwind.md","groupId":"framework","groupTitle":"Framework","title":"Tailwind CSS","description":"Clank preserves class strings exactly and keeps styling outside its reactive kernel. Tailwind scans ordinary TSX such as:","headings":["Zero install development","Production without project packages","Static class discovery","Why there is no Clank plugin"],"words":247,"readingMinutes":2,"url":"https://docs.clank.run/docs/tailwind","raw":"https://docs.clank.run/raw/tailwind.md","json":"https://docs.clank.run/api/docs/tailwind.json"},{"slug":"performance","source":"docs/performance.md","groupId":"framework","groupTitle":"Framework","title":"Performance model","description":"Clank uses compilation and fine grained subscriptions instead of rerendering component trees. A component function runs once when mounted. Its TSX expressions become independent bindings that subscribe only to the signals they actually read","headings":["Update guarantees","Compiler created granularity","Keyed lists","Batching","Measuring identity"],"words":380,"readingMinutes":2,"url":"https://docs.clank.run/docs/performance","raw":"https://docs.clank.run/raw/performance.md","json":"https://docs.clank.run/api/docs/performance.json"},{"slug":"api-reference","source":"docs/api-reference.md","groupId":"framework","groupTitle":"Framework","title":"API reference","description":"This is the compact index of every public export. The focused guides contain behavioral details and examples.","headings":["Core","DOM","Forms","Headless UI","Compiler","Deployment artifacts","Migrations","Deployment platform","Managed data plane","AI","Router","Server","Authentication","Full stack backend","SSR","Node"],"words":1653,"readingMinutes":8,"url":"https://docs.clank.run/docs/api-reference","raw":"https://docs.clank.run/raw/api-reference.md","json":"https://docs.clank.run/api/docs/api-reference.json"},{"slug":"full-stack","source":"docs/full-stack.md","groupId":"full-stack","groupTitle":"Full stack","title":"Full-stack SSR, SQLite, and live sync","description":"Clank's full stack layer follows one rule: write the runtime contract once and let TypeScript infer the rest. There is no generated client, ORM model, RPC interface, or duplicate DTO type to maintain.","headings":["Define data once","Define server functions","Query documents","Open the backend","Mount RPC and live streams","Use the inferred browser client","SSR and cache seeding","Run on Node","Tailwind","Complete example"],"words":1256,"readingMinutes":6,"url":"https://docs.clank.run/docs/full-stack","raw":"https://docs.clank.run/raw/full-stack.md","json":"https://docs.clank.run/api/docs/full-stack.json"},{"slug":"database","source":"docs/database.md","groupId":"full-stack","groupTitle":"Full stack","title":"Database revisions and correctness","description":"Clank uses Node's built in SQLite as a transactional document store. Application fields live as validated JSON, while identity, ownership, creation time, and document version live in dedicated columns.","headings":["Physical layout","Commit sequence","Document versions and lost update protection","Consistent reads","Dependency and ownership invalidation","Multiple server processes","Auth revisions","Durability and file safety","Migrations, backup, and restore","Important options","Guarantees and boundaries"],"words":1148,"readingMinutes":6,"url":"https://docs.clank.run/docs/database","raw":"https://docs.clank.run/raw/database.md","json":"https://docs.clank.run/api/docs/database.json"},{"slug":"migrations","source":"docs/migrations.md","groupId":"full-stack","groupTitle":"Full stack","title":"SQLite migrations","description":"Framework document tables and indexes can still be created automatically. Deployment migrations cover relational support tables, columns, constraints, indexes, and SQL data changes.","headings":["Files and ledger","Transactions and safety","Backup and failure","Expand and contract","Data restore","Local checks"],"words":365,"readingMinutes":2,"url":"https://docs.clank.run/docs/migrations","raw":"https://docs.clank.run/raw/migrations.md","json":"https://docs.clank.run/api/docs/migrations.json"},{"slug":"auth","source":"docs/auth.md","groupId":"full-stack","groupTitle":"Full stack","title":"Authentication","description":"Clank auth is built into the same zero dependency SQLite, Fetch, SSR, and live query layer as the rest of the framework. An authenticated application needs one auth definition, owned tables for private data, and the auth first browser clien","headings":["Minimal setup","Browser client","Auth client API","SSR","Profiles and roles","Configuration","HTTP endpoints","Security boundaries and current scope"],"words":741,"readingMinutes":4,"url":"https://docs.clank.run/docs/auth","raw":"https://docs.clank.run/raw/auth.md","json":"https://docs.clank.run/api/docs/auth.json"},{"slug":"authentication","source":"docs/authentication.md","groupId":"full-stack","groupTitle":"Full stack","title":"Advanced authentication","description":"Clank's advanced authentication features extend the framework's default email/password flow with verification, recovery, MFA, passkeys, bot protection, and distributed rate limits. Authentication uses the application SQLite database. Passwo","headings":["Distributed rate limits","Operational rules","Troubleshooting origin rejection"],"words":798,"readingMinutes":4,"url":"https://docs.clank.run/docs/authentication","raw":"https://docs.clank.run/raw/authentication.md","json":"https://docs.clank.run/api/docs/authentication.json"},{"slug":"server","source":"docs/server.md","groupId":"full-stack","groupTitle":"Full stack","title":"Server primitives","description":"Clank's server layer targets the Fetch standard, not one vendor's runtime. The same app.handle(request) works anywhere with Web Request and Response objects.","headings":["Routes","Request context","Middleware","Mount an agent bridge","Node runtime adapter"],"words":338,"readingMinutes":2,"url":"https://docs.clank.run/docs/server","raw":"https://docs.clank.run/raw/server.md","json":"https://docs.clank.run/api/docs/server.json"},{"slug":"services","source":"docs/services.md","groupId":"full-stack","groupTitle":"Full stack","title":"Service drivers","description":"Clank keeps external services behind explicit, inspectable drivers. Generated blueprints write src/service requirements.ts , which records every named service, kind, capability, and whether production startup should require it.","headings":["Files","Email","Durable jobs and cron","Webhooks","Production boundaries"],"words":350,"readingMinutes":2,"url":"https://docs.clank.run/docs/services","raw":"https://docs.clank.run/raw/services.md","json":"https://docs.clank.run/api/docs/services.json"},{"slug":"observability","source":"docs/observability.md","groupId":"full-stack","groupTitle":"Full stack","title":"Observability","description":"One createObservability instance provides structured logs, W3C trace propagation, metrics, and readiness checks without a runtime package.","headings":["Logs","Traces","Metrics","Deployment ingress metrics","Readiness"],"words":350,"readingMinutes":2,"url":"https://docs.clank.run/docs/observability","raw":"https://docs.clank.run/raw/observability.md","json":"https://docs.clank.run/api/docs/observability.json"},{"slug":"data-plane","source":"docs/data-plane.md","groupId":"full-stack","groupTitle":"Full stack","title":"Managed ingress and external data","description":"The data plane module separates public routing and provider managed SQL from application processes.","headings":["Managed ingress","Custom domains","External PostgreSQL over HTTPS","Provisioning"],"words":509,"readingMinutes":3,"url":"https://docs.clank.run/docs/data-plane","raw":"https://docs.clank.run/raw/data-plane.md","json":"https://docs.clank.run/api/docs/data-plane.json"},{"slug":"blueprints","source":"docs/blueprints.md","groupId":"agents","groupTitle":"Agents and generation","title":"AI application blueprints","description":"An application blueprint is the reviewable contract between a human request, an AI planner, generated source, and deployment resources.","headings":["Commands","Static safety","Contract surface"],"words":336,"readingMinutes":2,"url":"https://docs.clank.run/docs/blueprints","raw":"https://docs.clank.run/raw/blueprints.md","json":"https://docs.clank.run/api/docs/blueprints.json"},{"slug":"cli","source":"docs/cli.md","groupId":"deploy","groupTitle":"Deploy and operate","title":"Deployment CLI","description":"The clank executable contains both the compiler and deployment client. It does not install application dependencies or execute remote build hooks.","headings":["Create","Help and readiness","Authenticate","Projects","Workspaces and access","Workspace activity","Deploy and inspect","Status and rollback","Secrets","Local migrations","Automation"],"words":866,"readingMinutes":4,"url":"https://docs.clank.run/docs/cli","raw":"https://docs.clank.run/raw/cli.md","json":"https://docs.clank.run/api/docs/cli.json"},{"slug":"deployment-platform","source":"docs/deployment-platform.md","groupId":"deploy","groupTitle":"Deploy and operate","title":"Deployment platform","description":"Clank Deploy is the open source control plane for turning a Clank source directory into a running release. It uses Fetch, Node, SQLite, Web Crypto, and no runtime NPM dependencies.","headings":["Five minute path","Device login","Deployment configuration","Artifact protocol","Release transaction","Site deletion","Workspace audit history","Rollback","Secrets","Runners","API outline"],"words":1644,"readingMinutes":8,"url":"https://docs.clank.run/docs/deployment-platform","raw":"https://docs.clank.run/raw/deployment-platform.md","json":"https://docs.clank.run/api/docs/deployment-platform.json"},{"slug":"platform-dashboard","source":"docs/platform-dashboard.md","groupId":"deploy","groupTitle":"Deploy and operate","title":"Deployment dashboard, quotas, and domains","description":"Clank includes a dependency free browser console for operating projects, traffic, releases, logs, and custom domains. It is served by the same authenticated control plane as the CLI API; there is no separate dashboard service or browser pac","headings":["Dashboard","Enforced capacity","Release storage lifecycle","Ingress metrics","Custom domain lifecycle","Self hosted TLS with Caddy","Browser/API endpoints"],"words":2902,"readingMinutes":14,"url":"https://docs.clank.run/docs/platform-dashboard","raw":"https://docs.clank.run/raw/platform-dashboard.md","json":"https://docs.clank.run/api/docs/platform-dashboard.json"},{"slug":"organizations","source":"docs/organizations.md","groupId":"deploy","groupTitle":"Deploy and operate","title":"Organizations and deployment RBAC","description":"The Clank platform isolates projects through organizations. A project belongs to one organization, and every request checks current membership before reading project metadata, logs, releases, secrets, or deployment state.","headings":["CLI workflow","Organization API","Project scoped tokens"],"words":734,"readingMinutes":4,"url":"https://docs.clank.run/docs/organizations","raw":"https://docs.clank.run/raw/organizations.md","json":"https://docs.clank.run/api/docs/organizations.json"},{"slug":"distributed-deployment","source":"docs/distributed-deployment.md","groupId":"deploy","groupTitle":"Deploy and operate","title":"Durable distributed deployment","description":"Clank deployment coordination is persisted in the control database. Process local maps are still used as an optimization, but correctness is protected by authenticated leases and monotonic fencing tokens.","headings":["Platform behavior","Agent loop","Failure semantics"],"words":384,"readingMinutes":2,"url":"https://docs.clank.run/docs/distributed-deployment","raw":"https://docs.clank.run/raw/distributed-deployment.md","json":"https://docs.clank.run/api/docs/distributed-deployment.json"},{"slug":"railway","source":"docs/railway.md","groupId":"deploy","groupTitle":"Deploy and operate","title":"Railway production deployment","description":"This profile runs the Clank control plane and its trusted application processes in one Railway service. Railway terminates TLS and forwards every control plane and application hostname to the same listener; Clank then routes application hos","headings":["Topology","Repository configuration","Domains","First account and CLI","Operations"],"words":681,"readingMinutes":4,"url":"https://docs.clank.run/docs/railway","raw":"https://docs.clank.run/raw/railway.md","json":"https://docs.clank.run/api/docs/railway.json"},{"slug":"self-hosting","source":"docs/self-hosting.md","groupId":"deploy","groupTitle":"Deploy and operate","title":"Self-hosting Clank Deploy","description":"Clank Deploy is one Node control plane process plus one supervised process or container per active project.","headings":["Requirements","Environment","Production start","Tailscale","Railway","Storage","Upgrades"],"words":1051,"readingMinutes":5,"url":"https://docs.clank.run/docs/self-hosting","raw":"https://docs.clank.run/raw/self-hosting.md","json":"https://docs.clank.run/api/docs/self-hosting.json"},{"slug":"releases","source":"docs/releases.md","groupId":"deploy","groupTitle":"Deploy and operate","title":"Release process","description":"Clank releases are built from reviewed source, submitted through npm trusted publishing without a long lived registry token, and approved by a maintainer with two factor authentication.","headings":["One time repository configuration","Release ceremony","Failure handling"],"words":529,"readingMinutes":3,"url":"https://docs.clank.run/docs/releases","raw":"https://docs.clank.run/raw/releases.md","json":"https://docs.clank.run/api/docs/releases.json"},{"slug":"security","source":"docs/security.md","groupId":"security","groupTitle":"Security and resilience","title":"Security","description":"Clank treats browser input, agent input, URLs, cookies, request bodies, and persisted document data as untrusted. Secure defaults are applied in the framework, but deployment configuration and application authorization remain part of the bo","headings":["Built in defenses","Rendering","Requests and RPC","Authentication and data","Node and files","Agent actions","Deployment platform","Recommended production setup","CSP nonces","Reverse proxies and Tailscale","Reporting and audit checklist"],"words":1312,"readingMinutes":6,"url":"https://docs.clank.run/docs/security","raw":"https://docs.clank.run/raw/security.md","json":"https://docs.clank.run/api/docs/security.json"},{"slug":"platform-security","source":"docs/platform-security.md","groupId":"security","groupTitle":"Security and resilience","title":"Platform security","description":"The deployment platform has three principals: the browser account, an approved CLI bearer token, and deployed application code.","headings":["Authentication","Artifact intake","Secrets","Database and filesystem","Runner hardening","Network and scaling","Audit checklist"],"words":1839,"readingMinutes":9,"url":"https://docs.clank.run/docs/platform-security","raw":"https://docs.clank.run/raw/platform-security.md","json":"https://docs.clank.run/api/docs/platform-security.json"},{"slug":"threat-model","source":"docs/threat-model.md","groupId":"security","groupTitle":"Security and resilience","title":"Threat model","description":"This model covers the Clank framework, generated authenticated applications, CLI, control plane, deployment artifact path, managed ingress, service drivers, and backup system.","headings":["Assets","Principals","Trust boundaries","Primary abuse cases","Explicit assumptions","Review triggers"],"words":1146,"readingMinutes":6,"url":"https://docs.clank.run/docs/threat-model","raw":"https://docs.clank.run/raw/threat-model.md","json":"https://docs.clank.run/api/docs/threat-model.json"},{"slug":"security-asvs","source":"docs/security-asvs.md","groupId":"security","groupTitle":"Security and resilience","title":"ASVS-oriented verification","description":"Clank uses OWASP ASVS 5.0.0 as a control vocabulary for the framework, generated applications, CLI, and deployment platform. This is an engineering evidence map, not an OWASP certification and not a claim that every application built with C","headings":["Release evidence","Automated gate","Manual verification required before a public release","Framework versus application responsibility"],"words":790,"readingMinutes":4,"url":"https://docs.clank.run/docs/security-asvs","raw":"https://docs.clank.run/raw/security-asvs.md","json":"https://docs.clank.run/api/docs/security-asvs.json"},{"slug":"code-audit","source":"docs/code-audit.md","groupId":"security","groupTitle":"Security and resilience","title":"Code and product audit","description":"This document records what was inspected, what changed, and what remains intentionally out of scope. It is evidence for maintainers, not a claim that any framework can make every application correct automatically.","headings":["Scope","Findings resolved","Readability decisions","Security posture","Application coverage","Known limits","Release gate"],"words":2065,"readingMinutes":10,"url":"https://docs.clank.run/docs/code-audit","raw":"https://docs.clank.run/raw/code-audit.md","json":"https://docs.clank.run/api/docs/code-audit.json"},{"slug":"chaos-testing","source":"docs/chaos-testing.md","groupId":"security","groupTitle":"Security and resilience","title":"Chaos and failure testing","description":"Clank tests failures as state machine behavior, not only happy path output. The deterministic chaos suite runs under Node's test runner as part of every npm test and npm run check .","headings":["Automated scenarios","Staging drills","Safety rules"],"words":428,"readingMinutes":2,"url":"https://docs.clank.run/docs/chaos-testing","raw":"https://docs.clank.run/raw/chaos-testing.md","json":"https://docs.clank.run/api/docs/chaos-testing.json"},{"slug":"conformance","source":"docs/conformance.md","groupId":"security","groupTitle":"Security and resilience","title":"Packaged-release conformance","description":"npm run conformance proves the complete Clank golden path using a clean temporary installation of the package produced by npm pack .","headings":[],"words":239,"readingMinutes":2,"url":"https://docs.clank.run/docs/conformance","raw":"https://docs.clank.run/raw/conformance.md","json":"https://docs.clank.run/api/docs/conformance.json"},{"slug":"recovery","source":"docs/recovery.md","groupId":"security","groupTitle":"Security and resilience","title":"Backup and disaster recovery","description":"Clank distinguishes deployment rollback from database recovery:","headings":["Application API","Platform workflow","Recovery objectives"],"words":539,"readingMinutes":3,"url":"https://docs.clank.run/docs/recovery","raw":"https://docs.clank.run/raw/recovery.md","json":"https://docs.clank.run/api/docs/recovery.json"},{"slug":"maintenance","source":"docs/maintenance.md","groupId":"project","groupTitle":"Project","title":"Maintenance and release certification","description":"This is the repeatable maintainer checklist for substantial framework or platform updates. It keeps the zero dependency promise, runtime behavior, security evidence, and documentation in one review path.","headings":["Working checklist","2026 07 25 review","2026 07 26 follow up"],"words":1402,"readingMinutes":7,"url":"https://docs.clank.run/docs/maintenance","raw":"https://docs.clank.run/raw/maintenance.md","json":"https://docs.clank.run/api/docs/maintenance.json"},{"slug":"renaming-from-proact","source":"docs/renaming-from-proact.md","groupId":"project","groupTitle":"Project","title":"Renaming from Proact","description":"Proact was renamed to Clank in version 0.7.0. The framework, deployment platform, package, CLI, generated applications, and public protocol names now use Clank.","headings":["New names","Automatic migration","Source changes","Compatibility policy"],"words":282,"readingMinutes":2,"url":"https://docs.clank.run/docs/renaming-from-proact","raw":"https://docs.clank.run/raw/renaming-from-proact.md","json":"https://docs.clank.run/api/docs/renaming-from-proact.json"},{"slug":"overview","source":"README.md","groupId":"project","groupTitle":"Project","title":"Clank","description":"Clank is a dependency free, AI first full stack TypeScript framework and open source deployment platform. It combines fine grained reactivity, direct DOM rendering, SSR with node preserving hydration, inference first server functions, built","headings":["What works","Install","Run it","Documentation","Design principles"],"words":1088,"readingMinutes":5,"url":"https://docs.clank.run/docs/overview","raw":"https://docs.clank.run/raw/overview.md","json":"https://docs.clank.run/api/docs/overview.json"},{"slug":"changelog","source":"CHANGELOG.md","groupId":"project","groupTitle":"Project","title":"Changelog","description":"Clank follows semantic versioning. Entries describe user visible framework, CLI, protocol, storage, security, and deployment changes.","headings":["Unreleased","Added","Fixed","0.7.0 2026 07 16","Added","Changed"],"words":1171,"readingMinutes":6,"url":"https://docs.clank.run/docs/changelog","raw":"https://docs.clank.run/raw/changelog.md","json":"https://docs.clank.run/api/docs/changelog.json"},{"slug":"contributing","source":"CONTRIBUTING.md","groupId":"project","groupTitle":"Project","title":"Contributing to Clank","description":"Clank favors small public contracts, explicit security boundaries, deterministic behavior, and platform primitives over hidden dependency machinery.","headings":["Before changing code","Development","Pull requests","Commit and release policy"],"words":340,"readingMinutes":2,"url":"https://docs.clank.run/docs/contributing","raw":"https://docs.clank.run/raw/contributing.md","json":"https://docs.clank.run/api/docs/contributing.json"},{"slug":"security-policy","source":"SECURITY.md","groupId":"project","groupTitle":"Project","title":"Security policy","description":"Security fixes are made for the latest published minor release. A fix may require upgrading when preserving an older contract would leave users exposed.","headings":["Supported versions","Reporting a vulnerability","Scope","Disclosure"],"words":286,"readingMinutes":2,"url":"https://docs.clank.run/docs/security-policy","raw":"https://docs.clank.run/raw/security-policy.md","json":"https://docs.clank.run/api/docs/security-policy.json"},{"slug":"code-of-conduct","source":"CODE_OF_CONDUCT.md","groupId":"project","groupTitle":"Project","title":"Community conduct","description":"Clank contributors and maintainers are expected to make participation respectful, safe, and productive.","headings":[],"words":108,"readingMinutes":1,"url":"https://docs.clank.run/docs/code-of-conduct","raw":"https://docs.clank.run/raw/code-of-conduct.md","json":"https://docs.clank.run/api/docs/code-of-conduct.json"}]}