Astro Configuration
The Astro configuration file defines how the portfolio website is built, including internationalization, integrations, and build optimizations.Overview
Located inastro.config.mjs, this configuration file sets up:
- Multi-language support (Spanish and English)
- Tailwind CSS integration
- Build optimizations and minification
- Vite-specific settings
Full Configuration
Integrations
Tailwind CSS Integration
Array of Astro integrations to enable
@astrojs/tailwind integration is configured with:
Disables Tailwind’s base/reset styles, giving full control over default styling
Setting
applyBaseStyles: false prevents Tailwind from injecting its default reset styles (like removing margins, setting font sizes, etc.). This is useful when you want more control over base styling or are using custom CSS resets..astro files:
Internationalization (i18n)
Configuration
Default Locale
The default language for the website. Spanish (
es) is used as the primary locale.- Fallback language when translations are missing
- Default language for content and UI
- Base locale for URL routing
Supported Locales
Array of supported language codes
es: Spanish (Español)en: English
src/i18n/utils.ts:1:
Routing Configuration
When
true, even the default locale (es) gets a URL prefixprefixDefaultLocale: true:
prefixDefaultLocale: false):
If set to false, the default locale would not have a prefix:
Language Detection Flow
- User navigates to a URL (e.g.,
/en/#about) getLangFromUrl()extracts language from URL path (src/i18n/utils.ts:245)useTranslations()creates translation function for that language (src/i18n/utils.ts:251)- Component renders with appropriate translations
Vite Configuration
Astro uses Vite as its build tool. Thevite section configures build optimizations:
CSS Minification
Uses esbuild for fast CSS minification during production builds
- Faster build times compared to other minifiers
- Removes whitespace, comments, and optimizes CSS
- Reduces final CSS bundle size
JavaScript Minification
Uses Terser for JavaScript minification with advanced compression options
Terser Options
Advanced compression settings for production builds
drop_console
drop_console
Value:
Effect: Removes all
trueEffect: Removes all
console.* calls from production codeThis improves performance and prevents debug messages from appearing in production.
drop_debugger
drop_debugger
Value:
Effect: Removes all
trueEffect: Removes all
debugger statements from production codePrevents accidental debugger breakpoints in production builds.
Build Process
Development Mode
- No minification applied
- Console logs and debuggers remain
- Hot module replacement (HMR) enabled
- Fast refresh for instant updates
Production Build
- CSS minified with esbuild
- JavaScript minified with Terser
console.*calls removeddebuggerstatements removed- Optimized for performance
Preview
Integration with Source Code
The configuration works seamlessly with the i18n utilities:- Astro routing recognizes
/en/based oni18n.locales - The page is served from
src/pages/en/index.astro getLangFromUrl()extracts'en'from the URL- Translations render in English
Dependencies
The configuration requires these packages (from package.json:11):astro
Version: ^5.7.10
Core framework for building the site
Core framework for building the site
@astrojs/tailwind
Version: ^6.0.2
Official Tailwind integration for Astro
Official Tailwind integration for Astro
tailwindcss
Version: ^3.4.17
Utility-first CSS framework
Utility-first CSS framework
terser
Version: ^5.46.0
JavaScript minifier for production builds
JavaScript minifier for production builds
Best Practices
Build OutputThe optimized build outputs to the
dist/ directory, ready for static hosting on platforms like Vercel, Netlify, or Cloudflare Pages.Related Files
astro.config.mjs: Configuration file (astro.config.mjs:1)tailwind.config.mjs: Tailwind configuration (tailwind.config.mjs:1)src/i18n/utils.ts: i18n utilities (src/i18n/utils.ts:1)package.json: Dependencies (package.json:1)