personal-site is a portfolio, résumé, project archive, and writing site template built by Michael D'Angelo with Next.js 16, React, TypeScript, and Tailwind CSS, statically exported and deployed to GitHub Pages.
What is personal-site?
personal-site is the open-source source code behind mldangelo.com. It takes Markdown content for posts and résumé data and produces a fully static site with a responsive light/dark design, RSS feed, and a filterable résumé that prints in full. The repository is MIT licensed, but the content and visual design are personal, so a fork needs a full rebrand before use.
Key Features
The template concentrates on static generation, content authoring, and testable builds. Its feature set is designed to keep a personal site maintainable and safe to deploy.
- Static export to GitHub Pages — Next.js 16 site built with
npm run buildoutputs a static export that CI validates and that pushes tomaindeploy automatically. - Tailwind CSS design system — Responsive light/dark theming built from semantic CSS tokens, so colors and spacing are controlled by tokens rather than scattered styles.
- Markdown writing — Write posts in Markdown with support for drafts, RSS, and page metadata; content is validated during testing.
- Filterable résumé — A résumé page that supports filtering and still prints in full for a paper copy.
- Automated quality checks — Vitest tests for components, content, metadata, and the final static export; Biome checks linting and formatting, TypeScript type-checks, and a share card check runs on every pull request.
- Coding-agent friendly — Includes AGENTS.md with setup instructions and a docs/adapting-guide.md that maps every file an agent should change to rebrand the site.
- Share card regeneration — An
npm run ogcommand regenerates the Open Graph share card, withnpm run og:checkto verify it is current. - Command/script suite — Provides
dev,format,lint,type-check,test,build,verify-export,og, andog:checkscripts.
Who is it for?
This template suits anyone who wants a personal website without hosting a server. It is built for tinkerers who are comfortable with the Next.js and Tailwind ecosystem.
- Developers who want a modern static portfolio with a résumé and project archive built on Next.js and Tailwind CSS.
- Writers who need a simple Markdown blog with RSS and draft support built into a personal site.
- Job seekers who want a résumé page that filters on screen yet prints cleanly for interviews.
- Teams or individuals who want an MIT-licensed foundation for a personal site and are prepared to rebrand the content and visual design.
What can you do with it?
With this template, you can turn Markdown and résumé data into a deployable static site. Its automation and validation make it easy to maintain over time.
- Developers: launch a portfolio and résumé site as a static export on GitHub Pages with no server required.
- Writers: publish Markdown posts with drafts and RSS, and validate that all content renders correctly through automated tests.
- Design-conscious users: adapt the semantic CSS token system to create a custom light/dark theme without heavy refactoring.
- Educators or students: use it as a project archive to display work and share code, while keeping the build reproducible.
How does it work?
Fork the repository with gh repo fork mldangelo/personal-site --clone, then run nvm install, npm ci, and npm run dev to start locally. For rebranding, a coding agent can read AGENTS.md and docs/adapting-guide.md to update identity surfaces, or you can follow the adapting guide's reference map manually. Pushes to main trigger the same validated build that CI runs, producing the static export for GitHub Pages.
Pricing
Free — the template is MIT licensed, so it can be used, modified, and deployed without paying licensing fees. The only work required is rebranding the personal content and design.
FAQ
Answers to common questions about using and deploying this template.
Is personal-site free?
Yes. The repository is MIT licensed, so you can freely use, modify, and redeploy it. You are not required to pay for the template itself, though you may need to pay for a domain if you choose to use a custom one.
What tech stack does personal-site use?
It is built with Next.js 16, React, TypeScript, and Tailwind CSS. The production output is a static export that can be hosted on GitHub Pages or any static host.
Does it include a blog?
Yes. It supports Markdown writing with drafts, RSS, and page metadata, and the site includes sections for posts, external writing, a résumé, and projects. Content is tested as part of the validation suite.
Can I deploy it to my own domain?
Yes. The adapting guide includes a deployment reference for URL and domain setup. Pushes to main deploy the same static build that CI validates, and external steps for DNS and domain configuration are documented there.
Do I need to change the design?
The content and visual design are personal to the original author, so a fork needs a full rebrand. The adapting guide and AGENTS.md provide prompts and a reference map to update every identity surface and generated asset.








