AstroReactPortfolio

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.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-03View source

What stands out

A quick read of the recorded project description.

01

Static generation based on Astro, with React handling interactive components

02

Project content managed as Markdown/MDX files in src/content/projects/

03

Site information centralized in src/config/site.json for easy modification of personal details and social links

04

Uses Tailwind CSS, Radix UI, Lucide, etc. for building interfaces and icons

05

Includes CI workflows and Vercel deployment configuration; build output can be deployed to any static hosting

06

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.

AstroReactPortfolio

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. 1

    Requires Node.js 22.12 or higher; pnpm is recommended for installing dependencies

  2. 2

    After cloning the repository, run pnpm install, then pnpm dev to start the local development server (default localhost:4321)

  3. 3

    Site information is modified in src/config/site.json; project content is added to the src/content/projects/ directory

  4. 4

    Build command is pnpm build, output to ./dist/, deployable to any static hosting service

  5. 5

    Code is under MIT license, but third-party assets such as demo images, fonts, and icons require separate license verification

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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

This project can be deployed to any static hosting service:

Original README
https://github.com/educlopez/Polaris/blob/main/LICENSE.mdhttps://github.com/educlopez/Polaris/blob/main/README.md

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
![hero](public/image.png)

<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.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.