Dark-mode, developer-aesthetic portfolio site. Original design; built with Astro so case studies are plain Markdown and every page shares one layout.
| Command | Action |
|---|---|
npm install |
Install dependencies |
npm run dev |
Dev server at localhost:4321 |
npm run build |
Production build to ./dist/ |
npm run preview |
Preview the production build locally |
src/
consts.ts site-wide constants (name, email, social links)
content.config.ts schema for the projects collection
content/projects/ case studies — one Markdown file each
layouts/Base.astro shared shell: head/SEO, nav, footer, custom cursor
components/ ProjectCard
pages/ index (hero, projects, about, skills), 404, projects/[slug]
styles/global.css the whole design system
public/
resume.pdf served at /resume.pdf (stable path)
favicon.svg
To add a case study, drop a new .md file in src/content/projects/ with the
same frontmatter shape as the existing ones — it gets a card on the home page
and its own page automatically.
- Replace
CHANGEMEGitHub/LinkedIn URLs insrc/consts.ts - Add real repo/demo links to case study frontmatter
- Review the TODO comments inside both case studies (verify claims, MDBL sign-off)
- Set the real domain in
astro.config.mjs - Social share image (
og:image) — currently text-only previews