AstroReactPortfolio

Astro-Theme-Astroway — Astro Portfolio Template

By gio-del

Astro-Theme-Astroway is a personal portfolio template built on Astro and React, featuring sections for about, projects, blog, and contact, styled with Tailwind CSS, and including built-in dark mode, blog fuzzy search, RSS, and basic SEO files.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-02View source

What stands out

A quick read of the recorded project description.

01

Built with Astro and React, with components written in TypeScript

02

Homepage includes sections for about, education, experience, projects, blog, and contact

03

Styling controlled with Tailwind CSS, theme colors adjustable in tailwind.config.mjs

04

Built-in dark mode toggle and responsive layout

05

Blog supports fuzzy search based on Fuse.js and provides RSS subscription

06

Includes SEO-related files such as robots.txt and sitemap.xml

Template Details

Astro-Theme-Astroway is a personal portfolio template published on GitHub, maintained by gio-del under the MIT license. The template uses Astro as its primary framework, with some interactive components written in React and TypeScript, and styling based on Tailwind CSS.

The page structure covers common portfolio needs: the homepage includes about (education, experience), projects, blog, and contact sections. Blog posts are stored as Markdown files in the src/pages/posts directory, with an article list page and article detail layout. Personal data is maintained centrally in src/data/info.ts, while components such as project cards and carousel, and the contact form, are located under src/components.

In terms of features, the template provides dark mode toggle, responsive layout, blog fuzzy search based on Fuse.js, RSS subscription, and SEO-related files such as robots.txt and sitemap.xml. The README lists internationalization (i18n) and a Projects collection as to-dos, indicating these two are not yet implemented.

Usage limitations and notes: contact section data is maintained separately in both info.ts and Contact.tsx, so adding or removing entries requires synchronized changes; RSS requires setting the site address in astro.config.mjs and adjusting rss.xml.js in the pages directory; SEO information must be modified in the head section of BaseLayout.astro; theme colors are adjusted via tailwind.config.mjs in the root directory. Third-party assets such as demo images, fonts, and icons in the repository must be checked individually under their respective licenses.

AstroReactPortfolio

Is it right for your project?

Use Cases

  • Building a personal portfolio website to showcase educational background, work experience, and projects
  • Including a Markdown blog in the portfolio with article search and RSS subscription
  • Sites that want to use a mixed Astro and React tech stack with Tailwind CSS for custom styling
  • Static personal sites that require dark mode and responsive layout

Suitable For

  • Developers with basic npm and Astro knowledge who can modify configuration and components themselves
  • Personal portfolio or resume-style sites that need a quick start
  • Users who want to maintain blog content in Markdown

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Create a new repository via the repository's Use this template, clone it, and run npm install to install dependencies

  2. 2

    Run npm run dev to start the local development server, default address localhost:4321

  3. 3

    Fill in personal information in src/data/info.ts; when adding or removing contact section entries, synchronize changes in src/components/contact_section/Contact.tsx

  4. 4

    Set the site address in astro.config.mjs and adjust src/pages/rss.xml.js to generate correct RSS

  5. 5

    Modify SEO information in the head section of src/layouts/BaseLayout.astro, and adjust theme colors in tailwind.config.mjs

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under MIT license from the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Contact section data must be maintained separately in info.ts and Contact.tsx; when adding or removing entries, Contact.tsx must be synchronized, otherwise the page display will be inconsistent.
  • The RSS subscription feature requires manually setting the site URL in astro.config.mjs and adjusting rss.xml.js in the pages directory, otherwise the generated subscription link will be incorrect.
  • SEO information must be manually modified in the head section of src/layouts/BaseLayout.astro; the template does not automatically generate site-specific metadata.
  • Theme colors must be adjusted via tailwind.config.js in the root directory; the default styles will not automatically adapt to personal brand colors.
  • Internationalization (i18n) and the Projects collection are not yet implemented and are to-do features, not available in the current version.
  • Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses; they cannot be judged solely by the code's MIT license.
  • External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

If you add/remove something from the contact section in the `info.ts` file, you will need to update the `Contact.tsx` file located in the `src/components/contact_section` directory by simply reflecting the changes you made in the `info.ts` file.

Original README

Update the `site` entry in the `astro.config.mjs` file with your site url.

Original README

Modify the head section of the `BaseLayout.astro` file located in the `src/layouts` directory to reflect your site's information.

Original README

This portfolio template uses Tailwind CSS for styling. You can modify the colors used in the portfolio by updating the `tailwind.config.js` file located in the root of the project.

Original README

- [ ] Internationalization (i18n) - [ ] Projects collection

Original README
https://github.com/gio-del/Astro-Theme-Astroway/blob/main/LICENSEhttps://github.com/gio-del/Astro-Theme-Astroway/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-02. 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
GitHub
Documentation and maintenance reference score
More documented · 86 / 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
2025-01-24
Screenshot last checked
2026-10-02

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.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: f6e8e282ba051277ff62be8d50f8b7b96b9d913d38924a166068b856e3095c3b

2026-10-02T09:43:19.023Z

Source file / repository
# 1. Astro Portfolio Template

[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/gio-del/Astro-Portfolio-Template)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/gio-del/Astro-Portfolio-Template)
[![Open in Codeanywhere](https://codeanywhere.com/img/open-in-codeanywhere-btn.svg)](https://app.codeanywhere.com/#https://github.com/https://github.com/gio-del/Astro-Portfolio-Template)

## 1.1. Table of Contents

- [1. Astro Portfolio Template](#1-astro-portfolio-template)
  - [1.1. Table of Contents](#11-table-of-contents)
  - [1.2. Features :open\_hands:](#12-features-open_hands)
  - [1.3. What's next? :rocket:](#13-whats-next-rocket)
  - [1.4. How to use this template :toolbox:](#14-how-to-use-this-template-toolbox)
    - [1.4.1. Notes about the contact section :email:](#141-notes-about-the-contact-section-email)
    - [1.4.2. Notes about RSS feed :newspaper:](#142-notes-about-rss-feed-newspaper)
    - [1.4.3. Notes about SEO :robot:](#143-notes-about-seo-robot)
    - [1.4.4. Notes about styles :art:](#144-notes-about-styles-art)
  - [1.5. Project Structure :rocket:](#15-project-structure-rocket)
  - [1.6. Commands :genie\_man:](#16-commands-genie_man)
  - [1.7. Tools Used :hammer\_and\_wrench:](#17-tools-used-hammer_and_wrench)
  - [1.8. Contributing :building\_construction:](#18-contributing-building_construction)
  - [1.9. License :memo:](#19-license-memo)

## 1.2. Features :open_hands:

- Dark mode toggle
- Responsive design
- Easy to customize and extend personal data
- Fuzzy search for blog posts
- SEO friendly (robots.txt, sitemap.xml)
- RSS feed

## 1.3. What's next? :rocket:

- [ ] Internationalization (i18n)
- [ ] Projects collection
- Feel free to open an issue or submit a pull request with your ideas for improving this portfolio template (see [Contributing](#18-contributing-building_construction))

## 1.4. How to use this template :toolbox:

Note: this mini-guide assumes you have `npm` installed on your machine, if you don't, you can download it following the instructions [here](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)

1. Click on the "Use this template" button at the top of the repository.
2. Create a new repository based on this template.
3. Clone the repository to your local machine.
4. Install the dependencies by running `npm install`
5. You can now start the development server by running `npm run dev` (see this [section](#16-commands-genie_man) for more commands)
6. Now you can start customizing the portfolio template by updating the `/data/info.ts` file with your personal information.

### 1.4.1. Notes about the contact section :email:

If you add/remove something from the contact section in the `info.ts` file, you will need to update the `Contact.tsx` file located in the `src/components/contact_section` directory by simply reflecting the changes you made in the `info.ts` file. Although, this choice may seem redundant, it allows to separate the data from the view.

### 1.4.2. Notes about RSS feed :newspaper:

The RSS feed is generated using the `astro-plugin-feed` plugin.

To customize it:

1. Update the `site` entry in the `astro.config.mjs` file with your site url.
2. Modify the `rss.xml.js` file located in the `pages` directory to reflect your site's information.

### 1.4.3. Notes about SEO :robot:

Modify the head section of the `BaseLayout.astro` file located in the `src/layouts` directory to reflect your site's information.

### 1.4.4. Notes about styles :art:

This portfolio template uses Tailwind CSS for styling. You can modify the colors used in the portfolio by updating the `tailwind.config.js` file located in the root of the project.

## 1.5. Project Structure :rocket:

Inside of this portfolio template, you will find the following files and directories:

```text
.
├── astro.config.mjs
├── LICENSE
├── package.json
├── package-lock.json
├── public
│   ├── favicon.svg
│   ├── pic.jpg
│   └── Resume.pdf
├── README.md
├── src
│   ├── components
│   │   ├── about_section
│   │   │   ├── About.tsx
│   │   │   ├── Education.tsx
│   │   │   └── Experience.tsx
│   │   ├── contact_section
│   │   │   └── Contact.tsx
│   │   ├── navbar
│   │   │   ├── Hamburger.tsx
│   │   │   └── Nav.jsx
│   │   ├── post_section
│   │   │   ├── Blog.astro
│   │   │   └── Post.astro
│   │   ├── projects_section
│   │   │   ├── ProjectCard.tsx
│   │   │   └── ProjectCarousel.tsx
│   │   ├── search
│   │   │   └── Search.tsx
│   │   ├── ToggleDarkMode.jsx
│   │   └── TopButton.jsx
│   ├── data
│   │   └── info.ts
│   ├── env.d.ts
│   ├── layouts
│   │   ├── BaseLayout.astro
│   │   └── PostLayout.astro
│   ├── pages
│   │   ├── index.astro
│   │   ├── posts
│   │   │   └── your-post-title.md
│   │   └── posts.astro
│   └── styles
│       └── global.css
├── tailwind.config.mjs
└── tsconfig.json
```

## 1.6. Commands :genie_man:

All commands are run from the root of the project, from a terminal:

| Command                   | Action                                           |
| :------------------------ | :----------------------------------------------- |
| `npm install`             | Installs dependencies                            |
| `npm run dev`             | Starts local dev server at `localhost:4321`      |
| `npm run build`           | Build your production site to `./dist/`          |
| `npm run preview`         | Preview your build locally, before deploying     |
| `npm run astro ...`       | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI                     |

## 1.7. Tools Used :hammer_and_wrench:

This portfolio template uses the following tools/libraries/resources:

- [Astro](https://astro.build/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Font Awesome](https://fontawesome.com/)
- [React](https://reactjs.org/)
- [TypeScript](https://www.typescriptlang.org/)
- [Fuse.js](https://fusejs.io/)

## 1.8. Contributing :building_construction:

If you would like to contribute to the Astro Portfolio Template, follow these steps:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and commit them.
4. Push your changes to your forked repository.
5. Submit a pull request to the main repository.

Thank you very much for your contributions!

See the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information.

## 1.9. License :memo:

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.