Personal portfolio website built with Astro, showcasing projects, writing, and professional experience.
Live Site: dmomplaisir.com
- Framework: Astro (Static Site Generator)
- Styling: CSS with custom design system
- Typography: Editorial Old (display) + Neue Montreal (body) + JetBrains Mono (monospace)
- Deployment: GitHub Pages
- Form Handling: Formspree
"Elevation Grid + Blueprint Light" - A hybrid architectural aesthetic combining:
- Warm minimalism (cream #FFFCF5, warm white #FFFEF9)
- Burgundy accents (#900020)
- Blueprint-inspired grid overlays
- 8px baseline spacing system
- Editorial typography with architectural precision
# Install dependencies
npm install
# Start development server
npm run dev
# Site will be available at http://localhost:4321
# Build for production
npm run build
# Preview production build
npm run preview/
├── public/ # Static assets (fonts, resume, CNAME)
├── src/
│ ├── components/ # Astro components
│ ├── content/ # Content collections (projects, posts)
│ │ └── projects/ # Project case studies (markdown)
│ ├── layouts/ # Page layouts
│ ├── pages/ # Routes (index, about, projects, contact)
│ ├── styles/ # Global styles and design tokens
│ │ ├── variables.css # Design system tokens
│ │ └── fonts.css # Font declarations
│ └── utils/ # Helper functions
├── astro.config.mjs # Astro configuration
└── tsconfig.json # TypeScript configuration
- Create a markdown file in
src/content/projects/ - Include frontmatter with required fields:
--- title: "Project Title" description: "Brief description" tags: ["Tag1", "Tag2"] line_color: "blue" # or "red", "green", "orange" date: 2024-01-15 featured: true # Shows on homepage tech_stack: ["React", "TypeScript", "Node.js"] role: "Your Role" impact: "Key impact metric" live_url: "https://example.com" # optional github_url: "https://github.com/..." # optional --- ## Project content here...
- Write the case study in markdown
Projects with featured: true appear on the homepage slider. The slider shows the 3 most recent featured projects.
Deployment is automatic via GitHub Actions on push to master branch.
The workflow:
- Checks out the code
- Uses official Astro action to build the site
- Deploys to GitHub Pages
Custom Domain: Configured via public/CNAME file (dmomplaisir.com)
The previous Jekyll-based site has been archived to /archive/ for reference.
See TODO.md for upcoming features and improvements.
© 2025 Dylan Momplaisir. All rights reserved.