Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A free Astro portfolio template with blog, dark mode, fuzzy search, RSS feed, and SEO-friendly structure.

Single-page HTML5 portfolio template for creative professionals, built with jQuery and Hammer.js.

Free multi-page Bootstrap 4 portfolio website template for creators with hero header, portfolio grid, and contact form.

Open-source portfolio template with neomorphic design built with pure HTML, SCSS, and JavaScript, featuring wow.js and Typed.js animations.

Grunge Mini is a free CSS template with dark brown grunge graphics and five horizontally sliding pages.
Astro Portfolio Template is a free, MIT-licensed portfolio starter built with Astro, React, and Tailwind CSS that gives developers a personal site with a blog, dark mode, fuzzy search, RSS feed, and SEO-friendly output. This template is maintained on GitHub by the user gio-del and can be opened directly in StackBlitz, CodeSandbox, or Codeanywhere from the repository readme.
The Astro Portfolio Template is a static site generator–based portfolio that takes your personal data from a single TypeScript file and outputs a responsive multi-section website: about, experience, education, projects, contact, and a blog. It runs on the Astro framework with React components for interactive parts, and it uses Tailwind CSS for styling. The template is designed for easy customization: you edit the src/data/info.ts file to update your information, and the included project structure separates data from view components.
ToggleDarkMode.jsx component switches between light and dark themes, stored in the user's preference.Search.tsx component uses Fuse.js to provide client-side fuzzy matching across posts, so readers can find content without a server.robots.txt and sitemap.xml in the public folder, and the BaseLayout.astro head section is meant to be edited for site metadata.rss.xml.js page in the pages directory generates an RSS feed using the astro-plugin-feed package; you set the site URL in astro.config.mjs.Hamburger.jsx component for mobile navigation, and layout components adapt across screen sizes.ProjectCarousel.tsx component to display portfolio projects in a scrollable format.src/data/info.ts; for the contact section, changes there must be mirrored in Contact.tsx to keep data separate from view.npm run dev starts a local server at localhost:4321, and npm run build outputs a production site to ./dist/.src/pages/posts/your-post-title.md and get a styled blog with fuzzy search and RSS without configuring a CMS.src/data/info.ts with your name, bio, links, and project details to produce a complete personal site.Blog.astro and Post.astro components render the index and individual posts, and Fuse.js powers the search.astro.config.mjs and the rss.xml.js page, readers can subscribe to your posts.npm run build then npm run preview to test the production build locally before deploying the dist output to any static host.The onboarding flow follows a standard Astro workflow: click the "Use this template" button on GitHub, create a new repo, clone it, run npm install to install dependencies, and then npm run dev to start the dev server at localhost:4321. After that, editing src/data/info.ts updates the site content, and changes to the contact section also require updating src/components/contact_section/Contact.tsx. Styling is controlled through tailwind.config.mjs in the project root.
Yes, the template is open source and licensed under the MIT License, so you can use, modify, and distribute it freely, including for commercial projects. The full license text is in the LICENSE file in the repository.
This template uses Tailwind CSS. To modify the color palette, edit the tailwind.config.mjs file at the root of the project. Global styles are in src/styles/global.css.
Yes, there is a blog section under src/pages/posts/. Posts are written as Markdown files, and the search feature in Search.tsx uses Fuse.js to provide fuzzy matching across post content without a backend.
Running npm run build outputs a production-ready static site to the ./dist folder. Because Astro generates static HTML, the output can be deployed to any static hosting service like Netlify, Vercel, or GitHub Pages.
Not yet. The "What's next" section in the readme lists internationalization (i18n) and a projects collection as planned features, and contributions are welcome via pull request.
