Model or dataset
RyanFitzgerald/devportfolio avatar
RyanFitzgerald/devportfolio

DevPortfolio: A Config-Driven Astro and Tailwind CSS Portfolio Template

A modern, minimalist portfolio template built with Astro and Tailwind CSS. Perfect for developers looking to showcase their skills, experience, and projects in a clean, professional way.

4,980 stars4,166 forksAstroMIT

At a glance

What is it?
DevPortfolio is an Astro 5 and Tailwind CSS 4 template for developer portfolios. The entire site is controlled from a single src/config.ts file, and sections that have no data are hidden automatically without template edits.
Who is it for?
Developers who want a working portfolio site without building layout components from scratch will find DevPortfolio the fastest path to a deployed result. The entire configuration surface is a single TypeScript file, and the README documents the exact shape of every section.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 139 days ago.
What is it written in?
Mainly Astro, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

One TypeScript File Controls the Entire Portfolio

DevPortfolio solves the problem of building a personal portfolio from scratch by providing a template where all content is defined in a single configuration file: src/config.ts. The README describes the template as 'entirely ready to go with a quick config edit.'

The audience is developers who want a professional-looking portfolio without writing layout code. The template includes predefined sections for personal information, social links, about text, skills, projects, work experience, and education. Any section without data in the config is hidden entirely from the rendered site, which means a developer can omit experience or education entries without touching the Astro component files.

The README notes that the project was completely rebuilt from the prior version. This is version 2, built with Astro 5 and Tailwind CSS v4. The older approach of editing HTML directly has been replaced by the config-driven model.

Project Structure and the src/config.ts Layout

The repository structure listed in the README has these key paths:

code
devportfolio/
├── public/
│   └── favicon.svg
├── src/
│   ├── components/
│   │   ├── About.astro
│   │   ├── Education.astro
│   │   ├── Experience.astro
│   │   ├── Footer.astro
│   │   ├── Header.astro
│   │   ├── Hero.astro
│   │   └── Projects.astro
│   ├── pages/
│   │   └── index.astro
│   ├── styles/
│   │   └── global.css

Each section has its own Astro component, and the main page layout is in src/pages/index.astro. The global accent color is set in src/config.ts with the accentColor property, and changing it updates the theme across the entire site.

The package.json shows the build toolchain: [email protected], [email protected], and @tailwindcss/vite for integration with Astro's Vite-based build. Icons come from Tabler Icons via the @tabler dependencies.

The repository also ships a CLAUDE.md and a .cursor/rules directory, which the README describes as providing 'easy integration with your existing AI workflows.' These files give AI coding assistants context about the project structure.

Cloning, Configuring, and Running DevPortfolio Locally

Clone and install:

code
git clone https://github.com/RyanFitzgerald/devportfolio.git
cd devportfolio
npm install

Start the Astro development server:

code
npm run dev

The README shows the exact data shapes for each config section. For basic information:

typescript
name: "Your Name",
title: "Your Job Title",
description: "Brief site description",
accentColor: "#1d4ed8",

For a project entry:

typescript
projects: [
  {
    name: "Project Name",
    description: "Brief description of what the project does and its impact",
    link: "https://github.com/yourusername/project",
    skills: ["React", "Node.js", "AWS"],
  }
]

For a work experience entry:

typescript
experience: [
  {
    company: "Company Name",
    title: "Your Job Title",
    dateRange: "Jan 2022 - Present",
    bullets: [
      "Led development of microservices architecture serving 1M+ users",
    ],
  }
]

Building the site for deployment runs:

code
npm run build

Deployment Options: Netlify, Vercel, GitHub Pages, and Cloudflare

DevPortfolio is a static site and deploys to any static hosting provider. The README lists five options with links to Astro's deployment guides: Netlify, Vercel, GitHub Pages, Cloudflare Pages, and Render. All five can host a static Astro site for free.

GitHub Pages requires configuring the Astro site parameter in astro.config.mjs to match the repository name, because GitHub Pages serves projects at a subdirectory by default. The README links to Astro's GitHub Pages guide rather than explaining this inline.

The template does not include server-side rendering, so it cannot be deployed as an Astro server application without additional configuration. It is a fully static export.

What DevPortfolio Does Not Include

DevPortfolio has no blog. Developers who want to publish articles alongside their portfolio must add a content collection to the Astro project themselves. Astro's own documentation covers content collections, but DevPortfolio does not scaffold one.

There is no contact form or server-side functionality. Adding a contact form would require either a third-party form service like Formspree, or converting the Astro site to use server-side rendering with a backend endpoint.

There is no dark mode toggle in the template. The accent color is a single CSS custom property defined in src/config.ts, but the template does not ship with a dark theme variant out of the box.

The CHANGELOG.md in the repository root documents changes between template versions. The repository has no GitHub releases, so version tracking requires reading that file directly.

The template also does not include search engine optimization metadata management beyond what Astro handles by default. There is no sitemap plugin or robots.txt configuration in the repository. Developers who care about SEO will need to add astro-sitemap or configure the Astro sitemap integration themselves after cloning.

There is no internationalization (i18n) support. The template assumes a single language. Adding support for multiple languages requires either the Astro i18n routing configuration or a third-party integration, neither of which is included in the starter template. The Tabler Icons library used for social and navigation icons is imported as a dependency in package.json, but the README does not document the full list of icons used. Adding new icons requires browsing the Tabler library at tabler.io/icons and importing the specific icon component into the relevant Astro file.

DevPortfolio vs Other Portfolio Templates

The related search data for DevPortfolio surfaces similar repositories: Ashutosh1919's masterPortfolio, which is a React-based template, and various Next.js portfolio templates. The key difference in approach is the framework: DevPortfolio is built with Astro, which generates a fully static site by default and ships zero JavaScript to the browser unless a component requires interactivity. React-based portfolio templates typically ship the full React runtime, which adds to initial page load.

Astro's partial hydration model means that a DevPortfolio deployment sends only the markup and styles the page needs. For a portfolio, which is mostly static text and links, this is a good fit. The trade-off is that extending DevPortfolio with interactive components requires understanding Astro's island architecture, which is more involved than adding a React component to a React-based template.

The template includes CLAUDE.md and .cursor/rules to assist AI coding tools with project-specific context, which is a differentiator not found in most competing portfolio templates.

Maintenance History, License, and AI Workflow Files

The last push to the repository was on 2026-05-14. The repository has no GitHub releases; the CHANGELOG.md records version history. The license is MIT, which permits free use in commercial and personal deployments.

The package.json specifies [email protected] and [email protected]. Tailwind CSS v4 introduced breaking changes from v3, so projects that started with Tailwind v3 syntax cannot copy utility classes from v3 references without checking compatibility.

The README directs questions to the author's X (formerly Twitter) account. There is no issue tracker link in the README for bug reports, and the CONTRIBUTING.md is not mentioned, so the primary support channel for adopters is the author's social media.

Editorial conclusion

Developers who want a working portfolio site without building layout components from scratch will find DevPortfolio the fastest path to a deployed result. The entire configuration surface is a single TypeScript file, and the README documents the exact shape of every section. Developers who need a CMS, a blog, or a contact form will need to extend it, because those features are not included. The last push to the repository was on 2026-05-14. Before deploying, check that the Astro version in package.json is still receiving security patches and that Tailwind CSS v4's utility class names match any customizations made during development.

Frequently asked questions

How do I add a blog to DevPortfolio?

DevPortfolio does not include a blog section. To add one, you would need to set up an Astro content collection in the src/ directory and add a new page route in src/pages/. Astro's documentation covers content collections, but this is not scaffolded by the DevPortfolio template itself.

What is the devportfolio template by Ryan Fitzgerald?

DevPortfolio is an Astro 5 and Tailwind CSS 4 template for developer personal sites. All content is controlled through src/config.ts, which defines sections for name, title, skills, projects, work experience, and education. Sections with no data are hidden automatically.

Can DevPortfolio be deployed to GitHub Pages for free?

Yes. The README links to Astro's GitHub Pages deployment guide. Because DevPortfolio generates a fully static site, it works with GitHub Pages' free hosting tier without requiring any server-side runtime.

Official sources

  1. Issues
  2. License: MIT
  3. Project website
  4. README
  5. RyanFitzgerald/devportfolio on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ryanfitzgerald-devportfolio.svg)](https://hysenlabs.com/projects/ryanfitzgerald-devportfolio)