# Mayrlabs Internal Nextjs

> Extracted Next.js standards from MayR Labs GEMINI.md Use when this capability is needed.

- Skill: `tomevault-io/mayrlabs-internal-nextjs` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/mayrlabs-internal-nextjs`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/mayrlabs-internal-nextjs/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/mayrlabs-internal-nextjs

---


# MayR Labs Internal: Next.js Standards

## File Structure (STRICT)

Each route must follow:

```plaintext
/route
  page.tsx
  _components/
  _hooks.ts
  _constants.ts
  _types.ts
  _utils.ts
```

## Rules

- `page.tsx` must be **thin** (composition only)
- Business logic → hooks or services
- Components:
  - Dumb (UI) vs Smart (logic) separation
  - As much as possible, always use data files at `@/lib/data/**.ts` to define
    data used in applications

## Rendering

- Prefer **Server Components by default**
- Use Client Components only when necessary:
  - interactivity
  - browser APIs

## SEO (MANDATORY)

- Every page must define:
  - `metadata`
  - proper titles & descriptions
- No lazy SEO. Ever.

---
> Source: [MayR-Labs/skills](https://github.com/MayR-Labs/skills) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-05-23 -->

