MUS

Portfolio website of M. Umar Shahbaz

Tech Stack

Bootstrap

Jekyll

Docker

Actions


Technical Details

Overview

This website is powered by Jekyll, a static site generator that transforms structured data and content into a fast, lightweight, and secure static website.
A key feature of this site is the automatic generation of sections and pages from YAML-based schemas, ensuring consistency, scalability, and easy updates without manual HTML editing.


Build & Deployment

flowchart TD; A[Data]; B[Schemas]; C[Jekyll]; D[Generated Site]; E[Asset Optimization]; F[PurgeCSS]; G[Terser]; H[Image Optimization]; I[Collect All]; J[Publish to GitHub Pages]; A --> C; B --> C; C --> D; D --> E; E --> F --> I; E --> G --> I; E --> H --> I; I --> J;

Benefits of This Approach


Libraries


Auto-Generated Content

A major strength of this site is its reliance on YAML-based schemas to drive content generation.
These schemas are processed by Liquid templates to produce HTML automatically.

Schema:

<icon_key>: <url>

Example:

fab.github: https://github.com/USERNAME
fab.linkedin: https://www.linkedin.com/in/USERNAME
fas.rss: https://example.com/feed.xml

Usage:
Populates footer social icons dynamically, mapping each Font Awesome icon key to its corresponding URL.


2. Skills (_data/skills.yml)

Schema:

- title: <skill_group_title>
  subtitle: <short_description>
  icons:
    - <icon_key>
    - <icon_key>

Example:

- title: MERN Stack
  subtitle: Web Development (WIP)
  icons:
    - MongoDB
    - Express
    - React
    - NodeJS

Usage:
Generates skill cards displayed at the homepage with matching icons and subtitles.


3. Projects (_projects/*.md)

Schema:

---
title: <project_name>
description: <short_description>
image: <image_url_or_path>
prefrence: <number_for_sorting>
repository: <github_owner/repository>
icons:
  - <icon_key>
  - <icon_key>
permalink: /projects/<slug>
layout: project
category: prominent | wip | planned
container_classes: <css_classes>
---
<page_content>

Usage:
Used to generate pages for Project Descriptions (including this one)


4. Icons (_data/icons.yml)

Schema:

<icon_key>:
  class: <css_class>
  color: <hex_color>

Example:

MongoDB:
  class: devicon-mongodb-plain
  color: '#4DB33D'

Usage:
A set of reusable icons.