← All projects
Live/projects/websitehub

WebsiteHub

This site. Angular 21 frontend over a Spring Boot 4.1 REST API, deployed as a static site plus a Docker web service. Each card links out to its project's own deployment.

Live at
bbobbylon.github.io Checking…
Hosting
GitHub Pages · Render (Docker)
Delivery
GitHub Actions · automated Pages deploy
WebsiteHub screenshot

Case study

Problem

A portfolio hub needed to showcase several independently-hosted projects without becoming a monolith that embeds their code, while staying easy to extend as a real database replaces the in-memory data.

Approach

Angular 21 renders three interchangeable landing layouts (Ledger, Gallery, Dossier) off one dataset from a Spring Boot 4.1 REST API, structured as Controller → Service → Repository with in-memory repositories behind interfaces, so a real database is a one-class swap with no change to the layers above.

Outcome

Live as a prerendered static site on GitHub Pages with the API as a free-tier Docker web service; a deploy-time snapshot of that API keeps every page complete while the service wakes, and each project card links out to that project's own deployment rather than embedding it.

What it does

01

Links out, never embeds

The hub only knows a project's name, description and URLs; every project stays independently built and deployed.
02

Controller → Service → Repository

In-memory repositories behind interfaces, so a real database is a one-class swap with no change to the layers above.
03

Three landing layouts, one dataset

Ledger, Gallery and Dossier render the same /api data; switch between them with ?layout=ledger|gallery|dossier.
WebsiteHub screenshot
WebsiteHub screenshot