On the screen

Frontend

The frontend is the part of a product that runs on the visitor's own screen: the pages, buttons, forms and animations in the browser. It is built from HTML for structure, CSS for looks and JavaScript for behaviour, and most teams add a framework so that screens stay manageable as a product grows.

The pieces stack up. A framework such as React or Vue describes the screens, a meta-framework such as Next.js adds pages, routing and server rendering, and a build tool such as Vite packages it all for the browser. Around them sit styling kits, libraries for state and data, form validation, animation, and the craft of making pages work on every screen and for every visitor.

26 terms · 5 comparisons · prices checked September 2026

26 terms, click any to open

Frameworks

React

LibraryOpen source
A JavaScript library for building screens out of reusable pieces called components. It powers a large share of modern web apps and, through React Native, many mobile apps.

In React you write components: functions that take inputs (props) and return what should appear on screen, usually in JSX, an HTML-like syntax inside JavaScript. When data changes, React re-runs the affected components and updates only the parts of the page that actually changed. Hooks such as useState and useEffect give components memory and side effects.

React itself only draws the interface. Routing, data loading and server rendering come from a framework on top, such as Next.js or React Router, or from separate libraries. Recent versions added Server Components, which run only on the server, and the React Compiler, which handles much of the performance tuning that used to be done by hand. The same component model powers React Native for iOS and Android.

Meta created React and released it as open source in 2013. In 2026 it handed React, React Native and JSX to the React Foundation, hosted by the Linux Foundation, so the project no longer belongs to a single company.

Pros

  • Huge ecosystem of libraries, UI kits and tutorials
  • Large hiring pool, since so many developers already know it
  • Component model scales from one widget to a very large app
  • Skills carry over to mobile apps through React Native

Cons

  • Only the view layer, so routing, data and build choices are yours to make
  • Many ways to do the same thing, which can confuse beginners
  • Easy to ship too much JavaScript without a framework's help

Pick it when

  • Interactive web apps such as dashboards, editors and portals
  • You want the widest choice of libraries and developers
  • Web and mobile apps should share skills or code

Skip it when

  • A mostly static content site, where plain HTML or Astro is lighter
  • The team already knows Vue, Angular or Svelte well

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: React.js, ReactJS, JSX

Open React as a pageOfficial site (opens in a new tab)

Vue

FrameworkOpen source
An approachable JavaScript framework for building web interfaces, known for a gentle learning curve and clear documentation. It is used for everything from small widgets to full apps.

Vue components are usually written as single-file components: one .vue file holding the template (HTML), the script and the styles. Its reactivity system tracks which data each part of the page uses, so when a value changes only the dependent parts update. The Composition API (with ref and computed) is the modern way to write logic, while the older Options API still works.

Vue was created by Evan You and is run as an independent, sponsor-funded project rather than by a big company. The official pieces cover most needs: Vue Router for pages, Pinia for shared state, and Nuxt for server rendering. It can also be dropped into an existing page with a script tag, which makes it popular for modernising older server-rendered sites one piece at a time.

Pros

  • Gentle learning curve and very clear official docs
  • Official router, state library and devtools that fit together
  • Single-file components keep template, logic and styles in one place
  • Can be added to an existing page without a build step

Cons

  • Smaller ecosystem and hiring pool than React
  • Fewer ready-made UI kits in some niches
  • Older tutorials mix two API styles (Options and Composition)

Pick it when

  • Teams that want a productive framework with less to learn
  • Upgrading a server-rendered site, such as a Laravel app, piece by piece
  • Full apps with Nuxt when server rendering is needed

Skip it when

  • You depend on a React-only library or UI kit

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: Vue.js, VueJS, Vue 3

Open Vue as a pageOfficial site (opens in a new tab)

Angular

FrameworkOpen source
A complete, opinionated framework from Google for building large web apps, with routing, forms, testing and a command-line tool included.

Angular apps are written in TypeScript and built from components, each with a template, a class and styles. Unlike React or Vue, it ships nearly everything in one box: a router, forms, an HTTP client, dependency injection and the Angular CLI, which generates code and runs builds and tests. That shared structure makes one Angular codebase look much like another.

Google releases a new major version roughly every six months. Recent versions moved to standalone components, a built-in control-flow syntax and signals, a simpler way to track changing values, and new apps no longer need the older Zone.js change detection. Angular is a full rewrite of AngularJS (version 1), which is no longer supported.

Pros

  • Everything in one box: router, forms, HTTP, testing and a CLI
  • Strong conventions keep large teams consistent
  • TypeScript first, with long-term support releases
  • Backed by Google and widely used in enterprise software

Cons

  • Steeper learning curve, with many concepts to learn up front
  • More code and ceremony for small projects
  • Smaller choice of third-party UI libraries than React

Pick it when

  • Large business apps built by several teams over many years
  • Organisations that want one prescribed way of doing things

Skip it when

  • Small sites, prototypes or content pages
  • A small team that wants to move quickly with less structure

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: Angular framework, ng, Angular CLI

Open Angular as a pageOfficial site (opens in a new tab)

Svelte and SvelteKit

FrameworkOpen source
A framework that compiles components into small, plain JavaScript at build time, so the browser has less work to do. SvelteKit is its companion for full apps with pages and server rendering.

Most frameworks ship a runtime that works out what changed on the page while the app runs. Svelte does that work in its compiler instead: it turns .svelte files into code that updates exactly the parts of the page that depend on a value. Svelte 5 introduced runes, explicit markers such as $state, $derived and $effect, which make reactivity clearer and also work outside components.

SvelteKit is the official app framework: file-based routing, server-side rendering, static pages, form actions and adapters for hosts such as Vercel, Netlify, Cloudflare and Node.js. Svelte was created by Rich Harris and is developed in the open by a core team and community.

Pros

  • Small bundles and fast updates, since there is no heavy runtime
  • Less boilerplate: components read like HTML, CSS and a little JavaScript
  • SvelteKit covers routing, server rendering and deployment adapters
  • Scoped styles, transitions and animations built in

Cons

  • Smaller ecosystem and job market than React or Vue
  • The move to runes left many older tutorials out of date
  • Fewer ready-made component libraries

Pick it when

  • Fast, lightweight sites and apps where bundle size matters
  • Small teams that value simple, readable components
  • Interactive embeds, widgets and data graphics

Skip it when

  • You need a large pool of developers to hire from quickly
  • A key library you rely on only exists for React

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: Svelte, SvelteKit, Svelte 5, runes

Open Svelte and SvelteKit as a pageOfficial site (opens in a new tab)

Meta-frameworks

Next.js

FrameworkOpen source
A React framework from Vercel that adds pages, routing, server rendering and a backend layer, so one project can hold a whole website or web app.

Next.js decides where and when each page is built: ahead of time at build, on the server for every request, or refreshed in the background (ISR). Its App Router, based on folders in the app directory, uses React Server Components by default, so data can be fetched on the server and less JavaScript reaches the browser. Route handlers and server functions let the same project handle forms, APIs and webhooks.

It also bundles image optimisation, font loading, SEO metadata and Turbopack, a Rust-based bundler that is the default in recent versions. The older Pages Router is still supported for existing apps. Next.js is open source and runs on any Node.js server or in Docker, but some features work most smoothly on Vercel, the company that makes it, which is worth weighing if you plan to host elsewhere.

Pros

  • Static, server-rendered and API routes in one project
  • Server Components cut the JavaScript sent to browsers
  • Built-in image, font and SEO helpers
  • Very large community, with many examples and hosting options
  • Deploys in minutes on Vercel, with a preview for every branch

Cons

  • Caching and server-versus-client rules take real effort to learn
  • Big changes between major versions mean regular upgrade work
  • Some features are easiest on Vercel; self-hosting needs more setup

Pick it when

  • Marketing sites, stores and SaaS apps that need good SEO
  • A React team that wants one framework for pages and backend routes
  • Sites that mix static pages with personalised, live ones

Skip it when

  • A pure single-page app behind a login, where Vite is simpler
  • A content site with little interactivity, where Astro ships less JavaScript

What it costs · Open source

Free (MIT). Hosting is separate: Vercel's Hobby plan is free for personal, non-commercial use and Pro is about $20 a month per developer; any Node.js host works too.

Next.js pricing (opens in a new tab)Approximate, checked September 2026.

Also called: Next, NextJS, App Router, Pages Router

Open Next.js as a pageOfficial site (opens in a new tab)

Nuxt

FrameworkOpen source
The full-app framework for Vue, adding file-based pages, server rendering, static generation and server routes, much as Next.js does for React.

A Nuxt project maps files in a pages folder to URLs, auto-imports components and helpers, and renders each route on the server, at build time or in the browser, as configured. Its server engine, Nitro, runs API routes and deploys the same app to Node.js, serverless platforms or edge networks through presets.

A large module ecosystem adds content sites, images, authentication, SEO and UI kits such as Nuxt UI. NuxtLabs, the company behind it, joined Vercel in 2025; Nuxt and Nitro stayed MIT-licensed and host-neutral, and several previously paid add-ons became free.

Pros

  • Vue's official answer for server rendering and full apps
  • Sensible defaults: auto-imports, file routing and layouts
  • Nitro deploys to almost any host, from Node.js to the edge
  • Rich module ecosystem for content, images and SEO

Cons

  • Smaller community than Next.js
  • Auto-imports and conventions can feel like magic when debugging
  • After a major upgrade, some modules take time to catch up

Pick it when

  • Vue teams building SEO-friendly sites, stores or apps
  • Content sites that also need server routes

Skip it when

  • The team works in React (Next.js or React Router fits better)

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: Nuxt.js, NuxtJS, Nitro

Open Nuxt as a pageOfficial site (opens in a new tab)

Astro

FrameworkOpen source
A framework for content-heavy websites such as blogs, docs and marketing pages. It sends plain HTML by default and adds JavaScript only where a page needs it.

Astro renders pages to HTML at build time or on the server, and ships no JavaScript unless a component asks for it. Interactive parts become islands: a React, Vue, Svelte or Solid component marked with a directive such as client:visible loads on its own, while the rest of the page stays static. Content collections give Markdown and MDX files typed, validated front matter.

It suits sites where reading matters more than app-like interaction, and sending less JavaScript helps Core Web Vitals. Server islands and on-demand rendering cover personalised parts. The team behind Astro joined Cloudflare in 2026; the framework stays MIT-licensed and deploys to most hosts.

Pros

  • Very little JavaScript by default, so pages load quickly
  • Mix components from React, Vue, Svelte and others in one site
  • Content collections keep Markdown and MDX sites tidy
  • Deploys as static files or with server rendering

Cons

  • Not built for highly interactive, app-like products
  • Sharing state between islands takes extra work

Pick it when

  • Blogs, documentation, portfolios and marketing sites
  • Sites where speed and SEO matter more than interactivity
  • Moving a content site off a heavier framework

Skip it when

  • Dashboards, editors or apps with lots of shared state

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: Astro.build, islands architecture, Astro islands

Open Astro as a pageOfficial site (opens in a new tab)

React Router and Remix

LibraryOpen source
The long-standing routing library for React, which since version 7 also includes everything the Remix framework offered: server rendering, data loading and form handling.

React Router maps URLs to components and handles links, nested layouts and the back button without full page reloads. It can be used in three ways: as a plain router inside a single-page app, with data loaders and actions attached to each route, or as a full framework with server rendering and a Vite plugin.

Remix began as a framework built on top of React Router. Its own layer grew so thin that its features were merged into React Router 7 as framework mode, and Remix apps upgrade to it. The Remix name now belongs to Remix 3, a separate project that does not use React. React Router apps deploy to Node.js, Cloudflare Workers, Vercel, Netlify and other hosts through adapters.

Pros

  • One library, from a simple router up to a full framework
  • Loaders and actions keep data and forms close to each route
  • Built on web standards such as Request, Response and HTML forms
  • Deploys to Node.js, serverless and edge hosts

Cons

  • Frequent renames and API changes over the years make old guides confusing
  • Smaller framework ecosystem than Next.js
  • Server Components support is newer than in Next.js

Pick it when

  • Any React single-page app that needs routing
  • Server-rendered React apps that lean on forms and web standards
  • Existing Remix apps, which upgrade to it

Skip it when

  • You want the largest pool of React framework examples and hosting guides

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: React Router, Remix, react-router-dom, framework mode

Open React Router and Remix as a pageOfficial site (opens in a new tab)

Build tools

Vite

ToolOpen source
A development server and build tool for web projects. It starts in moments, shows code changes in the browser straight away, and bundles the finished site for production.

During development Vite serves your source files to the browser as native ES modules and transforms each one only when it is requested, so even large projects start quickly, and hot module replacement updates the page without losing its state. For production it bundles, minifies and splits the code into small files. Vite 8 replaced its two engines (esbuild and Rollup) with Rolldown, a single bundler written in Rust.

Vite works with React, Vue, Svelte, Solid, Preact and plain TypeScript, and it sits underneath many frameworks, including Nuxt, SvelteKit, Astro and React Router. Since Create React App was deprecated, it is the usual way to start a plain React single-page app. Vitest, a test runner built on it, reuses the same configuration.

Pros

  • Dev server starts quickly and updates the page on every save
  • Little configuration, with sensible defaults for TypeScript, JSX and CSS
  • Works with most frameworks, and many frameworks are built on it
  • Large plugin ecosystem, compatible with Rollup plugins

Cons

  • Only a build tool: no routing, server rendering or data loading on its own
  • Development and production builds can still differ in rare edge cases

Pick it when

  • Single-page apps and dashboards in React, Vue or Svelte
  • Replacing Create React App or an old webpack setup
  • Libraries and widgets that need a quick build setup

Skip it when

  • Many public pages need server rendering for SEO (use a framework built on it)

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: vitejs, Vite dev server, Rolldown

Open Vite as a pageOfficial site (opens in a new tab)

Create React App

ToolOpen source
The official tool that once set up a new React project with one command. The React team deprecated it in 2025, and new projects now start with a framework or Vite.

Create React App hid webpack, Babel, ESLint and Jest behind a single package (react-scripts), so a beginner could run one command and start writing components without touching any configuration. For years it was the default way to learn React and start a project.

It fell behind: slow start-up and rebuilds, no server rendering, and few updates after 2022. In February 2025 the React team officially deprecated it and pointed people to frameworks such as Next.js and React Router, or to build tools such as Vite. Existing apps keep working, and moving one to Vite is usually a matter of a few configuration changes and relocating index.html.

Pros

  • Zero configuration: one command gave a working React app
  • Many existing tutorials and projects use it
  • Existing apps still build and run

Cons

  • Deprecated by the React team in 2025, with no new features coming
  • Slow development server and builds compared with Vite
  • No server rendering, routing or data loading
  • Ageing dependencies trigger security warnings

Pick it when

  • Maintaining an existing app until it can be migrated
  • Following an older tutorial, for learning only

Skip it when

  • Starting any new project (use Vite or a framework instead)

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: CRA, create-react-app, react-scripts

Open Create React App as a pageOfficial site (opens in a new tab)

Bundlers

Tool
Tools that gather all of a project's code files and packages into a few optimised files that browsers can load quickly.

A modern app is written as hundreds of small modules plus packages from npm. A bundler follows every import from an entry file, combines what is needed, removes unused code (tree shaking), minifies it and splits it into chunks that load on demand. It also handles CSS, images and TypeScript along the way.

webpack defined the category and is still found in many older projects. Newer tools written in faster languages have taken over most new work: esbuild (Go), Rolldown (a Rust bundler compatible with Rollup, which now powers Vite), Turbopack (Next.js) and Rspack, a webpack-compatible bundler in Rust. Most developers meet a bundler through a framework or Vite rather than configuring one by hand.

Also called: module bundler, webpack, Rollup, esbuild, Turbopack, Rspack

Open Bundlers as a page

SWC and Babel

Tool
Tools that translate modern JavaScript, TypeScript and JSX into plain JavaScript that every target browser can run. Babel is the long-standing JavaScript version; SWC does the same job in Rust, much faster.

Browsers do not understand TypeScript or JSX, and older ones miss newer syntax. A transpiler parses the source, transforms it and prints ordinary JavaScript, usually with a source map so that errors point back at the original code. Babel, around since 2014, did this for most of the JavaScript world and has a huge plugin system.

SWC (Speedy Web Compiler) is written in Rust and is many times faster, so Next.js, Deno and Rspack build on it. esbuild and Oxc play a similar role elsewhere. Babel is still common where a particular plugin is needed; the React Compiler, for example, ships as a Babel plugin.

Also called: SWC, Babel, transpiler, Speedy Web Compiler

Open SWC and Babel as a pageOfficial site (opens in a new tab)

Styling and UI kits

Tailwind CSS

FrameworkOpen source
A CSS framework where you style elements with small ready-made classes, such as p-4 or text-center, right in the HTML instead of writing separate stylesheets.

Each Tailwind class does one thing: flex, mt-2, bg-white, md:grid-cols-3. Combining them in markup builds any design, and prefixes handle hover states, dark mode and screen sizes. At build time Tailwind scans your files and generates CSS only for the classes you actually used, so the final stylesheet stays small.

Version 4 moved configuration into the CSS file itself (theme values live in an @theme block) and rebuilt the engine for speed. Long class lists are the usual complaint; components, plus helpers such as clsx and tailwind-merge, keep them manageable. In 2026 Tailwind Labs joined Shopify. The framework stays MIT-licensed, while its paid Tailwind Plus kit of components and templates closed to new customers.

Pros

  • Quick to style without switching files or inventing class names
  • Consistent spacing, colour and type scales out of the box
  • Small production CSS, since unused classes are never generated
  • Works with any framework, and many UI kits build on it

Cons

  • Long class lists can make markup hard to read
  • A new vocabulary of class names to learn
  • Design consistency still depends on the team, not the tool

Pick it when

  • Most new web projects with custom designs
  • Teams using component kits such as shadcn/ui
  • Prototypes that need to look polished quickly

Skip it when

  • A team that prefers separate stylesheets or CSS Modules
  • An existing design system already built on another styling approach

What it costs · Open source

Free (MIT). Tailwind Plus, the paid kit of components and templates, stopped taking new customers in September 2026; existing buyers keep access.

Approximate, checked September 2026.

Also called: Tailwind, TailwindCSS, utility-first CSS, Tailwind Plus, Tailwind UI

Open Tailwind CSS as a pageOfficial site (opens in a new tab)

shadcn/ui

LibraryOpen source
A widely used collection of ready-made React components (buttons, dialogs, forms, tables) that you copy into your own project and then own and edit, rather than install as a package.

Instead of adding a dependency, you run the shadcn CLI and it writes each component's source file into your project. The components are styled with Tailwind CSS and built on accessible headless primitives, so keyboard use, focus handling and screen-reader labels are taken care of. Because the code is yours, changing a variant or restyling a dialog is an ordinary edit.

shadcn/ui launched on Radix UI in 2023. It later added Base UI, a newer headless library from some of the people who created Radix, and made it the default for new projects in 2026, while Radix stays fully supported. Registries let other teams publish components that install the same way, and AI coding tools often generate shadcn-style code, which has made it a common starting point for React apps.

Pros

  • You own the code, so there is no library upgrade to wait for
  • Accessible behaviour comes from well-tested primitives
  • Clean, neutral design that is easy to theme
  • Large ecosystem of registries, blocks and templates

Cons

  • Updates are not automatic; improvements must be pulled in by hand
  • Made for React and Tailwind (community ports exist for other frameworks)
  • Many sites end up looking alike unless the theme is changed

Pick it when

  • React and Next.js apps that need a solid component set quickly
  • Teams that want full control over component code
  • Admin panels, dashboards and SaaS interfaces

Skip it when

  • A project that does not use React and Tailwind
  • You want a fully managed library that you simply upgrade

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: shadcn, shadcn ui, shadcn/create

Open shadcn/ui as a pageOfficial site (opens in a new tab)

Radix UI

LibraryOpen source
A set of unstyled, accessible React building blocks, such as dialogs, menus, tabs and tooltips, that handle behaviour and keyboard support while you supply the look.

Radix Primitives are headless: each component ships the tricky parts (focus trapping, keyboard navigation, ARIA attributes, positioning of popovers) but no visual style. You compose them from parts such as Dialog.Trigger and Dialog.Content and style them with Tailwind, CSS Modules or any other approach. Radix Themes is a separate, pre-styled library built on top.

Radix is open source and maintained by WorkOS. It became widely known as the layer underneath shadcn/ui. Some of its original authors now build Base UI, a similar headless library that shadcn/ui made its default for new projects in 2026, so it is worth comparing the two, along with React Aria, when starting fresh.

Pros

  • Accessibility and keyboard behaviour handled carefully
  • No styles to fight: works with any design or CSS approach
  • Composable parts give fine control over the markup
  • Mature and used in many production apps

Cons

  • You still design and style everything yourself
  • Works with React only
  • shadcn/ui now defaults to Base UI, so newer guides may assume it

Pick it when

  • Building your own design system on accessible foundations
  • Custom-designed React apps that need solid dialogs, menus and popovers

Skip it when

  • You want ready-styled components (shadcn/ui or Radix Themes)
  • The project does not use React

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: Radix, Radix Primitives, Radix Themes, headless UI

Open Radix UI as a pageOfficial site (opens in a new tab)

State and data

State management

Concept
How an app keeps track of changing information, such as who is signed in, what is in the basket or which tab is open, and keeps every part of the screen in step with it.

State is any data that can change while the app runs. Some belongs to one component (whether a menu is open), some is shared across screens (the signed-in user, a basket), some really lives on a server and is only cached in the browser (a list of orders), and some belongs in the URL (search filters). Mixing these up is a common source of bugs.

Frameworks provide local state (useState in React, ref in Vue, signals in Angular and Svelte runes). For shared state, React apps use context or a store library such as Zustand or Redux; Vue has Pinia; Angular has services and NgRx. For server data, a caching library such as TanStack Query usually replaces most hand-written global state.

Also called: app state, global state, store, signals

Open State management as a page

Zustand

LibraryOpen source
A small, simple library for sharing state between React components, with a store you create in a few lines and read with a hook.

You call create() with the starting values and the functions that change them, and get back a hook. Any component can call that hook and pick just the slice it needs, so it re-renders only when that slice changes. There is no provider to wrap the app in and very little boilerplate.

Middleware adds saving to localStorage (persist), Redux DevTools support and Immer-style updates. Zustand comes from the Poimandres collective (pmndrs), which also makes Jotai and React Three Fiber. It suits client state such as settings, carts and UI toggles; data fetched from a server is usually better handled by TanStack Query.

Pros

  • Tiny, with almost no boilerplate
  • No provider needed, and stores work outside React components too
  • Components re-render only for the values they select
  • Easy to persist to storage and inspect in Redux DevTools

Cons

  • Few rules, so large apps need their own conventions
  • Not built for caching server data (pair it with TanStack Query)

Pick it when

  • Shared client state in small to large React apps
  • Replacing heavy context setups or a Redux store that feels like overkill

Skip it when

  • A large team that wants strict, enforced patterns (Redux Toolkit)
  • The state is really server data

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: zustand store

Open Zustand as a pageOfficial site (opens in a new tab)

Redux

LibraryOpen source
A library that keeps an app's shared state in one central store and changes it only through named actions, which makes every change predictable and traceable.

In Redux the whole shared state lives in one store. Components dispatch actions such as 'cart/itemAdded', and reducer functions compute the next state from the current one without modifying it in place. Because every change goes through that single path, Redux DevTools can list each action and even step back through them (time-travel debugging).

Early Redux was known for boilerplate. Redux Toolkit is now the official way to write it: createSlice generates actions and reducers together, Immer allows simple-looking updates, and RTK Query adds data fetching and caching. Redux works with any UI library but is mostly used with React through react-redux.

Pros

  • Predictable, traceable updates through one path
  • Detailed DevTools with action history and time travel
  • Redux Toolkit removes most of the old boilerplate
  • Mature, well documented and familiar to many developers

Cons

  • More ceremony than Zustand for small apps
  • Old tutorials show outdated patterns without Redux Toolkit
  • A single global store can become a dumping ground

Pick it when

  • Large apps with complex shared state and many contributors
  • You need strong debugging, logging or undo of state changes
  • An existing Redux codebase

Skip it when

  • Small apps where local state or Zustand is enough
  • Most of the state is server data (TanStack Query fits better)

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: Redux Toolkit, RTK, RTK Query, react-redux

Open Redux as a pageOfficial site (opens in a new tab)

TanStack Query

LibraryOpen source
A library that fetches, caches and refreshes data from servers and APIs, so screens show loading states, stay up to date and avoid duplicate requests without hand-written code.

You describe a query with a key, such as ['orders', userId], and a function that fetches it. TanStack Query caches the result under that key, shares it with every component that asks, refetches in the background when data goes stale or the window regains focus, retries failures and exposes loading and error states. Mutations change data on the server and can update the screen optimistically before the reply arrives.

It started as React Query and now has adapters for Vue, Svelte, Solid and Angular. It handles server state, not client state, so apps often pair it with a small store such as Zustand for the rest. SWR from Vercel is a lighter alternative, and RTK Query covers the same ground for Redux users.

Pros

  • Caching, deduplication and background refresh built in
  • Removes most hand-written loading and error state code
  • Supports pagination, infinite scrolling and optimistic updates
  • Dedicated DevTools for inspecting the cache

Cons

  • Cache keys and stale times take time to understand
  • Adds a dependency where framework loaders may already fetch data
  • Not meant for purely local UI state

Pick it when

  • Apps that read and write lots of API data
  • Single-page apps talking to REST, GraphQL or Supabase
  • Screens that must stay fresh without manual reloading

Skip it when

  • Pages whose data is fully loaded by Server Components or route loaders

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: React Query, Vue Query, useQuery

Open TanStack Query as a pageOfficial site (opens in a new tab)

Forms and validation

React Hook Form

LibraryOpen source
A React library for building forms that stay fast and simple, handling values, validation and error messages with very little code.

React Hook Form leans on uncontrolled inputs: register() connects each field to the form through a ref and the browser holds the value, so typing in one field does not re-render the whole form. useForm returns helpers for submission, errors, dirty and touched fields, and useFieldArray handles repeating rows.

Validation can use built-in rules (required, minLength, pattern) or a schema library such as Zod through a resolver, so one schema both types the data and checks it. For controlled inputs, such as date pickers from a UI kit, a Controller component bridges the gap. shadcn/ui documents ready-made form patterns for it.

Pros

  • Few re-renders, so large forms stay responsive
  • Small API: register, handleSubmit and formState cover most needs
  • Works with Zod, Yup and Valibot through resolvers
  • Good TypeScript support for field names and values

Cons

  • Controlled UI-kit inputs need a Controller wrapper
  • Complex dynamic forms still take careful design

Pick it when

  • Sign-up, checkout, settings and other multi-field forms in React
  • Forms that share a Zod schema with the server

Skip it when

  • A one-field form, where plain React or a form action is enough
  • Projects that do not use React

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: RHF, react-hook-form, useForm

Open React Hook Form as a pageOfficial site (opens in a new tab)

Zod

LibraryOpen source
A TypeScript library for describing what data should look like and checking it while the app runs, so bad input from forms, APIs or files is caught before it causes trouble.

You define a schema such as z.object({ name: z.string(), age: z.number().min(18) }) and call parse or safeParse on incoming data. Zod returns the checked data or a list of clear errors, and z.infer turns the same schema into a TypeScript type, so the type and the runtime check never drift apart.

It runs in browsers and on servers alike: checking form input with React Hook Form, request bodies in API routes, environment variables at start-up and structured output from AI models. Version 4 made it faster and smaller and added JSON Schema conversion. Libraries that follow the Standard Schema spec accept Zod, Valibot or ArkType interchangeably.

Pros

  • One schema gives both a runtime check and a TypeScript type
  • Readable, chainable API with clear error messages
  • Works the same in the browser and on the server
  • Wide ecosystem support: tRPC, React Hook Form, AI SDKs

Cons

  • Larger bundle than lighter options such as Valibot
  • Very large schemas can slow TypeScript down in the editor

Pick it when

  • Validating anything from outside: forms, API requests, webhooks, files
  • Sharing one set of rules between frontend and backend
  • Checking environment variables and AI model output

Skip it when

  • Bundle size is critical and a lighter library such as Valibot will do

What it costs · Open source

Free (MIT).

Approximate, checked September 2026.

Also called: zod schema, z.object, schema validation

Open Zod as a pageOfficial site (opens in a new tab)

Motion

Framer Motion

LibraryOpen source
A popular animation library for React, now called Motion, that makes elements fade, slide, spring and rearrange smoothly with a few props.

You swap a div for motion.div and describe states: initial, animate and exit values, plus a transition such as a spring. Motion handles the rest, including gestures (hover, tap, drag), scroll-linked effects and layout animations that smoothly move elements when the page rearranges. AnimatePresence animates components as they leave the page.

Created at Framer, the library became independent in late 2024 and was renamed Motion; new code imports from motion/react, and it also works with plain JavaScript and Vue. It uses the browser's hardware-accelerated animation engine where it can. The library is MIT-licensed; Motion+ is an optional paid pack of premium components and examples.

Pros

  • Declarative API that reads naturally in React components
  • Layout and exit animations that are hard to do by hand
  • Physics-based springs make movement feel natural
  • Gestures and scroll effects built in

Cons

  • Adds noticeable JavaScript to the bundle
  • Long, choreographed sequences are easier to build in GSAP
  • The rename means older guides still import from framer-motion

Pick it when

  • React interfaces that need polished transitions and micro-interactions
  • Page, modal and list animations with enter and exit states
  • Drag, swipe and other gesture-driven components

Skip it when

  • Simple hover or fade effects that plain CSS transitions handle
  • Complex scroll-driven storytelling, where GSAP fits better

What it costs · Open source

Free (MIT). Motion+, an optional pack of premium components and examples, is a one-time payment of about £299 for one person; team seats are billed yearly.

Framer Motion pricing (opens in a new tab)Approximate, checked September 2026.

Also called: Motion, Motion for React, motion/react, framer-motion

Open Framer Motion as a pageOfficial site (opens in a new tab)

GSAP

LibraryFree
A long-standing JavaScript animation library for timelines, scroll effects and complex motion on websites. It works with any framework and is free for all uses.

GSAP animates any numeric property: CSS, SVG, canvas objects or values in a WebGL scene. A tween moves one thing from A to B, and a timeline sequences many tweens with precise timing, so a whole intro can be paused, reversed or scrubbed. Plugins add scroll-driven animation (ScrollTrigger), text splitting (SplitText), shape morphing (MorphSVG) and more.

It does not depend on any framework; React projects usually use the useGSAP hook from @gsap/react, which cleans animations up automatically. Webflow acquired GreenSock in 2024 and in 2025 made GSAP and every formerly paid plugin free, commercial use included. The licence is Webflow's own rather than an open-source one, and it forbids using GSAP inside no-code animation builders that compete with Webflow.

Pros

  • Precise timelines for long, choreographed sequences
  • ScrollTrigger makes scroll-driven storytelling straightforward
  • Works with any framework, SVG, canvas and WebGL
  • Every plugin is now free, including for commercial work
  • Mature, with thorough docs and an active forum

Cons

  • Imperative style fits less naturally into React components
  • Its own licence, not open source, with a restriction on competing tools
  • Easy to overdo animation and slow a page down

Pick it when

  • Marketing and portfolio sites with scroll-driven storytelling
  • Complex sequences, SVG animation and text effects
  • Animating canvas or WebGL scenes, such as Three.js

Skip it when

  • Simple interface transitions in React, where Motion or CSS is simpler

What it costs · Free

Free for all uses, including commercial work and every plugin, under Webflow's own GSAP licence (not an open-source licence).

GSAP pricing (opens in a new tab)Approximate, checked September 2026.

Also called: GreenSock, GreenSock Animation Platform, ScrollTrigger, SplitText

Open GSAP as a pageOfficial site (opens in a new tab)

Craft

Responsive design

Concept
Designing pages so the same site adapts its layout to any screen, from a small phone to a wide monitor, instead of building separate mobile and desktop versions.

Responsive layouts use fluid grids (flexbox and CSS grid), images that scale, and media queries that change the layout at chosen widths called breakpoints. The viewport meta tag tells phones not to zoom out to a desktop-sized page. Mobile-first means writing the small-screen layout first and adding rules as space grows, which keeps the base CSS simple.

Newer tools make it more precise: container queries let a component adapt to the space it sits in rather than to the whole screen, clamp() scales text smoothly, and srcset serves smaller images to smaller screens. Touch targets need to be large enough for fingers. Google indexes the mobile version of pages, so a poor phone layout also hurts SEO.

Also called: mobile-first, media queries, breakpoints, container queries

Open Responsive design as a page

Accessibility

Concept
Making websites and apps usable by everyone, including people who are blind, deaf or colour-blind, who use a keyboard instead of a mouse, or who have other disabilities.

Most of it comes from solid basics: real buttons and links instead of clickable divs, headings in order, a label on every form field, alternative text on meaningful images, enough colour contrast, visible focus outlines, and everything reachable by keyboard. ARIA attributes fill gaps for custom widgets, but used wrongly they make things worse, so native HTML elements come first.

The Web Content Accessibility Guidelines (WCAG) set the standard, with levels A, AA and AAA; most laws point at level AA. The European Accessibility Act has applied to many consumer products and services sold in the EU since June 2025. Automated checkers such as axe and Lighthouse catch only part of the problems, so testing with a keyboard and a screen reader (VoiceOver, NVDA, TalkBack) is part of the job.

Also called: a11y, WCAG, ARIA, screen readers, inclusive design

Open Accessibility as a pageOfficial site (opens in a new tab)

Browser extensions

PlatformOne-time fee
Small add-ons that change or extend a web browser, such as ad blockers, password managers or tools that add buttons to other websites.

An extension is a bundle of HTML, CSS and JavaScript described by a manifest.json file. Content scripts run inside the pages you visit and can read or change them, a background service worker reacts to browser events, and a popup, side panel or options page gives it a small interface. Each ability (tabs, storage, access to certain sites) must be declared as a permission.

Chrome, Edge, Firefox, Opera and Safari share the WebExtensions API, so one codebase can target all of them with small changes; Safari needs the extension wrapped in a Mac or iOS app with Xcode. Chrome requires Manifest V3, which replaced long-running background pages with service workers and limited how extensions can block network requests. Firefox supports Manifest V3 too but kept the older blocking API. Stores review each submission, and broad permissions such as reading every site draw closer scrutiny.

Pros

  • Adds features right inside the websites people already use
  • Built with ordinary web skills: HTML, CSS and JavaScript
  • One codebase can reach Chrome, Edge, Firefox and Safari
  • Cheap to publish, with store distribution and automatic updates

Cons

  • Store reviews can delay releases or reject broad permissions
  • Manifest V3 limits some background and network-blocking features
  • Websites change their pages, which can break content scripts
  • Safari needs an Xcode wrapper and a paid Apple developer account

Pick it when

  • Productivity tools that work on top of other sites, such as email or a CRM
  • Companions to your own web app, such as clipping or quick capture
  • Internal tools a company installs on staff browsers

Skip it when

  • The feature works just as well as a normal website or PWA
  • It needs deep system access that browsers do not allow

What it costs · One-time fee

Chrome Web Store charges a one-time $5 developer registration fee. Firefox Add-ons and Microsoft Edge Add-ons are free to publish; Safari needs the Apple Developer Program ($99 a year).

Browser extensions pricing (opens in a new tab)Approximate, checked September 2026.

Also called: Chrome extension, add-on, WebExtensions, Manifest V3, Firefox add-on

Open Browser extensions as a pageOfficial site (opens in a new tab)

Side by side

Differences

How the options in this area compare on the questions that usually decide the choice.

React vs Vue vs Angular vs Svelte

Open as a page: React vs Vue vs Angular vs Svelte

The four main ways to build interactive web interfaces. Each can build almost anything; they differ in how much they include, how they update the page and how large their communities are.

CompareReactVueAngularSvelte
What it isA UI library; add a framework for the restA progressive framework with official add-onsA complete, opinionated frameworkA compiler that outputs small JavaScript
Backed byReact Foundation (created at Meta)Evan You, sponsors and the communityGoogleA core team and the community
Learning curveModerate; many choices to makeGentleSteepGentle
How you write itJavaScript or TypeScript with JSXHTML-like templates in .vue filesTypeScript with HTML templatesHTML-like .svelte files
Full-app frameworkNext.js or React RouterNuxtBuilt in (Angular SSR)SvelteKit
Ecosystem and jobsLargestLargeLarge, strong in enterpriseSmaller
Bundle sizeMediumSmall to mediumLargerSmall
Mobile appsReact NativeCapacitor, Ionic or NativeScriptIonic, Capacitor or NativeScriptCapacitor

How to choose

  • Pick React for the widest choice of libraries and developers, and a path to mobile through React Native.
  • Pick Vue for a gentle learning curve and an official set of tools that fit together.
  • Pick Angular for large business apps where many teams benefit from one prescribed structure.
  • Pick Svelte for small bundles and simple components, if a smaller ecosystem is acceptable.

Next.js vs Vite vs Astro vs Create React App

Open as a page: Next.js vs Vite vs Astro vs Create React App

Four ways to start a React-based website or app. They are not quite the same kind of tool: Next.js and Astro are frameworks, Vite is a build tool, and Create React App is a retired starter.

CompareNext.jsVite (single-page app)AstroCreate React App
What it isA full React frameworkA build tool and dev serverA content-first frameworkA deprecated React starter
Where pages are builtServer, build time or both, per routeIn the browserBuild time or server, with little JavaScriptIn the browser
SEO out of the boxStrongWeak without extra workStrongWeak
Backend routesYes: route handlers and server functionsNo; needs a separate APIYes: endpoints and actionsNo
Dev server speedFast with TurbopackVery fastFast (built on Vite)Slow
Best forStores, SaaS and sites that need SEODashboards and apps behind a loginBlogs, docs and marketing sitesMaintaining old projects only
HostingVercel or any Node.js hostAny static hostAny static host or serverAny static host
StatusActively developedActively developedActively developedDeprecated in 2025

How to choose

  • Pick Next.js for React sites and apps that need SEO, server rendering and backend routes in one project.
  • Pick Vite for single-page apps behind a login, where search engines do not matter.
  • Pick Astro for content sites that should load quickly with as little JavaScript as possible.
  • Avoid Create React App for new work, and move existing apps to Vite when practical.

Tailwind CSS vs Radix UI vs shadcn/ui

Open as a page: Tailwind CSS vs Radix UI vs shadcn/ui

These three are often named together because they stack: Tailwind provides the styling, Radix provides accessible behaviour, and shadcn/ui combines styling with accessible primitives (Radix or Base UI) into components you own.

CompareTailwind CSSRadix UIshadcn/ui
What it isUtility CSS classesUnstyled, accessible componentsCopy-in components built on both ideas
HandlesLooks: spacing, colour, layoutBehaviour: focus, keyboard, ARIABoth, as ready-made components
How you get itAn npm package and build pluginnpm packagesA CLI copies source into your project
StylingIt is the stylingNone; bring your ownTailwind classes you can edit
FrameworksAnyReact onlyReact (community ports exist)
UpdatesUpgrade the packageUpgrade the packagePull changes in by hand
CostFree (MIT)Free (MIT)Free (MIT)

How to choose

  • Pick Tailwind CSS on its own when you want custom designs and are happy to build components yourself.
  • Pick Radix UI when building a design system that needs solid accessibility under your own styles.
  • Pick shadcn/ui for React apps that want good-looking, accessible components quickly, with full control of the code.

Zustand vs Redux vs TanStack Query

Open as a page: Zustand vs Redux vs TanStack Query

Zustand and Redux manage state that lives in the browser; TanStack Query manages data that lives on a server. Many apps use one of the first two alongside the third.

CompareZustandReduxTanStack Query
ManagesClient stateClient state, plus server data with RTK QueryServer data: fetching and caching
SetupA few lines, no providerA store, slices and a providerA client and a provider
BoilerplateVery littleModerate with Redux ToolkitLittle
DevToolsThrough Redux DevToolsRedux DevTools with time travelIts own DevTools for the cache
SizeTinyLargerMedium
Learning curveLowModerateModerate
Best forCarts, settings, UI togglesLarge apps with complex shared stateLists, details and forms backed by an API

How to choose

  • Pick Zustand for simple shared client state with almost no setup.
  • Pick Redux Toolkit for large apps where strict patterns and detailed debugging pay off.
  • Pick TanStack Query whenever the data comes from an API, and add Zustand or Redux only for what remains.

Two widely used JavaScript animation libraries. Motion (formerly Framer Motion) fits naturally into React components; GSAP is built for long, precisely timed sequences on any stack.

CompareFramer MotionGSAP
StyleDeclarative props on componentsImperative tweens and timelines
FrameworksReact first; also plain JavaScript and VueAny, including plain JavaScript
StrengthsLayout, exit and gesture animationsTimelines, scroll storytelling, SVG
Scroll effectsuseScroll and scroll-linked valuesThe ScrollTrigger plugin
Can animateDOM, SVG and plain valuesAny numeric property, including canvas and WebGL
LicenceMIT (open source)Free, under Webflow's own licence
Paid extrasOptional Motion+ packNone; every plugin is free

How to choose

  • Pick Motion for React interfaces: page transitions, modals, lists and gestures.
  • Pick GSAP for scroll-driven storytelling, complex timelines, SVG work and canvas or WebGL scenes.
  • Both can live in one project, although most sites need only one.

Crafted in the dark. Shipped to the world.

Tell us what you are building. You get a private project space with a proposal and a line-by-line quote within a day.