- VitePress
^2.0.0-alpha.12- Static site generator for documentation and landing pages - Vue 3 - Component framework (with
<script setup>syntax) - Tailwind CSS
^4.1.16- Utility-first CSS framework - @tailwindcss/vite
^4.1.16- Vite plugin for Tailwind - shadcn-vue - UI component library built on Radix Vue
- TypeScript - Type-safe development
toolkit/
├── .vitepress/
│ ├── config.mts # VitePress configuration
│ └── theme/
│ ├── index.ts # Custom theme entry
│ ├── style.css # Global styles + Tailwind import
│ └── components/ # Theme-level components
│
├── components/
│ ├── ui/ # shadcn-vue components (auto-generated)
│ │ └── button/
│ ├── landing/ # Landing page sections
│ │ ├── Hero.vue
│ │ ├── Features.vue
│ │ └── CallToAction.vue
│ └── shared/ # Reusable components for both landing & docs
│
├── lib/
│ └── utils.ts # Utility functions (includes cn() for class merging)
│
├── docs/ # Documentation markdown files
│ ├── guide/
│ │ ├── getting-started.md
│ │ └── framework.md
│ └── reference/
│ └── case-studies.md
│
├── public/ # Static assets (images, fonts, etc.)
│ └── images/
│
└── index.md # Landing page (root)
@/*resolves totoolkit/*- Example:
import { Button } from '@/components/ui/button'
<script setup lang="ts">
import { Button } from '@/components/ui/button'
// Component logic here
</script>
<template>
<!-- Template here -->
</template>- Use utility classes directly in templates
- Use
cn()helper from@/lib/utilsto merge classes conditionally - Tailwind v4 syntax:
@import "tailwindcss"in CSS
- Install new components:
npx shadcn-vue@latest add <component-name> - Components auto-install to
toolkit/components/ui/ - Import from
@/components/ui/<component-name> - May need
/* @vue-ignore */for type extends (e.g., PrimitiveProps)
The index.md file uses layout: page and imports Vue components:
---
layout: page
---
<script setup>
import Hero from '@/components/landing/Hero.vue'
import Features from '@/components/landing/Features.vue'
</script>
<Hero />
<Features />components.json- shadcn-vue configurationtsconfig.json- TypeScript with path aliasestailwind.config.js- Tailwind configuration (for shadcn compatibility)toolkit/.vitepress/config.mts- VitePress config with Vite plugins and navigation
npm run dev- Start dev servernpm run build- Build for productionnpm run preview- Preview production build
When creating new landing page sections:
- Create Vue components in
toolkit/components/landing/ - Use TypeScript with
<script setup lang="ts"> - Import and use shadcn-vue components from
@/components/ui/ - Use Tailwind utility classes for styling
- Follow responsive design patterns (e.g.,
md:grid-cols-3) - Import new sections in
toolkit/index.md