Orient from the current checkout before editing. Treat package manifests, exports, and source as authoritative when they differ from this snapshot.
Workflow
- Confirm the branch and inspect the nearest
package.json, existing sibling modules, and package exports. - Search
@homarr/commonbefore creating a general-purpose helper. Read references/common.md for every public entrypoint and export. - Read references/architecture.md when the task crosses packages, runtimes, routing, data, widgets, integrations, cron jobs, Custom Widgets, or Workshop.
- Keep the change in the deepest package that owns the behavior. Reuse public entrypoints rather than deep-importing implementation files.
- Re-run targeted searches before documenting counts, consumers, or dependency edges; these change faster than the architectural seams.
Current toolchain
- Use Node
24.22.2for application runtimes and Bun1.4.4for package management, pinned inmise.tomlandpackage.json. - Use Bun workspaces with Turborepo and a shared hoisted install. Workspace packages use the
@homarr/scope and catalog-managed dependencies. - Use Next.js App Router, TypeScript, tRPC, Drizzle, Mantine v9, Tabler icons, Jotai, TanStack Query, next-intl, Vitest, and Playwright.
- Use oxlint and oxfmt. Mantine is the application UI system; Tailwind is limited to the docs app.
bun run devstarts only@homarr/nextjs. Start a standalone runtime explicitly when the task needs it.
High-value seams
- Server/RSC tRPC:
@homarr/api/server - Client tRPC hooks:
@homarr/api/client - Main router:
packages/api/src/root.ts - MCP eager router:
packages/api/src/mcp.ts - Database schemas:
packages/db/schema/{sqlite,postgresql}.ts - Widget registry:
packages/widgets/src/registry.ts - Widget loading manifest:
packages/widgets/src/manifest.ts - Integration definitions:
packages/definitions/src/integration.ts - Integration factory:
packages/integrations/src/base/creator.ts - Cron jobs:
packages/cron-jobs/src/jobs/ - App routes:
apps/nextjs/src/app/[locale]/
Invoke documentation-sync only when users need new or corrected information to set up, use, or troubleshoot Homarr; follow the Documentation Sync criteria in AGENTS.md. When exposing tRPC through MCP, invoke mcp-integration.