# Stack314 docs: Neolith, for Django > Neolith is an open source specification and Django library for running a Django app inside a shared process or as its own service, and moving it between the two by configuration, with no change to its code. It is defined by a specification independent of Django and Python; django-neolith is the reference implementation. Status: pre-alpha, specification draft 0.1, nothing is installable yet. Neolith is not affiliated with or endorsed by the Django Software Foundation. Sections: tutorial and how-to guides (stubs until there is something to install), reference, the specification (with requirement IDs), decision records, and project documents (vision, principles, roadmap, contributing, changelog). Specification, decision records and project documents are synced from https://github.com/stack314/django-neolith. ## Pages - [0001. Record architecture decisions](https://docs.stack314.com/neolith/decisions/0001-record-architecture-decisions/) - [0002. The Django app is the unit of deployment](https://docs.stack314.com/neolith/decisions/0002-django-app-is-the-unit-of-deployment/) - [0003. Apps communicate only through contracts and connectors](https://docs.stack314.com/neolith/decisions/0003-apps-communicate-through-contracts/) - [0004. Each app owns its data](https://docs.stack314.com/neolith/decisions/0004-each-app-owns-its-data/) - [0005. Small required core; no bundled shared-service apps](https://docs.stack314.com/neolith/decisions/0005-small-required-core/) - [0006. Contracts are typed and published as OpenAPI](https://docs.stack314.com/neolith/decisions/0006-contracts-are-typed-and-published-as-openapi/) - [0007. The in-process transport serializes, like the network ones](https://docs.stack314.com/neolith/decisions/0007-in-process-transport-serializes/) - [0008. Contract errors are typed and identical in both modes](https://docs.stack314.com/neolith/decisions/0008-typed-contract-errors-in-both-modes/) - [0009. One database alias per app](https://docs.stack314.com/neolith/decisions/0009-one-database-alias-per-app/) - [0010. Pluggable principal resolution in core](https://docs.stack314.com/neolith/decisions/0010-pluggable-principal-resolution/) - [0011. django-ninja for contract endpoints](https://docs.stack314.com/neolith/decisions/0011-django-ninja-for-contract-endpoints/) - [0012. Supported Python and Django versions](https://docs.stack314.com/neolith/decisions/0012-supported-python-and-django-versions/) - [0013. License](https://docs.stack314.com/neolith/decisions/0013-license/) - [0014. Connector transports are pluggable](https://docs.stack314.com/neolith/decisions/0014-pluggable-connector-transports/) - [0015. Specification first; django-neolith is the reference implementation](https://docs.stack314.com/neolith/decisions/0015-specification-first-django-reference-implementation/) - [0016. An app may run attached and detached at the same time](https://docs.stack314.com/neolith/decisions/0016-an-app-may-run-attached-and-detached-at-once/) - [0017. The call context is explicit at the action and ambient for propagation](https://docs.stack314.com/neolith/decisions/0017-call-context-explicit-at-the-action-ambient-for-propagation/) - [0018. Requirement IDs and spec-to-test traceability](https://docs.stack314.com/neolith/decisions/0018-requirement-ids-and-spec-to-test-traceability/) - [0019. Wire encodings of the portable forms](https://docs.stack314.com/neolith/decisions/0019-wire-encodings-of-the-portable-forms/) - [0020. A portable form whose wire spelling differs from Pydantic's default is a neolith Annotated type](https://docs.stack314.com/neolith/decisions/0020-wire-forms-pydantic-writes-otherwise-are-neolith-annotated-types/) - [0021. An app declares itself in class attributes of its `NeolithAppConfig`, with contracts named by their declaration classes](https://docs.stack314.com/neolith/decisions/0021-an-app-declares-itself-on-its-neolithappconfig/) - [0022. The app host builds settings from declarations, checks at app loading, and boots when a handler is built](https://docs.stack314.com/neolith/decisions/0022-the-app-host-builds-settings-and-checks-before-it-serves/) - [0023. A request's principal comes from ordered backends that declare their request inputs, and a Django user is named by a deployer-given issuer and its primary key](https://docs.stack314.com/neolith/decisions/0023-a-request-principal-comes-from-ordered-backends/) - [Architecture decision records](https://docs.stack314.com/neolith/decisions/) - [How-to guides](https://docs.stack314.com/neolith/how-to/) - [Neolith, for Django](https://docs.stack314.com/neolith/) - [Changelog](https://docs.stack314.com/neolith/project/changelog/) - [Contributing to django-neolith](https://docs.stack314.com/neolith/project/contributing/) - [Open questions](https://docs.stack314.com/neolith/project/open-questions/) - [Guiding principles](https://docs.stack314.com/neolith/project/principles/) - [Roadmap to 0.1](https://docs.stack314.com/neolith/project/roadmap/) - [django-neolith: vision](https://docs.stack314.com/neolith/project/vision/) - [Django host notes: request roots](https://docs.stack314.com/neolith/reference/django-host/) - [Reference](https://docs.stack314.com/neolith/reference/) - [00. Overview and terms](https://docs.stack314.com/neolith/spec/00-overview/) - [01. Contracts](https://docs.stack314.com/neolith/spec/01-contracts/) - [02. Transports and routing](https://docs.stack314.com/neolith/spec/02-transports/) - [03. HTTP transport](https://docs.stack314.com/neolith/spec/03-http-transport/) - [04. Events](https://docs.stack314.com/neolith/spec/04-events/) - [05. App declaration and lifecycle](https://docs.stack314.com/neolith/spec/05-app-declaration/) - [06. Conformance](https://docs.stack314.com/neolith/spec/06-conformance/) - [The neolith specification](https://docs.stack314.com/neolith/spec/) - [Tutorial](https://docs.stack314.com/neolith/tutorial/) ## Documentation Sets - [Abridged documentation](https://docs.stack314.com/llms-small.txt): a compact version of the documentation for Stack314 docs: Neolith, for Django, with non-essential content removed - [Complete documentation](https://docs.stack314.com/llms-full.txt): the full documentation for Stack314 docs: Neolith, for Django ## Notes - The complete documentation includes all content from the official documentation - The content is automatically generated from the same source as the official documentation ## Optional - [Source repository](https://github.com/stack314/django-neolith): django-neolith on GitHub - [Stack314](https://stack314.com): The engineering lab behind Neolith