Front-End Case Study

Personal portfolio website.

A server-rendered portfolio site built to organize design work into a professional web experience. The project uses Node.js, Express, Pug templates, Foundation CSS and custom styling to display project cards, detail pages and an about page from structured content.

RoleFront-End Developer
StackNode.js · Express · Pug
Project TypePortfolio Website
Personal portfolio website homepage preview

Dynamic portfolio structure

Project data, reusable templates, static assets and routes work together to create a clean portfolio experience.

A portfolio build focused on structure and presentation.

Front-end goal

The website needed to present visual design projects in a simple, accessible format. I structured the experience around a persistent profile sidebar, a project grid, individual project pages and an about page with skills and contact links.

Server-rendered pages with reusable content patterns.

The project combines Express routes, Pug templates, JSON-driven project data and static assets. This made the site easier to maintain because project cards and detail pages could be generated from the same content source.

01

Express routing

Routes render the homepage, about page and individual project detail pages using a clean server setup.

02

Pug templates

Reusable templates support a shared layout, profile sidebar, project grid and dynamic project detail views.

03

JSON content

Project names, descriptions, technologies and image paths are stored in structured data and rendered into the interface.

From project data to rendered portfolio pages.

The system is organized so content and templates stay separate, making the front-end easier to update as new projects are added.

01Store project data
02Set Express routes
03Render Pug templates
04Serve static assets
05Display project pages

Key screens from the portfolio build.

The selected previews show the homepage, project detail layout and the underlying content structure used to organize the website.

Homepage

Project grid with a persistent profile sidebar.

The homepage introduces the portfolio and displays projects from the JSON file as a responsive grid of clickable project cards.

Homepage preview for the personal portfolio website
Project detail page preview for the personal portfolio website
Project Detail

Dynamic detail pages for individual work.

Each project page pulls the selected project title, description, technologies and supporting images into a consistent detail-page layout.

Structure

Reusable routes, templates and assets.

The build separates app logic, content data, Pug views and static assets, which creates a cleaner front-end foundation for future portfolio expansion.

Portfolio website structure preview

Organized around content, views and assets.

The project uses a small but clear structure that separates server logic, project data, templates, styles and images.

app.jsExpress setup, static assets and page routes.
data.jsonProject content used to render cards and detail pages.
viewsPug templates for layout, homepage, about and project pages.
publicCSS, JavaScript and image assets served to the browser.

Template-based front-end with practical routing.

The build demonstrates how a portfolio can be developed as a maintainable web system rather than a set of disconnected static pages.

Front-End

Layout and presentation

  • Project grid on the homepage
  • Profile sidebar and about page
  • Custom CSS over Foundation layout utilities
  • Project image assets and detail page views
Back-End Support

Server-rendered content

  • Node.js and Express application setup
  • Pug as the view engine
  • Dynamic project lookup by query ID
  • Static folder for CSS, JavaScript and images

Simple routing for dynamic project pages.

The project page route finds the selected project from structured data and renders it through the project template.

app.get('/project', (req, res) => { const projectId = req.query.id; const project = projects.find(p => p.id === projectId); res.render('project', { project }); });

Tools and technologies used.

The project combines JavaScript server setup with a templated front-end and responsive styling.

Node.jsExpressPugFoundation CSSCustom CSSJavaScriptJSON DataStatic AssetsResponsive Layout

What this project demonstrates.

This portfolio build shows the ability to organize front-end work as a structured web experience: routing pages, rendering reusable templates, managing content data and presenting projects through a polished responsive layout.

Related front-end work.

Continue through the Front-End portfolio or view the ScrapAway web application case study.

Front-End

Front-End Portfolio

Return to the main front-end development page.

Front-End

ScrapAway

MERN web application case study focused on responsive UI and role-based workflows.

Portfolio

All Work

Browse UI/UX, graphic design and front-end categories.