WebSockets, messaging and static or Bun-bundled HTML. It does not ship an opinionated frontend rendering layer.
## Related
- [Get Started](/docs/get-started) - Build your first Asena application
- [Dependency Injection](/docs/concepts/dependency-injection
Cron-based background jobs with @Schedule and CronRunner, powered by Bun's native cron
- [Frontend Controller](https://asena.sh/raw/concepts/frontend-controller.md): Serve HTML pages with @FrontendController and @Page using Bun's native
SPAs) or the Explorer tool directly.
This architecture dramatically simplifies the stack: Database ↔ PgArachne ↔ Frontend / AI Agent.
Endpoint structure: All database endpoints share a common prefix (default `db`, configurable
Obsidian-style visual brain graph of their rules, tags, and ADRs without installing heavy frontend runtimes (e.g. Next.js, Electron, or Express).
**Decision:** Implement an embedded Canvas-based force-directed graph
required for a backend-only app.
`bun add @nifrajs/core`
### A server - no frontend required
Chainable and fully type-inferred. This is a complete app: `@nifrajs/core` alone is a
production backend
encrypted graphs, offline graphs).
- **Warning**: the backend can be a few changes behind the frontend while local changes are still syncing.
- Return::
- Promise resolving to the query results
- Example::
- ```javascript
Features that exist in code but do not work for users
Trace routes, navigation, frontend, backend, data, permissions, flags, and deployment instead of treating a file as a finished feature
coordinator) as the autonomous senior engineer on a
> software project — any language, any framework, frontend or backend. Its enforced
> idea: **discover-then-reuse** — retrieve what the codebase already provides
/api/comps sold comps for a model, narrowed to ±3 model years
public/index.html single-file frontend, no build step
data/listings.json normalized corpus
data/sold.json verified auction results
```
Everything derived (cohort medians, outlier