Interactive roadmap

    Frontend Developer roadmap

    Everything you need to build fast, accessible websites and web apps people enjoy using.

    Your progress0% · 0 of 21 topics
    Done Learning Skipped OptionalClick any topic to learn more and mark your progress.
    1. 1

      Web basics

      0 of 4 done

      The building blocks of every website.

      Take your time learning these foundations; every complex website is built using these exact same simple building blocks.
    2. 2

      JavaScript

      0 of 4 done

      Make pages interactive.

      Practice writing small snippets of code every day to build muscle memory and confidence with logic.
    3. 3

      Tools of the trade

      0 of 4 done

      The everyday tools of a frontend developer.

      Mastering your development tools will save you hours of frustration and speed up your workflow immensely.
    4. 4

      A modern framework

      0 of 5 done

      Build bigger apps with components.

      Focus on learning one framework deeply before jumping around to try every new tool that appears.
    5. 5

      Quality and performance

      0 of 4 done

      Ship work you can be proud of.

      Quality checks are not an afterthought; building accessible and performant sites benefits every single user.

    Learn it all, with a tutor that never sleeps

    Every topic links to LevelUp lessons, practice exercises and the 24/7 AI Tutor. Your progress updates as you master lessons.

    Every topic explained

    Step 1: Web basics

    Browsers, servers, URLs, HTTP and DNS: what happens when a page loads.
    Read more

    When you type a web address into your browser, a request travels across the internet to a server, which sends back files for your browser to display. Imagine ordering food at a restaurant: your browser is the customer, the URL is the menu choice, and the server is the kitchen preparing your meal.

    Understanding this request-and-response cycle helps you figure out why a page might fail to load or why images go missing. It is the invisible foundation for everything you will build as a frontend developer.

    • Browsers request pages and servers reply
    • URLs point to specific server locations
    • DNS turns website names into IP addresses
    • HTTP is the language browsers and servers use
    An overview of HTTP (MDN)
    Structuring content with meaningful tags, forms and links.
    Read more

    HTML uses tags like headings, paragraphs, and buttons to give raw text a meaningful structure. Think of it like the wooden frame of a house, deciding where the front door and windows go before any paint is applied.

    Writing clean HTML ensures screen readers can understand your page, which is vital for users with visual impairments. It keeps your code tidy and makes styling much easier later.

    • Use semantic tags like header and footer
    • Always wrap paragraphs in p tags
    • Connect labels properly to form inputs
    • Structure content in a clear heading hierarchy
    HTML reference and guides (MDN)
    Styling pages: the box model, selectors, colours and typography.
    Read more

    CSS is the styling layer that turns plain HTML into an attractive interface by controlling colours, fonts, and spacing. Think of it like interior design, adding paint, rugs, and lighting to the wooden frame of our house.

    Every element on a page sits inside an invisible box defined by padding, borders, and margins. Mastering these box model rules stops your layout from breaking unexpectedly.

    • Selectors target specific HTML elements
    • The box model controls spacing and sizing
    • Colours can be set using hex codes or names
    • Keep styles reusable and organized
    Learn CSS (web.dev) · CSS reference (MDN)
    Layouts that adapt to phones, tablets and big screens.
    Read more

    Modern CSS layout tools like Flexbox and Grid let you arrange items in rows and columns with minimal effort. Think of Flexbox as aligning items along a single line, while Grid handles complex multi-column page layouts.

    These tools are essential because people browse websites on everything from tiny mobile phones to huge desktop monitors. Responsive design ensures your content looks brilliant on all of them.

    • Flexbox is ideal for one-dimensional layouts
    • Grid handles two-dimensional rows and columns
    • Media queries adapt designs for different screens
    • Design mobile-first for simpler scaling
    Learn CSS (web.dev)

    Step 2: JavaScript

    Variables, functions, arrays, objects and control flow.
    Read more

    JavaScript brings web pages to life by adding interactivity, storing data, and making decisions based on user input. Think of it like the electrical wiring and plumbing of a house, making things actually work when you flip a switch.

    Variables store data, functions perform tasks, and control flow lets your code make choices. These fundamentals are the building blocks for every script you will ever write.

    • Use let and const to declare variables
    • Functions group reusable blocks of logic
    • Arrays and objects store collections of data
    • If statements help your code make decisions
    The Modern JavaScript Tutorial · JavaScript Guide (MDN)
    Reading and changing the page, and reacting to what users do.
    Read more

    The Document Object Model is a live tree representation of your HTML that JavaScript can read and modify. Think of it like a control panel that lets you swap out lightbulbs or repaint walls while the house is occupied.

    Event listeners let your scripts wait for user actions like clicks or keystrokes, then update the page instantly. This is how websites feel fast and dynamic without needing full reloads.

    • Select elements using querySelector
    • Change content using textContent or innerHTML
    • Listen for clicks with addEventListener
    • Add and remove CSS classes dynamically
    Introduction to the DOM (MDN)
    Promises, async/await and loading data from APIs.
    Read more

    Asynchronous JavaScript allows your app to request data from external servers without freezing the user interface. Think of it like ordering takeaway over the phone; you stay on the line or wait for a text while the kitchen cooks your meal.

    Using async and await makes handling data requests straightforward and easy to read. This lets you build modern apps that load live weather, posts, or prices smoothly.

    • Promises represent future completion of tasks
    • Async and await make asynchronous code clean
    • Fetch gets data from web APIs
    • Always handle potential network errors gracefully
    Using the Fetch API (MDN)
    Types that catch mistakes early and make code easier to change.
    Read more

    TypeScript is a superset of JavaScript that adds static types to your code before it runs. Think of it like having a spellchecker in your text editor that flags typos before you publish your work.

    By catching bugs right inside your editor rather than in the browser, TypeScript saves you hours of frustrating debugging. It makes working on large codebases much safer and more predictable.

    • Define shapes of objects using interfaces
    • Catch type errors during development
    • Get better code completion in your editor
    • Gradually adopt types in existing projects
    TypeScript Handbook

    Step 3: Tools of the trade

    Tracking changes and collaborating through pull requests.
    Read more

    Git tracks the history of your code changes, while GitHub lets you store those projects online and collaborate with others. Think of Git as a magical video game save system where you can roll back time if you make a mistake.

    Pull requests let you propose changes, review code with peers, and merge new features safely. Knowing these tools is essential for working on any professional development team.

    • Commit often with clear, descriptive messages
    • Create branches to test new features safely
    • Push your code to GitHub for safekeeping
    • Use pull requests to review changes
    Pro Git book (free)
    Installing libraries and running project scripts.
    Read more

    npm is a package manager that lets you download and manage third-party code libraries created by other developers. Think of it like a massive hardware store where you can pick up pre-built door hinges rather than forging them yourself.

    Project scripts help automate repetitive tasks like starting a development server or building your site for production. It is the central hub for managing project dependencies.

    • Install packages using npm install
    • Run custom tasks defined in package json
    • Keep dependencies updated for security
    • Share projects easily with a lock file
    Learn Node.js (official)
    Bundlers and dev servers such as Vite that turn your code into a fast site.
    Read more

    Modern build tools like Vite take your source files, optimize them, and bundle them into lightning-fast assets for the browser. Think of it like a factory that packages raw ingredients into neat, ready-to-sell products.

    Development servers give you instant feedback through hot module replacement, meaning your browser updates automatically as you save code. This keeps your workflow fast and enjoyable.

    • Vite provides instant dev server startup
    • Bundlers combine many files into optimized assets
    • Code splitting reduces initial load times
    • Production builds minify code for speed
    Vite guide
    Inspecting elements, debugging scripts and checking network requests.
    Read more

    Browser DevTools are built right into your browser and let you inspect, edit, and debug your code live. Think of it like an X-ray machine for websites, showing you underlying HTML structures and network activity.

    You can test mobile responsiveness, simulate slow network speeds, and track down stubborn JavaScript errors in seconds. It is arguably the most important debugging tool in your toolkit.

    • Inspect elements to check styles and layout
    • Use the console to log and test code
    • Check network requests for failed loads
    • Simulate mobile devices for testing
    Chrome DevTools

    Step 4: A modern framework

    Components, props, state and hooks.
    Read more

    React is a popular JavaScript library for building user interfaces out of reusable pieces called components. Think of it like building with Lego bricks, where each brick manages its own appearance and behaviour.

    Props pass data down to components, while state manages data that changes over time. Hooks let you add extra features like side effects or state to your functional components.

    • Build UIs out of independent components
    • Pass data between components using props
    • Manage changing data with useState
    • Handle side effects using useEffect
    Learn React (react.dev)
    Multi-page apps with shareable URLs.
    Read more

    Routing allows single-page applications to show different views while keeping URLs shareable and clean. Think of it like the floor plan of a building, directing visitors to different rooms without leaving the structure.

    Client-side routing swaps components instantly without triggering a full browser refresh, creating a smooth app-like feel. It helps users bookmark and share exact pages within your app.

    • Map URL paths to specific components
    • Enable smooth navigation without reloads
    • Read dynamic parameters from the URL
    • Handle missing pages with 404 routes
    React Router docs
    Sharing data across components, and caching server data.
    Read more

    State management helps you share data across distant parts of your application without messy workarounds. Think of it like a central noticeboard in an office where everyone can read and update important team updates.

    As apps grow, managing server cache and global UI settings becomes tricky. Tools like Context or dedicated data-fetching libraries keep your data synchronized cleanly.

    • Lift state up when multiple components need it
    • Use Context for app-wide settings like themes
    • Cache server data to avoid redundant requests
    • Keep local state close to where it is used
    Managing state (react.dev)
    Utility CSS like Tailwind, CSS modules and component libraries.
    Read more

    Scaling up your styling involves keeping CSS organized so styles do not accidentally clash across large teams. Think of it like setting building regulations so every shop in a mall has a consistent design standard.

    Utility-first frameworks like Tailwind let you style elements directly in your markup using pre-made classes. This speeds up development and keeps your CSS bundle lean.

    • Utility classes speed up rapid UI building
    • CSS modules prevent accidental class name clashes
    • Design systems keep branding consistent
    • Keep responsive styles readable and maintainable
    Tailwind CSS docs
    (optional)
    Server rendering and routing with frameworks such as Next.js.
    Read more

    Meta-frameworks like Next.js add server-side rendering and file-based routing on top of your standard UI library. Think of it like upgrading from a tent to a fully serviced apartment with plumbing and electricity ready to go.

    Server rendering improves initial page load speed and helps search engines index your content effectively. It provides a complete production-ready framework for serious web applications.

    • File-based routing creates pages automatically
    • Server rendering boosts initial page performance
    • Optimize images and fonts out of the box
    • Build full-stack apps with API routes
    Next.js docs

    Step 5: Quality and performance

    Keyboard support, screen readers, contrast and good HTML first.
    Read more

    Accessibility ensures people with visual, motor, or cognitive impairments can navigate and use your website comfortably. Think of it like adding wheelchair ramps and automatic doors to a physical public building.

    Using proper HTML elements, keyboard support, and clear contrast ratios makes your site usable for everyone. It is a core responsibility of every professional frontend developer.

    • Ensure full navigation using only a keyboard
    • Add alt text to images for screen readers
    • Maintain strong colour contrast for readability
    • Use semantic HTML landmarks for structure
    Introduction to web accessibility (W3C)
    Fast loading and smooth interaction, measured with Core Web Vitals.
    Read more

    Web performance is all about making your pages load instantly and respond smoothly to user interactions. Think of it like tuning a car engine so it accelerates quickly without stuttering or stalling.

    Core Web Vitals measure loading speed, visual stability, and responsiveness. Optimizing images, reducing heavy scripts, and caching assets keeps users happy and engaged.

    • Optimize and compress large image files
    • Minimize unused JavaScript and CSS code
    • Improve loading speed for mobile networks
    • Measure performance using Lighthouse audits
    Web Vitals (web.dev)
    Unit tests for logic and end-to-end tests for key journeys.
    Read more

    Testing involves writing automated scripts to check that your code works correctly and does not break unexpectedly. Think of it like quality control checks in a factory before products are shipped to customers.

    Unit tests check individual functions, while end-to-end tests simulate real users clicking through key journeys. Testing gives you the confidence to refactor and update your code safely.

    • Unit tests verify small, isolated functions
    • Component tests check UI rendering and events
    • End-to-end tests simulate real user journeys
    • Catch regressions before releasing to production
    Jest: getting started · Playwright: getting started
    Two or three polished, deployed projects that show what you can do.
    Read more

    A strong portfolio showcases polished, real-world projects that prove your ability to build functional websites. Think of it like an artist's gallery showing off their best paintings to potential clients or employers.

    Deploying your projects live makes them easy for others to click and test on their own devices. Good documentation and clean code matter just as much as visual design.

    • Build two or three complete, polished projects
    • Deploy your apps live using hosting platforms
    • Write clear README files explaining your work
    • Highlight features, challenges, and tech stacks

    Related roadmaps