Static generation based on Astro, with React handling interactive components
Polaris — Astro Portfolio Template
By educlopez
Polaris is a personal portfolio template based on Astro and React, using Markdown/MDX to manage project content, suitable for designers and developers to build static portfolio sites.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Project content managed as Markdown/MDX files in src/content/projects/
Site information centralized in src/config/site.json for easy modification of personal details and social links
Uses Tailwind CSS, Radix UI, Lucide, etc. for building interfaces and icons
Includes CI workflows and Vercel deployment configuration; build output can be deployed to any static hosting
Repository is under MIT license, allowing free use, modification, commercial use, and distribution
Template Details
Polaris is a personal portfolio template published by Eduardo Calvo on GitHub, using Astro as the static site generator and incorporating React for interactive components. The template has a clear positioning: it provides a starting point for designers, developers, and other creative professionals to showcase their projects. The page structure includes a homepage and dynamic project detail pages. Project content is stored as Markdown/MDX files in the src/content/projects/ directory, while site-level information (personal bio, contact details, social links, experience timeline, project grid layout, etc.) is maintained centrally in src/config/site.json.
Technically, the template uses Tailwind CSS for styling, Lucide for icons, Radix UI for accessible component foundations, Class Variance Authority for managing component variants, Sharp for image optimization, Biome for code linting and formatting, and TypeScript for type support. The repository includes CI workflows and Vercel deployment configuration. The build output is static files, deployable to Vercel, Netlify, GitHub Pages, or other static hosting services.
Regarding usage limitations, the template requires Node.js 22.12 or higher, and pnpm is recommended for installing dependencies; the development server runs on localhost:4321 by default. The repository is under the MIT license, allowing free use, modification, commercial use, and distribution of this version of the code. However, third-party assets such as demo images, fonts, and icons require separate license verification. External services like domains and hosting may incur costs. The framework version numbers mentioned in the README have not been individually verified against the dependency list and are not detailed here.
Is it right for your project?
Use Cases
- Designers or developers building personal portfolio websites to showcase project cases and personal experience
- Maintaining project detail pages with Markdown/MDX to reduce repetitive page writing
- As a starter project for the Astro + React + Tailwind combination, adjusting styles and content on this basis
- Deploying to static hosting services like Vercel, Netlify, or GitHub Pages
Suitable For
- Designers, developers, or creative professionals who need to quickly build a personal portfolio
- Users familiar with Markdown and front-end build tools, willing to modify configuration and styles themselves
- Developers who prefer a static site approach and want to control hosting and deployment themselves
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node.js 22.12 or higher; pnpm is recommended for installing dependencies
- 2
After cloning the repository, run pnpm install, then pnpm dev to start the local development server (default localhost:4321)
- 3
Site information is modified in src/config/site.json; project content is added to the src/content/projects/ directory
- 4
Build command is pnpm build, output to ./dist/, deployable to any static hosting service
- 5
Code is under MIT license, but third-party assets such as demo images, fonts, and icons require separate license verification
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under MIT license in the public repository; the free scope is limited to this version of the code and does not imply that external services or third-party assets are free.
Must comply with when using
- Permits free use, modification, commercial use, and distribution of this version of the code.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- Code is provided as-is; warranties and liability limitations are governed by the original license and applicable law.
Additional costs & items to verify
- Using this template requires Node.js 22.12 or higher locally; lower versions cannot run the Astro 7 build process.
- The README recommends pnpm as the package manager; if switching to npm or yarn, dependency installation and script commands need to be adjusted accordingly.
- The local development server uses port 4321 by default; if the port is occupied, configuration must be modified.
- The template build output is static files; deployment requires preparing a static hosting service, and domains and hosting may incur external costs.
- Demo images, fonts, icons, and other third-party assets require license verification according to their respective licenses; they cannot be judged solely based on the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Node.js (version 22.12 or higher — required by Astro 7)
Original README
pnpm (recommended)
Original README
Open your browser and navigate to `http://localhost:4321`
Original README
https://github.com/educlopez/Polaris/blob/main/LICENSE.mdhttps://github.com/educlopez/Polaris/blob/main/README.mdThis project can be deployed to any static hosting service:
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- Astro Themes
- Documentation and maintenance reference score
- More documented · 92 / 100
- Technologies
- Astro · React
- Website type
- Portfolio
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-07-31
- Screenshot last checked
- 2026-10-03
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-04
Inspect the recorded source material
SHA-256: 820159815691ece80a6e5af870d52ee07c8c7ed19e6c842c873cb1296c0e0476
2026-10-03T15:58:22.559Z
Source file / repository
<p align="center">
<h1 align="center"><b>Polaris</b></h1>
<p align="center">
A modern, responsive personal portfolio template built with <a href="https://astro.build">Astro 7</a>.
<br />
<br />
<a href="https://github.com/educlopez/Polaris/actions/workflows/ci.yml"><img src="https://github.com/educlopez/Polaris/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
<br />
<br />
<a href="#whats-included"><strong>What's included</strong></a> ·
<a href="#prerequisites"><strong>Prerequisites</strong></a> ·
<a href="#getting-started"><strong>Getting Started</strong></a> ·
<a href="#how-to-use"><strong>How to use</strong></a> ·
<a href="#customization"><strong>Customization</strong></a>
</p>
</p>
Everything you need to build a stunning personal portfolio website. Polaris is an opinionated Astro template designed for designers and developers who want to showcase their work with a clean, modern aesthetic. Built with performance and user experience in mind, it provides a solid foundation that grows with your career.
## What's included
[Astro 7](https://astro.build/) - Static site generator (Vite 8 / Rolldown, Rust compiler, Sätteri markdown)<br>
[React](https://reactjs.org/) - Interactive components<br>
[Tailwind CSS](https://tailwindcss.com/) - Utility-first styling<br>
[Lucide](https://lucide.dev/) - Beautiful icon library<br>
[TypeScript](https://www.typescriptlang.org/) - Type safety<br>
[MDX](https://mdxjs.com/) - Enhanced markdown for content<br>
[Sharp](https://sharp.pixelplumbing.com/) - Image optimization<br>
[Class Variance Authority](https://cva.style/) - Component variant management<br>
[Radix UI](https://www.radix-ui.com/) - Accessible component primitives<br>
[Biome](https://biomejs.dev/) - Fast linter & formatter<br>
## Directory Structure
```
.
├── public/ # Static assets
│ ├── favicon.svg # Site favicon
│ └── image.png # Hero image
├── src/
│ ├── components/ # Reusable components
│ │ ├── ui/ # UI components (buttons, dropdowns, etc.)
│ │ ├── fade.astro # Fade animation component
│ │ └── listProjects.astro # Project listing component
│ ├── config/
│ │ └── site.json # Site configuration and content
│ ├── content/
│ │ └── projects/ # Project markdown files and images
│ ├── layouts/
│ │ └── Layout.astro # Main layout component
│ ├── lib/
│ │ └── utils.ts # Utility functions
│ ├── pages/
│ │ ├── index.astro # Homepage
│ │ └── projects/ # Dynamic project pages
│ └── styles/
│ └── global.css # Global styles
├── astro.config.mjs # Astro configuration
├── components.json # UI components configuration
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── vercel.json # Vercel deployment configuration
```
## Prerequisites
Node.js (version 22.12 or higher — required by Astro 7)<br>
pnpm (recommended)<br>
Git<br>
## Getting Started
Clone this repo locally with the following command:
```bash
git clone <repository-url>
cd polaris
```
1. Install dependencies using pnpm:
```sh
pnpm install
```
2. Start the development server:
```sh
pnpm dev
```
3. Open your browser and navigate to `http://localhost:4321`
## How to use
This template is designed to be a starting point for your personal portfolio. It includes everything you need to showcase your work professionally while maintaining excellent performance and user experience.
### Key Features
- **Modern Tech Stack**: Built with Astro for optimal performance and React for interactive components
- **Responsive Design**: Fully responsive layout that looks great on all devices
- **Project Showcase**: Dynamic project pages with detailed case studies using MDX
- **Clean Design**: Minimalist aesthetic with smooth transitions and interactions
- **Content Management**: Markdown-based content for easy updates and maintenance
- **Performance Optimized**: Static site generation with optimized images and assets
- **Accessible**: Built with accessibility in mind using Radix UI primitives
### Available Scripts
| Command | Action |
| :--------------- | :----------------------------------------------- |
| `pnpm dev` | Starts local dev server at `localhost:4321` |
| `pnpm build` | Build your production site to `./dist/` |
| `pnpm preview` | Preview your build locally, before deploying |
| `pnpm check` | Type-check the project with `astro check` |
| `pnpm lint` | Lint & format check with Biome |
| `pnpm lint:fix` | Apply safe Biome lint/format fixes |
| `pnpm format` | Format the codebase with Biome |
| `pnpm astro ...` | Run CLI commands like `astro add`, `astro check` |
## Customization
### Site Configuration
Update `src/config/site.json` to modify:
- Personal information and bio
- Contact details and social links
- Professional experience timeline
- Project grid layout preferences
- Company information and specialties
### Adding Projects
1. Create a new markdown file in `src/content/projects/`
2. Add project images to `src/content/projects/images/`
3. Use the existing project structure as a template with frontmatter for metadata
### Styling
- Global styles are in `src/styles/global.css`
- Component-specific styles use Tailwind CSS classes
- Smooth transitions and interactions built with CSS
- UI components follow a consistent design system
### Deployment
This project can be deployed to any static hosting service:
- **Vercel**: Connect your repository for automatic deployments
- **Netlify**: Drag and drop the `dist` folder or connect your repository
- **GitHub Pages**: Use GitHub Actions for automated deployment
- **Any static hosting**: Upload the contents of the `dist` folder
## Recognition
Built with ❤️ by [Eduardo Calvo](https://github.com/educlopez) - UI Designer & Frontend Developer based in Madrid, Spain.
Explore similar templates
Compare previews and descriptions within the same stack and category.

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio

astro-nano
Astro Nano is a static, minimalist portfolio and blog template built with Astro, Tailwind, and TypeScript without frontend frameworks. It includes light/dark themes, animated UI, automatic sitemap and RSS feed generation, and Markdown/MDX support with component imports.
Astro · Portfolio

astro-erudite
astro-erudite is an opinionated, unstyled static blog template built with Astro and native CSS, with no UI or CSS framework and minimal dependencies.
Astro · Portfolio

astro-sphere
Astro Sphere is a static, minimalist portfolio and blog theme maintained by markhorn-dev, built mainly with Astro, Tailwind, and TypeScript, with a small amount of SolidJS for stateful components.
Astro · Portfolio

astro-micro
Astro Micro is a framework-free blog and portfolio theme for Astro, forked from Astro Nano. It adds Pagefind search and Giscus comments while retaining type safety, sitemap, RSS, Markdown and MDX support, and TailwindCSS with system, light, and dark themes.
Astro · Portfolio
