- Duplicate the
.env.examplefile to a new.envfile, and update the environment variables
cp .env.example .env- Install dependencies
pnpm install- Development
# Run the development server
pnpm devTo test the production build locally, run the following commands:
pnpm run build:node
pnpm run previewInside the project, you'll see the following folders and files:
/
├── components.json # Component registry/configuration
├── package.json
├── public/ # Static assets (served at site root)
├── scripts/ # Utility scripts for development
│ └── generate-routes.ts
├── src/ # Main source code
│ ├── content.config.ts # Astro content configuration (https://docs.astro.build/en/guides/content-collections/)
│ ├── routes.gen.ts # Auto-generated routes for improved type safety
│ ├── @types/ # TypeScript custom type definitions
│ ├── assets/ # Source assets (images, etc.)
│ ├── components/ # Astro/React UI components (basics are from shadcn/ui)
│ ├── content/ # Content files (e.g., markdown, data)
│ ├── generated-assets/ # Helper to automatically generate assets (og-image, marketing posts)
│ ├── hooks/ # Custom hooks
│ ├── i18n/ # Internationalization files
│ ├── layouts/ # Layout components/templates
│ ├── lib/ # Utility libraries/helpers
│ ├── pages/ # Astro/MDX pages (routes)
│ ├── schemas/ # Content schemas
│ └── styles/ # Global and component styles
Astro looks for .astro or .md files in the src/pages/ directory. Each page is exposed as a route based on its file name.
There's nothing special about src/components/, but that's where we like to put any Astro/React components.
Any static assets, like images, can be placed in the public/ directory.

