Nuxtify.dev is the content-driven marketing site for the Nuxtify framework. This repository contains the source code for nuxtify.devβa progressive, modern, and highly-customizable boilerplate framework to launch products in minutes.
Nuxtify is built using Nuxt 4 and Vuetify 3, pre-integrated with powerful developer tools, styling libraries, and serverless hosting capabilities:
- UI & Theme: Vuetify v3 for material design with custom thematic settings.
- Content Engine: Nuxt Content v3 for markdown-driven dynamic pages, blog posts, topics, and authors.
- Backend & Deployments: NuxtHub (Drizzle ORM + SQLite/Cloudflare D1 database).
- Static Analysis: ESLint paired with
mdclintfor unified JavaScript/TypeScript/Vue/Markdown validation. - SEO & Accessibility: Structured JSON-LD schema generation via
nuxt-schema-org, dynamic XML sitemaps, robots.txt, and accessibility validation via@nuxt/a11y.
nuxtify.dev/
βββ app/ # Main Nuxt application directory
β βββ app.config.ts # App branding, footer links, and global configuration
β βββ utils/
β βββ contentSchemas.ts # Zod schema definitions for content collections
βββ content/ # Markdown content files (.md)
β βββ about.md
β βββ index.md
βββ layers/ # Extensible Nuxt Layers
β βββ cms/
β βββ nuxt.config.ts # CMS specific layer settings
βββ public/ # Static assets (favicon, logos, images)
βββ server/ # Backend API & Server Routes (TypeScript)
βββ content.config.ts # Nuxt Content v3 collection configurations
βββ eslint.config.mjs # ESLint configuration incorporating markdown linting (mdclint)
βββ nuxt.config.ts # Core Nuxt configuration and modules
βββ redirects.config.ts # Centralized Nitro route rules and redirects
βββ sitemap.utils.ts # Dynamic sitemap exclusion generator for draft content
βββ vuetify.config.ts # Vuetify custom branding, components, and defaults
βββ wrangler.jsonc # Cloudflare Wrangler routing configurations
- Modules Loaded:
@nuxt/content(v3)@nuxt/a11y@nuxt/eslint@nuxthub/core@nuxtify/cms
- Database Engine: NuxtHub configured with SQLite (
driver: 'd1',dialect: 'sqlite'). - Route Rules & ISR: Incremental Static Regeneration (
isr: true) is enabled for all paths (/**,/articles/**,/topics/**,/contributors/**).
- Theme Palette:
primary:#020420(Dark Navy)secondary:#00DC82(Nuxt Green)
- Component Defaults:
VBtnhas been configured withrounded: 0(flat, modern sharp corners).
The project utilizes Nuxt Content v3's structured collection capabilities. Collections map to schema rules inside app/utils/contentSchemas.ts:
pages(content/*.md): Basic structure utilizingpageSchema(supporting custom image, aligned layouts, published dates).contributors(content/contributors/*.md): Biographies and social URLs matchingcontributorSchema.articles(content/articles/*.md): Blog articles/announcements mapped viaarticleSchema.topics(content/topics/*.md): Tags, categorizations, and topics matchingtopicSchema.
All content collections implicitly support standard SEO fields (robots, sitemap, schemaOrg).
Use the following commands to install dependencies, run the application locally, and prepare production builds:
| Task | Command | Description |
|---|---|---|
| Setup | npm install |
Install all workspace npm dependencies |
| Development | npm run dev |
Start local development server with hot-reload at http://localhost:3000 |
| Build | npm run build |
Build the Nuxt application for Cloudflare/NuxtHub production deployment |
| Static Gen | npm run generate |
Pre-render every route to static HTML files |
| Preview | npm run preview |
Locally preview the built production/static assets |
| Lint Check | npm run lint |
Run ESLint and Markdown validation on the codebase |
| Lint Fix | npm run lint:fix |
Automatically fix lint and style violations |
-
Coding Style & Linting:
- Stylistic rules demand comma-dangles to always be present (
always-multiline). - Standard 1TBS (One True Brace Style) must be used.
- ESLint is configured to restrict consecutive empty lines to a maximum of 1 (
@stylistic/no-multiple-empty-lines). - TypeScript's
anytype is allowed, but strongly discouraged.
- Stylistic rules demand comma-dangles to always be present (
-
Markdown Conventions (
mdclint):- Headings, lists, and paragraphs are verified via the
preset: 'mdc'. - Custom configurations enforce underscores (
_) for italics/emphasis. - Inline Vue components can be seamlessly loaded within markdown (e.g.,
::v-alert{color="green"}...::).
- Headings, lists, and paragraphs are verified via the
-
Draft Exclusion Workflow (
sitemap.utils.ts):- Markdown files in the
content/folder marked with frontmatter propertydraft: trueare dynamically excluded from the generated XML sitemaps to prevent indexing of unfinished documents.
- Markdown files in the
-
Branding Parameters:
- Modifying core application titles, menus, footer navigation, or support emails should be done within
app/app.config.tsunder thenuxtifyattribute block.
- Modifying core application titles, menus, footer navigation, or support emails should be done within