Marcel's Portfolio & Knowledge Hub

October 7, 2025 · View on GitHub

A content‑driven personal portfolio showcasing software projects, deep–dive blog series, multi-part project documentation, and tagged knowledge collections. Built with Astro MDX content collections, a typed content pipeline, and ergonomic utilities for navigation, taxonomy, and reading experience.


Core Features


Content Model (MDX Frontmatter Conventions)

Blog (src/content/blog/...):

  • title, description, date, tags[], authors[], draft?, image?

Projects (src/content/projects/...):

  • title, description, startDate, endDate?, contributors[], tags[], link?, image?, order? (for ordered subprojects / chapters)

Hierarchical entries use slash‑separated IDs:


ViewSource
Blog index (paginated)blog/[...page].astro
Projects index (paginated)projects/[...page].astro
Project / chapter detailprojects/[...id].astro
Tag landingtags/[...id].astro
Author profileauthors/[...id].astro
Aboutabout.astro
RSSrss.xml.ts

🔧 Data Utilities (Selected)

From src/lib/data-utils.ts:

PurposeSymbol
Fetch published postsgetAllPosts
Fetch published projectsgetAllProjects
Include sub-itemsgetAllPostsAndSubposts, getAllProjectsAndSubProjects
Taxonomy countsgetAllTags, getSortedTags
Series navigationgetAdjacentPosts, getAdjacentProjects
Subcontent helpersgetSubpostsForParent, getSubProjectsForParent
TOC extractionrender + getTOCSections
Reading timereadingTime & wrappers in data utils

🗂 License

See LICENSE.


🙌 Credits

The foundation is built on top of astro-erudite. The structure, sub-posts and Callouts are aweseome and inspired me to build this portfolio.