A clean, minimalist portfolio template built with Astro and TailwindCSS, featuring full internationalization support using @ariaskit/astro-i18n.
- 🌍 Multilingual Support - Built-in i18n with English, Spanish, and Portuguese
- ⚡ Astro 5 - Fast, modern static site generation
- 🎨 TailwindCSS 4 - Utility-first styling with dark mode
- 📱 Responsive Design - Mobile-first approach
- 🔍 SEO Optimized - Sitemap, meta tags
- 🚀 Zero JS by Default - Minimal JavaScript for optimal performance
- 📝 TypeScript - Full type safety throughout
- Framework: Astro
- Styling: TailwindCSS
- Icons: Lucide
- Internationalization: @ariaskit/astro-i18n
- Package Manager: pnpm
- Node.js 18+
- pnpm (recommended)
# Clone the repository
git clone https://github.com/JorgeRosbel/void.git
cd void
# Install dependencies
pnpm install
# Start development server
pnpm devYour site will be available at http://localhost:4321.
# Build for production
pnpm build
# Preview production build
pnpm previewThis template uses @ariaskit/astro-i18n for seamless multilingual support. The i18n system is configured for:
- English (
en) - Default locale - Spanish (
es) - Portuguese (
pt)
- Create a new JSON file in
/i18n/(e.g.,fr.json) - Copy the structure from
en.json - Add the new locale to
src/pages/[lang]/index.astroin thegetStaticPathsfunction - Update the i18n library configuration if needed
All translations are stored in /i18n/:
en.json- English translationses.json- Spanish translationspt.json- Portuguese translations
Each file contains the same structure with keys for:
- Navigation items
- Hero section content
- Project descriptions
- Experience details
- Contact information
void/
├── public/ # Static assets
├── src/
│ ├── assets/ # Images and static files
│ ├── components/ # Astro components
│ │ ├── Hero.astro
│ │ ├── Projects.astro
│ │ ├── Experience.astro
│ │ └── ...
│ ├── layouts/ # Page layouts
│ ├── pages/ # Route pages
│ │ ├── index.astro # Root redirect
│ │ └── [lang]/ # Localized pages
│ └── styles/ # Global styles
├── i18n/ # Translation files
├── astro.config.mjs # Astro configuration
└── package.json # Dependencies
Edit the translation files in /i18n/ to update:
- Personal name and title
- Project descriptions
- Experience details
- Contact information
The template uses TailwindCSS with a dark theme. Customize colors and styles in:
- Global CSS classes in components
- Tailwind configuration (if needed)
- Create new components in
/src/components/ - Add translation keys to all i18n files
- Import and use components in
/src/pages/[lang]/index.astro
Update astro.config.mjs to change:
- Site URL (
siteproperty) - Add/remove integrations
pnpm dev- Start development serverpnpm build- Build for production (includes i18n validation)pnpm preview- Preview production build
This template works great with:
- Vercel - Zero-config deployment
- Netlify - Simple static site hosting
- GitHub Pages - Free static hosting
- Cloudflare Pages - Global CDN
MIT License - feel free to use this template for your projects!
Contributions are welcome! Please feel free to submit a Pull Request.
Built with ❤️ using Astro and TailwindCSS