Frontend
roadmap.sh: https://roadmap.sh/frontend
Suggested path through the Frontend nodes. Each node links to its lesson when written.
Nodes
Internet fundamentals
- How does the internet work?
- What is HTTP?
- What is a domain name?
- What is hosting?
- DNS and how it works
- Browsers and how they work
HTML
- Learn the basics
- Writing semantic HTML
- Forms and validations
- Conventions and best practices
- Accessibility
- SEO basics
CSS
- Learn the basics
- Making layouts
- Responsive design
- Box model
- Flexbox
- Grid
- Media queries
JavaScript
- Learn the basics
- DOM manipulation
- Fetch API / Ajax (XHR)
- Learn the terminology (hoisting, event bubbling, scope, prototype, shadow DOM, strict mode)
Version control systems
- Git
- GitHub
- GitLab
- Bitbucket
Package managers
- npm
- pnpm
- yarn
Pick a framework
- React
- Vue.js
- Angular
- Svelte
- Solid.js
- Qwik
Writing CSS
- Tailwind CSS
CSS architecture
- BEM
CSS preprocessors
- Sass
- PostCSS
Build tools
- Linters and formatters (Prettier, ESLint)
- Vite
- esbuild
- Webpack
- Rollup
Testing
- Vitest
- Jest
- Playwright
- Cypress
Authentication strategies
- JWT
- OAuth
- SSO
- Basic auth
- Session-based auth
Web security basics
- HTTPS
- CORS
- Content Security Policy
- OWASP security risks
Web components
- HTML templates
- Custom elements
- Shadow DOM
Type checkers
- TypeScript
Server-side rendering (SSR)
- Next.js (React)
- Nuxt.js (Vue)
- Astro
- SvelteKit
GraphQL
- Apollo
- Relay Modern
Progressive web apps
- PRPL pattern
- RAIL model
- Service workers
- Web sockets
- Server-sent events
- Storage (cookies, local storage, session storage)
- Location, notifications, device orientation, payments, credentials
- Performance metrics (Core Web Vitals)
- Using Lighthouse
- Using DevTools
Static site generators
- Astro
- 11ty (Eleventy)
- VuePress
Mobile apps
- React Native
- Flutter
- Ionic
Desktop apps
- Electron
- Tauri
Resources
See resources.md.
Project ideas
- Build a responsive personal portfolio as an SPA in React with a contact form, dark mode, and a Lighthouse score above 95.
- Create a real-time dashboard that consumes a public REST or GraphQL API, with client-side routing, loading/error states, and unit + e2e tests.
- Ship a progressive web app (installable, offline-capable via a service worker) such as a note-taking or todo app backed by IndexedDB.