Built on Astro, with React and TypeScript components
dark-minimal — Astro Portfolio Template
By Gothsec
Dark minimal is a dark portfolio template based on Astro, React, and Tailwind CSS, released under the MIT license, including components such as homepage, project list, skills display, and contact form.
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 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Style customization using Tailwind CSS
Includes sections such as homepage, projects, skills, navigation, footer, and contact form
Built-in LetterGlitch interactive component from ReactBits
Footer supports embedding Spotify albums
Contact form receives submissions via a Formspree endpoint
Template Details
Dark minimal is an Astro portfolio template published by Gothsec on GitHub, built with React, TypeScript, and Tailwind CSS, with the interface designed in Figma. The template provides dark-themed page sections such as homepage, project showcase, skills list, navigation, footer, and contact form, and includes the LetterGlitch interactive component from ReactBits.
At the content level, the template organizes text and links under src/components with files such as home.astro, projects.astro, contact.astro, footer.astro, nav.astro, and logoWall.astro, requiring manual replacement of placeholder information; src/layouts/Layout.astro centrally manages the title, description, canonical, OG tags, and JSON-LD. Styles are adjusted via Tailwind CSS configuration, and React components are located in the src/React directory.
The template includes two configurations that require external services: the footer displays albums via a Spotify embed iframe, and the contact form relies on a Formspree endpoint. The README provides specific replacement steps for these two areas and notes that it can be deployed to Vercel, Netlify, or GitHub Pages. Local running requires Node.js and npm or pnpm.
Is it right for your project?
Use Cases
- Build a personal portfolio website to showcase projects, skills, and contact information
- Use as a starter template for further development in mixed Astro and React projects
- Personal homepage requiring a dark visual style and interactive components
- Quickly supplement forms and music display via Formspree and Spotify embeds
Suitable For
- Front-end developers familiar with Astro or React
- Individual developers who want to use and modify the code for free under the MIT license
- Users who need to quickly replace placeholder content and deploy to Vercel, Netlify, or GitHub Pages
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Local running requires Node.js (README recommends v18 or higher) and npm or pnpm; after cloning the repository, run npm install and npm run dev.
- 2
Before use, replace the title, description, canonical, OG tags, and JSON-LD in src/layouts/Layout.astro, as well as the name, links, and project placeholder content in each component.
- 3
For the contact form, create a form on Formspree and replace the form action in src/components/contact.astro with the actual endpoint.
- 4
For Spotify display, replace the album ID in the embedded iframe in src/components/footer.astro.
- 5
The code is under the MIT license; when distributing, retain the copyright and license notice; third-party assets such as demo images, fonts, and icons need separate license verification.
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean 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 allowed.
- 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
- The contact form relies on the external Formspree service; you need to register a Formspree account and create a form, and replace the form action in contact.astro with your personal endpoint URL to properly receive submissions.
- The footer Spotify album display requires obtaining embed code from Spotify and replacing the iframe in footer.astro, which is an external service dependency.
- The README mentions the Formspree form service; actual submissions require configuring a service endpoint, and its usage quotas and fees need separate verification.
- Demo images, fonts, icons, and other third-party assets need to be checked according to their respective licenses and 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
Create an account on [Formspree](https://formspree.io/)
Original README
https://github.com/Gothsec/dark-minimal/blob/main/LICENSEhttps://github.com/Gothsec/dark-minimal/blob/main/README.mdSelect 'copy embed code'
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. 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 · 96 / 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-09-29
- Screenshot last checked
- 2026-10-01
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: c505427db8ec40f0def66982b9995e3d90e9eb2bd20f44539575789a60ed470f
2026-10-01T14:05:22.844Z
Source file / repository# Dark minimal
> Highly customizable and performant portfolio template built with Astro, React, and Tailwind CSS.
<img width="1920" height="1080" alt="astro-portfolio" src="https://github.com/user-attachments/assets/0df80067-5fe2-4c24-90c4-4eb28e1a7508" />

[](https://astro.build)
---
[Demo](https://darkminimal.vercel.app) | [Astro Themes](https://astro.build/themes/details/darkminimal/) | [ReactBits Showcase](https://www.reactbits.dev/showcase)
## **Features**
- **Blazing fast performance** powered by Astro
- **Beautifully styled** with Tailwind CSS
- **Spotify integration** for showcasing your favorite album
- **Working contact form** powered by Formspree
- **Interactive UI** including the `<LetterGlitch />` component from [ReactBits.dev](https://www.reactbits.dev/)
## **Stack**
### **Frontend**



### **Tools**



## **Configuration Guides**
### **Show your favorite Spotify album (or your own)** 
1. Choose your Spotify album
2. Access the share options
3. Select 'copy embed code'
```html
<iframe src="https://open.spotify.com/embed/album/YOUR_ALBUM_ID_HERE" style="border-radius:12px border:0;" class="w-full h-40" frameborder="0" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"></iframe>
```
4. Insert the embed code on `src/Components/footer.astro`
### **Set up contact form (Formspree)** 
1. Create an account on [Formspree](https://formspree.io/)
2. Create a new project/form and copy your form endpoint URL (it looks like `https://formspree.io/f/your_id`)
3. Open the `src/Components/contact.astro` file
4. Replace the `action` attribute in the `<form>` tag with your endpoint URL:
```html
<form action="https://formspree.io/f/YOUR_FORM_ID_HERE" method="POST">
```
## **Customization Checklist**
Before deploying your own instance, make sure to update these placeholder values with your real information:
- **`src/layouts/Layout.astro`**: Update `title`, `description`, `canonical` URL, `og` tags, and the JSON-LD schema with your own details.
- **`src/components/home.astro`**: Change the greeting "Your Name" and update the GitHub, LinkedIn, and email URLs.
- **`src/components/projects.astro`**: Replace the generic projects (Project One, etc.) with your own, including titles, descriptions and links.
- **`src/components/footer.astro`**: Update the social links, change the Spotify iframe to your playlist, and update the copyright name.
## **Customization**
To make this portfolio your own, you can edit the following files:
- **Global Settings:** Update metadata and title in `src/layouts/Layout.astro`.
- **Content:** Modify the text, links, and details inside the components in `src/Components/` (e.g., `home.astro`, `projects.astro`, `contact.astro`).
- **Styling:** The design uses Tailwind CSS. You can adjust the theme configuration in `tailwind.config.mjs` and custom styles if needed.
## **Project structure**
```text
public/
└── svg/
src/
├── Components/
| ├── contact.astro
| ├── footer.astro
| ├── home.astro
| ├── logoWall.astro
| ├── nav.astro
| └── projects.astro
├── layouts/
| └── Layout.astro
├── React/
| ├── LetterGlitch.tsx
| ├── LikeButton.tsx
| └── SkillsList.tsx
└── pages/
└── index.astro
```
## **Local configuration**
### Prerequisites
- **Node.js** (v18 or higher recommended)
- **npm** or **pnpm**
1. Clone the repo:
```bash
git clone https://github.com/Gothsec/dark-minimal
```
2. Install dependencies:
```bash
npm install
```
3. Start the development server:
```bash
npm run dev
```
## **Deployment**
This project is built with Astro and can be easily deployed to Vercel, Netlify, or GitHub Pages. For the easiest setup, push your repository to GitHub and import it directly into [Vercel](https://vercel.com/) or [Netlify](https://www.netlify.com/).
> This project is licensed under the [MIT License](https://opensource.org/licenses/mit).
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
