Personal portfolio and blog β Astro, TypeScript, and Tailwind CSS β deployed on Vercel.
Source for mrlemoos.dev: a prerendered portfolio with a content-driven blog. Posts live in Astro content collections under src/content/blog; MDX supports maths via remark-math and rehype-katex. Typography uses Geist for body and UI, Instrument Serif for headings, with a grey-first palette and light motion for a calm, editorial feel.
- Astro 6 with the Vercel adapter (
@astrojs/vercel), hybrid/server output and dynamic routes where needed - Blog and MDX with KaTeX-ready markdown pipeline
- Tailwind CSS v4 via the Vite plugin
- Dynamic Open Graph images (
@vercel/og) - Sitemap integration (
@astrojs/sitemap) - TypeScript and ESLint
| Area | Choice |
|---|---|
| Framework | Astro 6 |
| Language | TypeScript |
| Styling | Tailwind CSS v4, @tailwindcss/typography |
| Content | MDX, Astro content collections |
| Fonts | Geist Sans / Mono, Instrument Serif (npm) |
| Analytics | Vercel Analytics |
| Deployment | Vercel |
- Node.js 24.x or newer
- pnpm (version pinned in
package.json)
git clone https://github.com/mrlemoos/mrlemoos.dev.git && cd mrlemoos.dev
pnpm install
pnpm devOpen http://localhost:4321 (Astroβs default dev port).
| Command | Description |
|---|---|
pnpm dev |
Start Astro dev server |
pnpm build |
Production build |
pnpm preview |
Preview production build |
pnpm lint |
Run ESLint |
pnpm check |
Run astro check |
src/
βββ content/blog/ # MDX posts (content collections)
βββ pages/ # Routes (including `og` route)
βββ layouts/ # Page shells
βββ components/ # Astro components
βββ lib/ # SEO, OG image, data, helpers
βββ styles/ # Global CSS
- Site URL and build options:
astro.config.mjs - New posts: add MDX under
src/content/blog/and match the collection schema incontent.config.ts - Shared layout and metadata:
src/layouts/BaseLayout.astro,src/lib/seo.ts - Home and listing pages:
src/pages/index.astro,src/pages/blog/
Contributions are welcome. Please open a pull request with a short description of the change.
Apache License 2.0 β see LICENSE.
