Astro configuration
The main configuration file isastro.config.mjs, which defines how your project builds and deploys.
Complete configuration
astro.config.mjs
Configuration breakdown
Output mode
- Pages are rendered on-demand per request
- You can use server-side logic and data fetching
- API routes function as serverless functions
- Dynamic content is fully supported
Alternatively, you could use
output: 'static' for a fully static site, or output: 'hybrid' to mix static and server-rendered pages.Vite plugins
@tailwindcss/vite) for styling. This integration:
- Processes Tailwind CSS during the build
- Enables JIT (Just-In-Time) compilation for faster builds
- Automatically handles CSS optimization and purging
- Works seamlessly with Vite’s hot module replacement (HMR)
Vercel adapter
- Converts your Astro site to Vercel serverless functions
- Handles routing and static asset optimization
- Enables edge runtime capabilities
- Configures build output for Vercel’s infrastructure
Tailwind CSS setup
Velaria uses Tailwind CSS v4 with the modern Vite plugin integration.Dependencies
package.json
Tailwind plugins
Velaria enhances Tailwind with additional plugins:tailwindcss-animated
Adds animation utilities for creating smooth, performant animations without custom CSS.
tailwindcss-intersect
Provides utilities for intersection observer-based animations and visibility detection.
@tailwindplus/elements
Extends Tailwind with pre-built UI component styles and design patterns.
Tailwind CSS v4 uses a new configuration system. Instead of
tailwind.config.js, configuration is handled via CSS @theme directives in your stylesheets.TypeScript configuration
Velaria uses TypeScript for type safety and better developer experience.tsconfig.json
tsconfig.json
Configuration options
Base configuration
Compiler options
-
strict: false: Disables strict type checking. You can enable this for more rigorous type safety: -
moduleResolution: "bundler": Uses modern bundler-style module resolution, matching Vite’s behavior. -
types: ["astro/client"]: Includes Astro’s client-side type definitions forimport.meta.envand other runtime features.
Build settings
Velaria’s build process is configured through npm scripts inpackage.json.
Available scripts
package.json
Script usage
Development server
- Hot module replacement (HMR)
- Fast refresh for instant updates
- TypeScript type checking
- Default port: 4321
Production build
- Compiles TypeScript to JavaScript
- Processes Tailwind CSS and optimizes styles
- Bundles and minifies assets
- Generates Vercel serverless functions
- Outputs to the
dist/directory
Preview server
- Uses the built files from
dist/ - Simulates production environment
- Useful for final testing before deployment
The preview server doesn’t exactly replicate Vercel’s environment. Use
vercel dev for a more accurate local testing experience.Project dependencies
Velaria’s full dependency list frompackage.json:
package.json
Core dependencies
astro (^5.16.6)
The core Astro framework providing the build system, routing, and server-side rendering capabilities.
UI enhancements
- sweetalert2: Beautiful, responsive popup boxes for alerts and confirmations
- tailwindcss-animated: Animation utilities for smooth transitions
- tailwindcss-intersect: Intersection observer utilities for scroll-based animations
- @tailwindplus/elements: Pre-built UI component styles
Module system
package.json
- Use
importandexportinstead ofrequire()andmodule.exports - All
.jsfiles are treated as ES modules - Configuration files use
.mjsextension when needed for clarity
Astro v5 requires ES modules. Ensure all your dependencies support ESM or provide ESM builds.
Customizing configuration
Adding integrations
To add new Astro integrations:astro.config.mjs:
Vite configuration
You can extend Vite configuration withinastro.config.mjs:
