DNS, IP & Hosting React
Understand how the browser finds your website.
// DNS: Converts domain → IP
www.example.com -> 142.251.46.110
// Hosting: Your website files stored on a server.
Step-by-step learning path from beginner → advanced frontend developer. Covers HTML, CSS, JavaScript, frameworks, tooling, testing, performance, accessibility, and more.
Core web fundamentals every frontend developer must understand.
Understand how the browser finds your website.
// DNS: Converts domain → IP
www.example.com -> 142.251.46.110
// Hosting: Your website files stored on a server.
Requests, responses, headers, SSL, status codes.
GET /products HTTP/1.1
Host: api.store.com
Accept: application/json
// 200 OK
// 404 Not Found
// 500 Server Error
Everything needed to write semantic, accessible, SEO-friendly markup.
Use proper tags for accessibility and SEO.
<header>Site Header</header>
<nav>Main Navigation</nav>
<main>Page Content</main>
<footer>Footer</footer>
HTML forms, types, validation attributes.
<form>
<input type="email" required />
<input type="password" minlength="6" />
<button>Login</button>
</form>
Learn visual styling, layout, positioning, and responsive design.
padding, margin, border, content box.
.box {
padding: 16px;
margin: 24px;
border: 1px solid #ddd;
}
Modern layout system for alignment.
.container {
display: flex;
justify-content: center;
align-items: center;
}
Powerful 2D layout system for modern websites.
Simple responsive grid layout.
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
Create magazine-like layouts.
.layout {
display: grid;
grid-template-areas:
'header header'
'sidebar content'
'footer footer';
}
Make websites work on all screen sizes.
Adjust layout for different devices.
@media (max-width: 768px) {
.menu { display: none; }
}
Start designing for small screens first.
/* Base = mobile */
.container { padding: 1rem; }
/* Bigger screens override */
@media (min-width: 768px) {
.container { padding: 2rem; }
}
Animations, transforms, variables, architecture patterns.
Custom reusable design tokens.
:root {
--primary: #4f46e5;
}
.button {
background: var(--primary);
}
Create UI motion effects.
@keyframes fade {
from { opacity: 0; }
to { opacity: 1; }
}
.fade-in { animation: fade 1s ease-in; }
Learn the language of the web: variables, functions, loops.
let, const, primitives, arrays, objects.
const age = 25;
let name = 'John';
const user = { name, age };
Compact and clean function syntax.
const sum = (a, b) => a + b;
console.log(sum(3, 5));
Add, edit, or delete elements dynamically.
querySelector, getElementById, etc.
document.querySelector('.btn').addEventListener('click', () => {
alert('Clicked!');
});
Promises, async/await, spread, destructuring.
Cleaner async code.
async function loadData() {
const res = await fetch('/api/data');
const json = await res.json();
console.log(json);
}
Pull data from arrays and objects.
const { name, age } = user;
const [first, second] = items;
Static typing for large-scale frontend apps.
Type structure for objects.
interface User {
name: string;
age: number;
}
const u: User = { name: 'John', age: 20 };
Reusable type-safe functions.
function wrap<T>(value: T) {
return [value];
}
Essential skills for working in teams.
Commit, push, pull, branches.
git init
git add .
git commit -m "Initial commit"
git push origin main
Feature-based workflow.
git checkout -b feature/login
Vite, Webpack, Babel, Parcel.
Fast dev environment.
npm create vite@latest my-app
Simple Webpack setup.
module.exports = {
entry: './src/index.js',
output: { filename: 'bundle.js' }
};
Tailwind, Bootstrap, Material UI.
Fast styling using class utilities.
<button class="px-4 py-2 bg-indigo-600 text-white rounded">Save</button>
shadcn/ui, MUI, Chakra UI, Radix UI.
Quick example.
import { Button } from '@mui/material';
<Button variant="contained">Click</Button>
Most popular UI library in 2025.
Core React component structure.
function App() {
return <h1>Hello React</h1>;
}
Component state.
const [count, setCount] = useState(0);
The meta-framework for modern frontend development.
App Router example.
export default function Page() {
return <div>Hello Next.js</div>;
}
Progressive framework for building interfaces.
Simple single-file component.
<template>
<h1>{{ message }}</h1>
</template>
<script>
export default {
data() {
return { message: 'Hello Vue!' };
}
};
</script>
Redux, Zustand, Jotai, Recoil.
Minimal state manager.
import create from 'zustand';
const useStore = create(set => ({
count: 0,
inc: () => set(s => ({ count: s.count + 1 }))
}));
Data fetching, caching, API patterns.
Simple data fetch.
fetch('/api/users')
.then(r => r.json())
.then(console.log);
Basic example.
{
user(id: 1) {
name
email
}
}
JWT, sessions, OAuth, NextAuth.
Reading token payload.
const payload = JSON.parse(atob(token.split('.')[1]));
Unit, integration & E2E tests.
Simple example.
import { expect, test } from 'vitest';
test('math', () => {
expect(2 + 2).toBe(4);
});
Improve speed, reduce bundle sizes.
Dynamic imports.
const Lazy = React.lazy(() => import('./HeavyComponent'));
XSS, CSRF, HTTPS, content security.
Prevent XSS injection.
const safe = str.replace(/</g, '<').replace(/>/g, '>');
CI/CD, hosting, deployment pipelines.
GitHub Actions example.
name: CI
on: push
jobs:
build:
runs-on: ubuntu-latest
Make websites usable for everyone.
Assistive technologies.
<button aria-label="Close menu">X</button>
Metadata, performance, structure.
Basic SEO setup.
<meta name="description" content="Frontend Roadmap 2025" />
LocalStorage, Clipboard, Notifications.
Store key-value data.
localStorage.setItem('theme', 'dark');
Make apps installable and offline-ready.
Enable offline caching.
navigator.serviceWorker.register('/sw.js');
GSAP, Framer Motion, CSS animations.
Simple fade-in.
<motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }}>Hello</motion.div>
Reusable UI foundations, tokens, components.
Centralized colors.
:root {
--color-primary: #6366f1;
}
Turborepo, Nx, Yarn Workspaces.
Basic pipeline.
{
"pipeline": {
"build": { "outputs": ["dist/**"] }
}
}
3D, animations, shaders.
Draw a circle.
const ctx = canvas.getContext('2d');
ctx.arc(50, 50, 30, 0, Math.PI * 2);
ctx.fill();
AI-assisted coding, design, and documentation.
Using AI to generate UI code.
"Generate a responsive navbar with Tailwind and React."
Build portfolio, contribute to open source, interview prep.
Must-have sections.
- Projects
- Case studies
- About me
- Contact form