# Development Workflow

> A repo-aligned day-to-day workflow for building features.

*Canonical: https://makerkit.dev/docs/nextjs-drizzle/development-guide/development-workflow*

---

## Start the app

```bash
pnpm compose:dev:up
pnpm dev
```

## Organize feature code

Typical feature layout:

```text
apps/web/app/[locale]/(internal)/feature/
├── page.tsx
├── _components/
└── _lib/
```

Common naming:

- loaders: `*-page.loader.ts`
- actions: `*-server-actions.ts`
- schemas: `*.schema.ts`

## When to create a package

Create a shared workspace package only if the code needs a stable boundary or will be reused across apps/packages. Put it under `packages/` or an existing grouped family like `packages/account/` or `packages/organization/`.

## Suggested flow

1. create or update validation schema
2. update database code if needed
3. add loader or action
4. build UI
5. verify with repo checks

## Checks

```bash
pnpm typecheck
pnpm lint:fix
pnpm format:fix
pnpm test:unit
```

`pnpm healthcheck` is useful too, but it does not replace `pnpm test:unit`.

---

**Next:** [Adding Features →](./adding-features)
