A ready-to-run marketing site: multi-page, lead capture, blog and SEO artifacts.
Find a file Use this template
w4c-templates b41099ee06
Some checks failed
CI / quality (push) Has been cancelled
chore(template): publish Landing.Nuxt
2026-10-11 23:24:06 +03:00
.github/workflows chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
.w4c chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
app chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
docker chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
prisma chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
public chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
server chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
shared chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
tests chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
.dockerignore chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
.env.example chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
.gitignore chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
eslint.config.mjs chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
nuxt.config.ts chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
package-lock.json chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
package.json chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
README.md chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
tsconfig.json chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00
vitest.config.ts chore(template): publish Landing.Nuxt 2026-10-11 23:24:06 +03:00

Landing / Marketing — Nuxt 3 (templates2)

A ready-to-run marketing site forked from templates2.Base.Nuxt: multi-page marketing, lead capture, a blog with RSS and full SEO artifacts — plus the whole base core (auth, roles, admin, mock payments/email, Docker, CI). Feature-parity with templates2.Landing.Next.

Quickstart

npm ci
cp .env.example .env          # SQLite + mock providers by default — no keys needed
npm run db:setup              # prisma db push + seed
npm run dev                   # http://localhost:3000

Admin account (seeded): admin@example.com / password.

Pages

/ · /features · /pricing · /blog + /blog/[slug] · /faq · /about · /contact · /legal/* · /admin/leads.

What this case adds over the base

  • Lead capture — POST /api/leads (public, zod-validated) persists to Lead and notifies the owner through the email provider (log by default, Resend from env). Used by the contact page and the footer newsletter.
  • Blog — a static post collection (shared/posts.ts) with tags, reading time and per-post metadata + Article JSON-LD; RSS at /rss.xml.
  • SEO — Organization/WebSite JSON-LD on home, FAQPage on /faq, and a sitemap covering every page and post.
  • Admin leads — a leads table in the admin shell.

Quality

node templates2/qa.mjs Landing.Nuxt

See ../CONTRACT.md for the Definition of Done.