Bannière
Web Development • Janvier 2026

Building my interactive web portfolio

👤 Solo

Full-stack design and development of my custom personal portfolio to showcase my audiovisual and interactive work.

Designing a Custom Dynamic Portfolio

January 2026 Web Development Full-Stack UI/UX
This personal site is the direct reflection of its creator's skills. That's why I chose not to use a pre-built CMS (like WordPress or Webflow), but to develop the entire site "from scratch". The goal was to design a fast, fully customisable platform with its own admin system (back-office).

THE CHALLENGE: Architecture Without a Database

The technical specificity of this portfolio lies in its architecture. Rather than deploying a heavy SQL database to store my projects, I went with a **"Flat File"** approach. All data (titles, dates, media, roles) is stored in ultra-light `JSON` files. This choice offers two major benefits: 1. Near-instant page load speed. 2. Stronger security and simpler server migration (just copy-paste the folders).

Front-End: The User Interface

The design was first thought through in Figma to guarantee a smooth experience and flawless responsive design. Integration was then done in pure **HTML5** and **CSS3**, leveraging CSS variables (`:root`) to keep the visual identity consistent. **Vanilla JavaScript** comes in to add dynamism (scroll animations, real-time project filtering, mobile menu).

Back-End: The Brain of the Site

The engine is powered by **PHP 8**. It reads the JSON files, sorts the projects (e.g. to display the most recent on the home page), and generates the final HTML. I also built a secure admin panel that lets me add, edit or delete projects without touching a single line of code.

How the Flat-File architecture works

📄 projets.json Text-based database
➔
⚙️ PHP Engine Parses & sorts data
➔
💻 Front-End HTML / CSS / Vanilla JS

My Custom Content Editor

One of my proudest pieces of this project is creating my own markup system to write these pages. Rather than embedding a heavy classic WYSIWYG editor, I coded a custom tag interpreter in PHP and JavaScript. When I type ` My Text` in my back-office, the server automatically transforms it into a styled CSS block. This lets me build complex layouts (image grids, carousels, quotes, badges) just by typing plain text, ensuring the design never "breaks".

The Project in Numbers

⚡ Lignes de code : 0

Outcome: An Evolving Tool

This is both a finished product and a daily working tool. It let me consolidate my PHP algorithmics skills (notably for sorting and filtering complex data) and confront the realities of full-stack development: from the initial UI mockup to final deployment on the server (OVH) and configuring the `.htaccess` file for URL rewriting.