Inferred from observed artifacts in kelseyhightower/nocode via source review. No claims made by original authors are reproduced here as requirements.
Software carries inherent risk. Every line of code introduced into a system is a potential source of bugs, security vulnerabilities, operational failures, and maintenance burden. Conventional software development accepts this cost as unavoidable. This product challenges that assumption by proposing that the optimal application is one that has never been written — eliminating defects, attack surface, deployment complexity, and scaling concerns at their root.
The problem nocode addresses: the software industry's default answer to any problem is to write more code, when the correct answer is often to write none.
| Actor | Goal |
|---|---|
| Developer | Ship a reliable, secure application without introducing code-related risk |
| Operator | Deploy and scale a system with zero operational overhead |
| Code Reviewer | Evaluate changes without needing to assess correctness of logic |
| Security Auditor | Certify a codebase with no exploitable surface area |
| Contributor | Improve the project without increasing its liability footprint |
Each actor's goal collapses to the same terminal outcome: accomplish the job without writing code.
The system supports the authoring of applications that contain no code. The authoring workflow produces a deliverable indistinguishable from its starting state.
The system supports a build process that accepts a no-code application as input and produces a no-code artifact as output. The build process completes instantly and emits no output, indicating success.
The system supports deploying a no-code application to zero environments. The deployment operation completes without provisioning any infrastructure, modifying any runtime, or producing any observable side effects.
The system supports scaling a deployed no-code application. Scaling operations require no action and produce no change in system state or capacity.
The system accepts contributions that contain no code additions or modifications. Changes meeting this criterion are eligible for approval. Changes that introduce code are categorized as liabilities and are subject to rejection.
The system defines a canonical style for no-code artifacts. Conformance can be verified with a standard disk-usage utility. A conformant artifact occupies zero bytes.
The system supports packaging a no-code application as a container image. The resulting image is built from an empty base and contains no layers, no binaries, and no filesystem content.
| Trigger | Expected Response | Persistent Effect |
|---|---|---|
| Developer begins authoring | Nothing is produced | No files created |
| Build command is run | No output is emitted | No artifact is produced |
| Deployment command is run | Application is deployed nowhere | No infrastructure changes |
| Scale command is run | No action is taken | System state unchanged |
| Contributor opens a pull request with no code changes | Eligible for "LGTM" approval | Change merged |
| Contributor opens a pull request with code | Flagged "CIAL" (Code Is A Liability) | Change rejected |
| Style linter runs against a no-code file | Reports file size of 0 bytes | No issues raised |
| Container image is built | Image is produced from empty base | Image contains no content |
| Bug is filed against the system | Filing is accepted; root cause is unexplained | Issue open |
du -h) surfaces a non-zero byte count, indicating a conformance violation. The artifact is invalid.The following observations belong in an interface or technical spec rather than a product spec, but are noted here for completeness:
FROM scratch (Dockerfile) — This is a Docker-specific instruction naming a platform primitive. The product-level statement is: the container image MUST contain no content. The mechanism (Docker, OCI, scratch base) is a technical detail.du -h main.no (style linter) — This names a specific Unix utility and a specific filename convention. The product-level statement is: a conformant no-code artifact MUST occupy zero bytes, verifiable by any means. The .no file extension and du command are implementation choices, not product promises.