Introduction

Client-side

  • framework for web page, e.g. Svelte, React, etc.
  • abstracts away underlying HTML, CSS and JavaScript, e.g. DOM API
  • define structure, presentation and behavior in reusable and composable components instead of keeping them in separate files
  • declarative updating of view when data changes, “reactive”
  • compiles to JavaScript, i.e. web page is client-side rendered

Site generator

  • framework for website, e.g. SvelteKit, Next.js, etc.
  • each web page is using the client-side web framework
  • web pages can be defined filesystem-based, component-based, configuration-based, etc.
  • can compile web pages for server-side rendering, server-side routing
  • can include a router in server-side rendered pages for subsequent client-side routing, needs server endpoints for the data
  • generates JavaScript for server endpoints of JavaScript-based HTTP servers, e.g. Node, Cloudflare Workers, etc.
  • single code base for both front- and back-end of website
  • beware: not official name but own invention, derived from “static site generator” ❗️

Server-side

  • framework for HTTP server, e.g. Koa, Express, etc.
  • abstracts away underlying HTTP server, e.g. http module in Node
  • exposes an API to declaratively handle requests and responses

Resources