> For AI agents: the complete documentation index is available at https://mfeflow.github.io/mfeflow/llms.txt, the full documentation bundle is available at https://mfeflow.github.io/mfeflow/llms-full.txt.

# Feature catalog

This page helps you choose features. A feature is a reviewed set of file changes you add with one command. After you add it, the files are yours to edit.

## Which features are on by default?

A new project has the always-on features and the four default ones. Add any other one later with this command:

```bash
pnpm mfeflow add analytics-gtm
```

See [Add features](https://mfeflow.github.io/mfeflow/guide/adding-features.md) for the preview, options and rollback. List what your project can add with `pnpm mfeflow features`.

## What can I add?

The Package column is the library that runs in the browser or at build time. The last column is code that is written into your project, which you own and edit.

| Feature                                                                              | Status    | What it adds                                               | Package                  | Code you own                          |
| ------------------------------------------------------------------------------------ | --------- | ---------------------------------------------------------- | ------------------------ | ------------------------------------- |
| [tsconfig](https://mfeflow.github.io/mfeflow/features/tsconfig.md)                   | Always on | Strict TypeScript 7 presets and a typecheck script         | `@mfeflow/tsconfig`      | `tsconfig.json` in each app           |
| [lint-oxlint](https://mfeflow.github.io/mfeflow/features/lint-oxlint.md)             | Default   | Type-aware linting and Prettier                            | `@mfeflow/oxlint-config` | `.oxlintrc.json`, `.prettierrc.json`  |
| [url-factory](https://mfeflow.github.io/mfeflow/features/url-factory.md)             | Default   | Typed endpoint definitions and URL building                | `@mfeflow/url-factory`   | `src/api/endpoints.ts` per app        |
| [env-t3](https://mfeflow.github.io/mfeflow/features/env-t3.md)                       | Default   | Typed env that fails the build, and runtime config checks  | t3-env                   | `env.ts`, config schema, config files |
| [testing](https://mfeflow.github.io/mfeflow/features/testing.md)                     | Default   | Vitest, Testing Library, MSW and a Playwright smoke test   | `@mfeflow/testing`       | Tests, mocks and configs              |
| [analytics-gtm](https://mfeflow.github.io/mfeflow/features/analytics-gtm.md)         | Opt in    | Google Tag Manager with Consent Mode v2                    | `@mfeflow/analytics`     | Consent banner, tracker per remote    |
| [analytics-clarity](https://mfeflow.github.io/mfeflow/features/analytics-clarity.md) | Opt in    | Microsoft Clarity, loaded after consent                    | `@mfeflow/analytics`     | Config key only                       |
| [telemetry-otel](https://mfeflow.github.io/mfeflow/features/telemetry-otel.md)       | Opt in    | OpenTelemetry in the browser, tagged per remote            | `@mfeflow/telemetry`     | Start-up wiring                       |
| [event-bus](https://mfeflow.github.io/mfeflow/features/event-bus.md)                 | Opt in    | Typed events between remotes and a contracts package       | `@mfeflow/event-bus`     | `packages/contracts`, event files     |
| [route-factory](https://mfeflow.github.io/mfeflow/features/route-factory.md)         | Opt in    | Typed links between remotes                                | `@mfeflow/route-factory` | `src/routes.ts` per remote            |
| [http](https://mfeflow.github.io/mfeflow/features/http.md)                           | Opt in    | A fetch client over your endpoints, with retries           | `@mfeflow/http`          | `src/api/client.ts` per app           |
| [theming](https://mfeflow.github.io/mfeflow/features/theming.md)                     | Opt in    | Light and dark themes as CSS variables, owned by the shell | `@mfeflow/theme`         | Theme provider wiring                 |
| [i18n](https://mfeflow.github.io/mfeflow/features/i18n.md)                           | Opt in    | One i18next instance, messages per remote                  | `@mfeflow/i18n`          | Messages, language switcher           |
| [tailwind](https://mfeflow.github.io/mfeflow/features/tailwind.md)                   | Opt in    | Tailwind 4 with a class prefix per app                     | Tailwind                 | Stylesheets, PostCSS config           |
| [ui-shadcn](https://mfeflow.github.io/mfeflow/features/ui-shadcn.md)                 | Opt in    | shadcn/ui components in every remote                       | shadcn/ui, copied        | Components in each remote             |
| [forms](https://mfeflow.github.io/mfeflow/features/forms.md)                         | Opt in    | react-hook-form with zod, valibot or arktype               | react-hook-form          | An example form per remote            |
| [data-react-query](https://mfeflow.github.io/mfeflow/features/data-react-query.md)   | Opt in    | TanStack Query as a shared singleton                       | TanStack Query           | Provider and sample query             |
| [storybook](https://mfeflow.github.io/mfeflow/features/storybook.md)                 | Opt in    | Storybook per remote, composed in the shell                | Storybook 10             | Stories and config                    |
| [registry-server](https://mfeflow.github.io/mfeflow/features/registry-server.md)     | Opt in    | Publish through a registry server                          | none                     | `src/registry-sources.ts`             |
| [deploy-cloudflare](https://mfeflow.github.io/mfeflow/features/deploy-cloudflare.md) | Opt in    | One way to host on Cloudflare Workers                      | wrangler                 | `wrangler.jsonc`, `_headers`, script  |
| [ci-github](https://mfeflow.github.io/mfeflow/features/ci-github.md)                 | Opt in    | A pull request workflow                                    | none                     | `.github/workflows/ci.yml`            |
| [git-hooks](https://mfeflow.github.io/mfeflow/features/git-hooks.md)                 | Opt in    | lefthook and commitlint                                    | lefthook, commitlint     | `lefthook.yml`, commitlint config     |
| [commit-prompt](https://mfeflow.github.io/mfeflow/features/commit-prompt.md)         | Opt in    | An interactive Conventional Commits prompt                 | czg                      | Script and config                     |
| [registry-static](https://mfeflow.github.io/mfeflow/features/registry-static.md)     | Opt in    | Deploy and roll back remotes on a folder or bucket         | none                     | Scripts, guide, deploy workflow       |
| [release](https://mfeflow.github.io/mfeflow/features/release.md)                     | Opt in    | Changesets versions each remote, and deploy uses it        | Changesets               | `.changeset/`, releasing guide        |
| [deploy-docker](https://mfeflow.github.io/mfeflow/features/deploy-docker.md)         | Opt in    | A Dockerfile, nginx config and Kubernetes example          | none                     | `docker/`, `compose.yaml`, `k8s/`     |

The always-on `core` feature is the shell, the remotes and the registry files. It has no page of its own. See [Project structure](https://mfeflow.github.io/mfeflow/guide/project-structure.md).

## What does a feature page contain?

Every page follows the same order: what you get, how to add it, how to use it, the settings, how it works, the gotchas and links.

## Can other people publish features?

Yes. A feature can come from a registry that anyone hosts, named `@namespace/feature`. These features are data only. They list files, dependencies, script names and a fixed set of edits, and they never run code.

```bash
pnpm mfeflow registry add @acme https://acme.github.io/mfeflow-features/{name}.json
pnpm mfeflow add @acme/segment
```

Read [Third-party features](https://mfeflow.github.io/mfeflow/features/third-party.md) for the guide, or the [overview](https://mfeflow.github.io/mfeflow/concepts/third-party-features.md).
