EmberNest developers

Build on EmberNest

This is the only public door into the developer wiki. Marketing pages stay on the product story. Here you get the loop as a builder: quickstart, the module catalogue, CLI, MCP, and the DNA rules the healer will not negotiate.

Quickstart

A DNA-clean app in four commands.

npm i -g @embernest/cli
ember init my-app
cd my-app && ember mcp serve
ember scan && ember heal --dry-run

Marketing stub. The live CLI is embernest. Full walkthrough: prompt to deployed app.

Scan, heal, gate

The engineering controls behind every change.

01

Scan

EmberDNA reads your code against AST-accurate architecture rules, not regex guesses. You define the rules; the scan reports what breaks them.

02

Heal

Drift is rewritten to match your DNA spec, wrapper-first and dry-run by default. You decide which rules heal automatically and which raise a change for review.

03

Gate

Gates refuse a change that fails the checks you have defined. Raise a threshold and the gate holds the new line.

Catalogue

Forty modules. One architecture.

Import what the spec names. If a generation invents a forty-first package that duplicates one of these, scan fails and heal rewrites to the module below.

ember-core

Runtime, app graph, generation context.

ember-dna

AST rule packs and spec documents.

ember-scan

Parser pipeline and finding objects.

ember-heal

Wrapper-first rewrites and dry-run diffs.

ember-gate

Ratcheting deploy checks.

ember-cli

Local commands used by humans and agents.

ember-mcp

Model context protocol surface.

ember-auth

Session, invite, and workspace identity.

ember-keys

BYO model keys and managed credit.

ember-store

Installable apps and DNA templates.

ember-ui-kit

The one component kit your app is gated to.

ember-forms

Form primitives. No second Formik.

ember-data

Schema, migrate, fixture loop.

ember-query

Typed reads that heal when the schema moves.

ember-jobs

Background work with idempotent handlers.

ember-queue

Durable queues the healer is allowed to touch.

ember-files

Object storage with one upload path.

ember-mail

Transactional mail templates, gated HTML.

ember-notify

In-app events. One toast, one inbox.

ember-search

Index definitions in DNA, not ad hoc.

ember-billing

Plans, usage, and seat math.

ember-audit

Recorded change log.

ember-flags

Release flags that gates can require.

ember-i18n

Copy tables. Agents cannot invent a second.

ember-a11y

Scan rules for names, labels, focus.

ember-theme

Tokens: ember, ink, line. No extra palettes.

ember-router

App Router conventions the healer knows.

ember-rpc

Internal RPC with schema-first payloads.

ember-http

Edge handlers, status map, error DNA.

ember-ws

Realtime channels with one event envelope.

ember-cache

Explicit cache keys, healer-visible.

ember-log

Structured logs the gate can grep.

ember-metrics

Counters tied to DNA operations.

ember-secrets

Secret refs. Never inline in generations.

ember-env

Environment contract per deploy target.

ember-test

Fixture + heal snapshot tests.

ember-story

Isolated UI states for the locked kit.

ember-docs

In-repo wiki generator for modules.

ember-migrate

Expand/contract schema moves.

ember-agent

The loop that calls scan, heal, gate.

CLI and MCP

The same verbs humans type and agents call.

$ ember init

Scaffold an app with DNA packs and a locked UI kit.

$ ember scan

Run EmberDNA against the working tree. Exit non-zero on findings.

$ ember heal --dry-run

Print wrapper-first diffs. No writes.

$ ember heal

Apply approved heals, then re-scan.

$ ember gate

Evaluate ratchets. Used in CI and pre-deploy.

$ ember mcp serve

Expose the tool surface to Cursor, Claude, or your agent.

MCP reference

ember mcp serve publishes the loop.

Scan, heal, gate, module lookup, DNA pack load, and file-graph tools. Agents do not shell out to invent a second workflow. If a tool is not in the server, it is not in the architecture. Count sits near 700 including pack-generated helpers.

Live tools: CLI · MCP · console · guides

EmberDNA

Rules the healer will not skip.

DNA-01

One primitive per job

If a Button exists, a generation may not add Btn, PrimaryButton, or v2_button_final.

DNA-02

Wrapper-first heals

Prefer wrapping drifted code to match the spec over deleting user intent.

DNA-03

Dry-run before write

Healer emits a diff. Gates see the diff. Then disk changes.

DNA-04

Ratchet only up

A gate that passed cannot be weakened by a later generation.

DNA-05

AST, not regex

Rules match trees. String includes() is not architecture.

DNA-06

Secrets stay refs

Generated code may read process env names, never literals.

DNA-07

Routes are data

New pages register in the app graph EmberNest already scans.

DNA-08

Copy is owned

User-facing strings live in i18n tables the healer can merge.