# Ekklesia module template This is the smallest supported backend-only Ekklesia module. It proves the static manifest, compiled runtime entrypoint, capability registration, and logical storage-bucket declarations without pretending that API, Drizzle, or storage provisioning already exist. To create a module inside this repository: 1. Copy this directory to `modules/`. 2. Rename the package in `package.json` and remove `private` when it is ready for publication. 3. Update the ID, name, version, namespaces, compatibility ranges, and bucket requests in `ekklesia.module.json`. 4. Keep the manifest capability versions and dependency ranges aligned with the contracts the module actually implements and consumes. 5. Replace `src/server/index.ts` with backend behavior only. Its `defineModuleRuntime` ID and version must match the manifest; do not duplicate the rest of the manifest in TypeScript. 6. Run `pnpm install`, `pnpm build`, `pnpm modules:validate`, and `pnpm verify` from the repository root. The declared production entrypoint is the compiled `dist/server/index.js`, not source TypeScript. Do not add UI components, styles, renderers, navigation, or layouts. Those belong to surfaces. Keep imports side-effect-free, register capabilities in `register`, acquire resources in `start`, and release them in `stop`.