Builder log / project story
Built to understand the work.
Frontend Arena started as my personal frontend learning project. Instead of only watching tutorials, I turned the concepts I was learning into missions and working interfaces.
Why I built it
From individual lessons to one connected system.
The earliest missions focused on page structure and semantic HTML. Later missions introduced CSS layouts, DOM manipulation, forms, arrays of objects, filtering, localStorage and data from a public API.
The current version reorganizes those exercises into a path where each feature prepares for the next one. It uses plain HTML, CSS and JavaScript so the architecture stays visible and explainable.
I use AI as a mentor and reviewer, but a feature only counts as learned when I can trace its data, explain its functions, test its behavior and identify its limitations.
How it evolved
Simple pages became interactive features.
- Structure and meaningSemantic sections, headings, text elements and browser parsing.
- Layout and feedbackReusable CSS, responsive Grid and clear interaction states.
- Data-driven pagesObjects, arrays, forms, map(), filter(), sort() and DOM rendering.
- PersistenceJSON and localStorage for progress, preferences and saved content.
- Live dataFetch API, async/await and loading, empty and error states.
What I learned
The decisions around code matter too.
Architecture
Small files with clear jobs.
HTML gives every page its content, landmarks and controls. style.css contains the shared product design, while mission.css contains learning-page patterns. data.js holds the roadmap. script.js handles navigation and practice progress. Feature scripts contain the logic for the mission that uses them.
A future version can move repeated page markup into React components. For this stage, static pages keep the browser behavior easy to inspect and explain.
Explore the roadmap