Модули

Карта фич шаблона: где лежит код, какие env, от чего зависит, как выключить или вырезать.
Пошаговые гайды по ключам — в README docs.

Документация

Быстрый указатель

МодульКодВыкл. без удаления
Auth (Яндекс / VK / Dev)lib/auth, api/authне задавать ключи провайдера
OTP email/телефонlib/auth/verification, components/profileубрать карточку с /profile
Платежиlib/payments, api/paymentsубрать CTA оплаты
ЮKassalib/yookassaPAYMENT_PROVIDER=robokassa
Robokassalib/robokassaPAYMENT_PROVIDER=yookassa
Чеки 54‑ФЗlib/payments/receipt.tsRECEIPT_ENABLED=false
Подписка Free/Prolib/subscription, config/plans.ts
Emaillib/emailне настраивать SMTP (в dev → лог)
SMSlib/smsSMS_PROVIDER=console
AIlib/ai, api/aiне задавать AI_API_KEY
Метрикаlib/analytics, components/analyticsпустой NEXT_PUBLIC_YANDEX_METRIKA_ID
SEOlib/seo, sitemap.ts, robots.ts
Legal(marketing)/legal, config/legal.tsудалить страницы + ссылки
Лендингcomponents/marketingзаменить /
Кабинет(app)/profile
UIcomponents/ui
БДdb/ядро

Ядро

Config

src/config/env.ts (Zod), site.ts, plans.ts, legal.ts.

База (Drizzle)

src/db/ — Postgres или MySQL (DB_PROVIDER).

Таблицы: user, account, session, verificationToken, payment, verificationChallenge.

Env: DATABASE_URL, DB_PROVIDER.


Auth

Вход через Яндекс ID и/или VK ID; Dev Login только локально.

Кодsrc/lib/auth/ · src/app/api/auth/ · /login · защита в src/proxy.ts
EnvAUTH_SECRET, AUTH_YANDEX_*, AUTH_VK_*, AUTH_DEV_LOGIN
ЗависитБД (user, account, session), email (welcome)
ГайдыЯндекс, VK ID

Вырезать: lib/auth, api/auth/*, /login, src/types/next-auth.d.ts — и всё, что зовёт requireUser / сессию.


Подтверждение контактов (OTP)

В кабинете: код на email / SMS.

Кодsrc/lib/auth/verification/ · components/profile/contact-verify-card.tsx
Envчерез Email и SMS
ЗависитAuth, verificationChallenge, Email, SMS

Вырезать: verification + карточку с профиля; таблицу verificationChallenge из схемы.


Платежи

Общий слой → ЮKassa или Robokassa → webhook → Pro.

Кодsrc/lib/payments/ · components/payments/ · api/payments/create · /payments/success|fail
EnvPAYMENT_PROVIDER
ЗависитAuth, подписка, email (письмо об оплате), БД payment

ЮKassa

src/lib/yookassa/ · api/webhooks/yookassa · setup · YOOKASSA_*

Robokassa

src/lib/robokassa/ · api/webhooks/robokassa · setup · ROBOKASSA_*

Чеки 54‑ФЗ

src/lib/payments/receipt.ts — объект receipt / параметр Receipt.

Env: RECEIPT_ENABLED, RECEIPT_SNO, RECEIPT_VAT.
Нужен email или телефон в профиле. Без кассы в ЛК провайдера — оставь false.

Webhook на проде: публичный HTTPS после деплоя.


Подписка

Кодsrc/lib/subscription/ · config/plans.ts · UI плана в components/app/
Envцена/срок — в plans.ts
Зависитполе user.plan / planExpiresAt; grant из payments/finalize

Email и SMS

Emailsrc/lib/email/: welcome, payment-succeeded, OTP.
Env: EMAIL_PROVIDER, SMTP_* / UNISENDER_*, EMAIL_FROM.

SMSsrc/lib/sms/: OTP.
Env: SMS_PROVIDER, SMSRU_*.


AI

Чат в кабинете. Провайдеры: OpenRouter, OpenAI, Mistral, GenAPI, DeepSeek, Anthropic, Gemini, Grok, GigaChat, openai_compatible.

Кодsrc/lib/ai/ · api/ai/chat · components/profile/ai-chat-card.tsx
EnvAI_PROVIDER, AI_API_KEY, опц. AI_MODEL, AI_BASE_URL, GIGACHAT_*
Гайдsetup-ai

Вырезать: lib/ai, api/ai, AiChatCard.


Яндекс Метрика

Кодsrc/lib/analytics/ · components/analytics/ · root layout.tsx
EnvNEXT_PUBLIC_YANDEX_METRIKA_ID
Гайдsetup-yandex-metrika

SEO, Legal, Лендинг, Кабинет, UI

МодульКод
SEOsrc/lib/seo/, app/sitemap.ts, app/robots.ts
Legal/legal/*, config/legal.ts, components/legal/
Лендинг/, components/marketing/
Кабинет/profile, components/app/, components/profile/
UIcomponents/ui/, lib/cn.ts, globals.css

Зависимости (схема)

config/env
  └─ db, auth, payments, email, sms, ai, analytics

auth ──► email (welcome)
verification ──► email + sms
payments ──► yookassa | robokassa
         ──► receipt? (54-ФЗ)
         ──► subscription.grant + email
profile ──► auth + subscription + OTP + payments UI + ai
marketing / legal / seo ──► почти автономны

Типичные «вырезать X»

ХочуДелай
Без AIубери ключ или удали lib/ai + api/ai + карточку
Без Метрикине задавай ID
Без чековRECEIPT_ENABLED=false
Только ЮKassaPAYMENT_PROVIDER=yookassa, можно удалить lib/robokassa
Без OTPубери verification + карточку; SMS можно не трогать
Свой лендингперепиши (marketing)/page.tsx и секции

После удаления папок проверь импорты (pnpm build) и таблицу sitemap/footer.