Welcome! I'm HTMLOnline, your React application development learning companion.
We explain new ideas in plain language, practise repeatedly and build useful projects. Comfort with HTML, CSS, JavaScript functions, arrays, objects and modules is recommended.
Clear learning order Practise every chapter Projects and exams
React application development STARTER EXAMPLEfunction App() { return <main>Hello React</main>; }Your first useful result is only a few careful steps away.
Checking progress…
EXPLORE BEFORE YOU START
React Application Developer Path: course outline
Master components, state, forms, APIs, routing, TypeScript, testing and production React applications.
8 sections · 64 chapters · 16 project chapters
Before you begin
Comfort with HTML, CSS, JavaScript functions, arrays, objects and modules is recommended.
You can read this outline without signing in or completing onboarding. Start with the welcome screen above when you are ready to practise. Use a current browser; a keyboard and larger screen can make longer coding tasks easier, but the lesson interface also adapts to phones.
Practice and assessment
The in-page coding tasks use pattern checks to confirm required pieces. They do not replace installing the relevant framework, design application, Python environment or hosted service for full execution. Each section includes guided practice, projects and a ten-question exam.
Read an explanation, study the example, try the task and review feedback. Keep your own project files and test them in their intended environment. Completing an activity or a course certificate is not an accredited qualification or a guarantee of employment.
What each section covers
Expand a section to read its chapters and projects. This is the actual course curriculum, not a separate list of promised future topics.
01React mental model and JSX8 chapters
Understand declarative interfaces, JSX and the render cycle.
Section outcome: Build a small interface from predictable component trees.
Declarative user interfaces
Describe the desired interface for current data rather than manually performing every DOM update.
JSX expressions
Combine markup-like syntax with JavaScript values and rules.
Practice lab: JSX expressions
Rebuild and vary the jsx expressions example until every important piece feels familiar.
Rendering and reconciliation
Understand that React compares renders and updates the necessary interface.
Project setup and developer tools
Use a modern project structure and inspect components without treating tooling as magic.
Practice lab: Project setup and developer tools
Rebuild and vary the project setup and developer tools example until every important piece feels familiar.
Mini project: Profile card componentProject
Render one learner profile from props and test missing content.
Unit project: Course landing interfaceProject
Compose a complete static React page from small reusable components.
02Components, props and composition8 chapters
Create reusable pieces with clear data inputs and flexible children.
Section outcome: Design component APIs that remain understandable as the interface grows.
Component responsibility
Give each component one coherent rendering responsibility.
Props and one-way data flow
Pass data downward without mutating inputs.
Practice lab: Props and one-way data flow
Rebuild and vary the props and one-way data flow example until every important piece feels familiar.
Children and composition
Combine focused pieces instead of creating giant configuration objects.
Lists, keys and conditional UI
Render collections and alternatives with stable identity.
Practice lab: Lists, keys and conditional UI
Rebuild and vary the lists, keys and conditional ui example until every important piece feels familiar.
Mini project: Reusable notice collectionProject
Create one composable notice component with success, warning and error examples.
Unit project: Component-driven directoryProject
Build a filterable directory entirely from reusable presentational components.
03State, events and derived values8 chapters
Model changing information and update it predictably from user events.
Section outcome: Build an interactive feature without duplicated or contradictory state.
useState and updates
Store only values that genuinely change and use functional updates when they depend on earlier state.
Event handling
Translate user actions into explicit state transitions.
Practice lab: Event handling
Rebuild and vary the event handling example until every important piece feels familiar.
Derived values
Calculate values from source state instead of synchronising duplicates.
State structure
Group or separate values based on how they change together.
Practice lab: State structure
Rebuild and vary the state structure example until every important piece feels familiar.
Mini project: Interactive quantity pickerProject
Build an accessible control with minimum, maximum and derived price.
Unit project: Shopping basket stateProject
Model add, remove, quantity and total behaviour with predictable updates.
04Forms and shared state8 chapters
Build accessible forms, validate intent and coordinate related components.
Section outcome: Create a multi-step form with useful errors and preserved input.
Controlled form fields
Connect field values and changes to state when the application must coordinate them.
Validation and error UX
Explain what failed, where and how to recover.
Practice lab: Validation and error UX
Rebuild and vary the validation and error ux example until every important piece feels familiar.
Lifting state
Move shared state to the nearest common owner.
Reducers for workflows
Represent complex state transitions with named reducer actions.
Practice lab: Reducers for workflows
Rebuild and vary the reducers for workflows example until every important piece feels familiar.
Mini project: Accessible registration formProject
Build validation that connects every error to its field.
Unit project: Multi-step application formProject
Create a resumable workflow with reducer state and a final review step.
05Effects and API integration8 chapters
Synchronise with external systems without using effects for ordinary calculations.
Section outcome: Load remote data with cancellation and complete UI states.
When an effect is appropriate
Use effects to synchronise with systems outside React, not to calculate render data.
Dependencies and cleanup
Declare reactive dependencies and undo subscriptions or requests.
Practice lab: Dependencies and cleanup
Rebuild and vary the dependencies and cleanup example until every important piece feels familiar.
Fetching and race conditions
Cancel or ignore stale requests when inputs change.
Caching and server-state tools
Recognise when a dedicated data library simplifies repeated server state.
Practice lab: Caching and server-state tools
Rebuild and vary the caching and server-state tools example until every important piece feels familiar.
Mini project: Cancellable searchProject
Load search suggestions without stale-response flicker.
Unit project: API-backed course browserProject
Create loading, empty, error, retry and success states around remote data.
06Routing and application architecture8 chapters
Connect URLs to screens and organise features for growth.
Section outcome: Build a multi-route application with meaningful navigation and error pages.
Client-side routes
Map stable URLs to interface views and navigation.
Nested layouts and parameters
Share layout while rendering resource-specific routes.
Practice lab: Nested layouts and parameters
Rebuild and vary the nested layouts and parameters example until every important piece feels familiar.
Search parameters
Keep filters shareable and browser-history friendly.
Feature-based architecture
Group related components, state and tests around product capabilities.
Practice lab: Feature-based architecture
Rebuild and vary the feature-based architecture example until every important piece feels familiar.
Mini project: Shareable filtered routeProject
Synchronise one filter with search parameters.
Unit project: Multi-route learning portalProject
Build nested routes, resource pages and recovery states.
07TypeScript and React testing8 chapters
Make component contracts explicit and protect user behaviour with tests.
Section outcome: Convert a feature to TypeScript and test its important journeys.
Typing props and state
Describe component inputs and changing values without broad any types.
Unions and narrowing
Represent allowed UI states so impossible combinations become harder to create.
Practice lab: Unions and narrowing
Rebuild and vary the unions and narrowing example until every important piece feels familiar.
Component behaviour tests
Interact with the interface as a user and assert visible outcomes.
Mocking boundaries
Replace network or time boundaries without mocking every implementation detail.
Practice lab: Mocking boundaries
Rebuild and vary the mocking boundaries example until every important piece feels familiar.
Mini project: Typed status componentProject
Model and test loading, empty, error and success states.
Unit project: Tested TypeScript featureProject
Convert a complete React feature and protect its main user journey.
08Next.js, performance and deployment8 chapters
Understand server/client boundaries and ship a measured React product.
Section outcome: Deploy and present a production-quality React capstone.
Server and client components
Place data and interaction on the appropriate side of the application boundary.
Rendering strategies
Choose static, dynamic or streamed rendering based on content and freshness.
Practice lab: Rendering strategies
Rebuild and vary the rendering strategies example until every important piece feels familiar.
Performance and accessibility
Measure bundles, interaction and semantics before optimising.
Deployment and observability
Configure environments, capture failures and preserve a recovery path.
Practice lab: Deployment and observability
Rebuild and vary the deployment and observability example until every important piece feels familiar.
Mini project: Rendering decision memoProject
Choose and justify rendering for three different pages.
Unit project: Learning portal capstoneProject
Build, test, optimise, deploy and document a complete React application.
Progress, accounts and certificates
Guest progress is saved in this browser on this device. Clearing site data or switching browsers can remove access to that local progress. An optional account can synchronize supported course progress; it is not required to access the lessons. Download or back up project work separately.
Certificates recognize completion of the course activities on this site. They are not university credit, professional accreditation or proof that every program you write is correct.