nextjs-pages

nextjs-pages is a cursor rule for Cursor from s0vers/next-app-i18n-starter. It costs 0 tokens per session (347 once invoked), scanned A, original, MIT.

Rules for building pages, layouts, and route handlers in a Next.js App Router application with localized URLs. They cover locale validation, server-side translations, metadata routes, right-to-left languages, and asynchronous route parameters.

In plain words
What is it for?
Use them when adding or changing localized pages, layouts, catch-all routes, sitemap or robots files, translations, or server-rendered structured data in the specified Next.js project.
Why use it?
They prevent common routing, localization, metadata, and Next.js version mistakes. They also keep language-specific pages and layouts consistent.

Cursor rule for Cursor

Written for Cursor: installed under .cursor/.

Good fit Use them when adding or changing localized pages, layouts, catch-all routes, sitemap or robots files, translations, or server-rendered structured data in the specified Next.js project.

Compare 6 cursor rules from other repositories ↓
Install with agentmods
npx agentmods add rules/s0vers/next-app-i18n-starter/nextjs-pages
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/s0vers/next-app-i18n-starter

Made for: Cursor.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for nextjs-pages

README.md
[![agentmods](https://agentmods.dev/badge/rules/s0vers/next-app-i18n-starter/nextjs-pages.svg)](https://agentmods.dev/rules/s0vers/next-app-i18n-starter/nextjs-pages)
Your own site
<a href="https://agentmods.dev/rules/s0vers/next-app-i18n-starter/nextjs-pages"><img src="https://agentmods.dev/badge/rules/s0vers/next-app-i18n-starter/nextjs-pages.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 347 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.00347
Opus 5 $0.00000 $0.00173
Sonnet 5 $0.00000 $0.00069
Haiku 4.5 $0.00000 $0.00035

Measured 8d ago against content hash d7748c3bc36c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

nextjs-pages scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/nextjs-pages.mdc · 46 lines

What it actually says

App Router pages

Structure

  • All user-facing routes: src/app/[locale]/…
  • Root metadata routes: src/app/sitemap.ts, src/app/robots.ts (not locale-scoped)
  • Catch-all src/app/[locale]/[...rest]/page.tsxnotFound()

Server page template

import { setRequestLocale, getTranslations } from "next-intl/server";

export default async function Page({
  params,
}: {
  params: Promise<{ locale: string }>;
}) {
  const { locale } = await params;
  setRequestLocale(locale);
  const t = await getTranslations({ locale, namespace: "YourNamespace" });
  return <h1>{t("title")}</h1>;
}

Layout (src/app/[locale]/layout.tsx)

  • Validate locale with hasLocale(routing.locales, locale)notFound().
  • Set <html lang={locale} dir={locale === "ar" ? "rtl" : "ltr"}>.
  • generateStaticParams must list all routing.locales.

React 19 constraints

  • JSON-LD: Server Component only; serialize with JSON.stringify(data).replace(/</g, "\\u003c").
  • No next/script or client-side <script> for theme — cookie SSR in layout.

Params

  • Next.js 16: params and searchParams are Promises — always await params.
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 46 lines · 0 tokens per session scan A d7748c3bc36c

Subscribe to this mod's changes

nextjs-pages is a cursor rule published in the GitHub repository s0vers/next-app-i18n-starter (64 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 347 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.