← Back to garden 🗺️

page

Web development MOC

Importance of the Web

The web is a place where everybody can access to information

Why to be web developer?

Why not to be a web developer?

Web Development allows


Basics

Web Technologies

HTML
CSS
JavaScript
  • Basics
  • DOM Manipulation
  • Fetch
WebAssembly

Building APIs

  • What is an API
API Styles
  • REST
  • SOAP
  • JSON API
  • gRPC
  • GraphQL

Real-time Data

  • Server Sent Events
  • Web Sockets
  • Long Polling
  • Short Polling

Internet

The world-wide-web

Browsers

Browser APIs
  • Storage
  • Web Sockets
  • Server Sent Events
  • Service Workers
  • Location
  • Notifications
  • Payments

Security

Authentication

Web security Basics
  • CORS
  • HTTPS
  • Content Security Policy
  • OWASP
Authentication Strategies
  • Cookie
  • OpenID
  • OAuth
  • Basic Auth
  • JWT
  • Token Auth

Frontend Development

Building UI

Web components

Composition

Animations

JS Animations
CSS Animations
Performance
Honouring user preferences

Responsive design
  • Mobile-first
  • Text size

Frontend Frameworks

Full-stack Frameworks

  • SSR

Tooling

Bundlers
Testing
Package Managers

NPM
PNPM
Yarn
BUN

Build Tools
Module Bundlers

Webpack
ESLint
Rollup

Task Runners

Npm Scripts

Linters and Formatters

Prettier
ESLint
Biome

Type Checking
  • Typescript
  • JS Doc

Deployment

Strategies
  • SSR
  • SSG
  • CSR
Service Providers
  • Vercel
  • Netlify
  • CloudFlare
Containerization
  • Docker

Design Systems

Architecture Patterns

Site Optimisation

Accessibility

Performance

  • Lighthouse
  • Service Workers
  • Cache-Control
  • Streamed Responses

Mono Repositories

Build Systems

What is a Build System?
  Save time; Incremental builds & Caching
  Parallel processing
  
  Differences between Package managers?
  Build systems sit on top of package managers to optimise the performance of dependency management.

  • Turporepo & NX
  • SyncPack - Maintain same versions of packages across projects to hit cache as often as possible
Types of dependencies
  • dependencies Needed at runtime/buildtime
  • devDependencies Needed just at buildtime - not installed by consumers of the library
  • peerDependencies Use a package without having consumers to install it - Expect consumers to be using a range of versions of the dependency that your library will be able to handle
  • optionalDependencies Can or not use a depepdency and keep working without it
Packaging Patterns
Single-entrypoint vs Multi-entrypoint

Better organisation
Different bindings i.e. svelte entrypoint vs nextjs entrypoint

"exports": {
// Single entry point,
//import {expored} from "package"
	".": : "./dist/index.js" 

//Multi-entry point 
//import {expored} from "package/components"
	"./components": "./dist/components" 
},
Just-in-time packages:

They export raw .ts files, leaving the responsibility to transpile it to JavaScript to the consuming application (On-Demand)
Pros

  1. Low-configuration way to create internal packages

Cons

  1. No build caching, since there’s no build step
  2. Can’t use ts compiler options for import paths
  3. Errors in these packages will propagate to importing apps
  4. Worst editor performance
"exports": {
	".": : "./src/index.ts"
}
Compiled packages

They export .js files that have already been pre-built, making it easier to cache and distribute.
Pros
Cons

"exports": {
	".": : "./dist/index.js"
},
"scripts": {
	"dev": "tsc --watch --preserveWatchOptions",
	"build": "tsc",
}
// tsconfig.json

"compilerOptions": {
	"outDir": "dist"
}
// Add 
Monorepo Organisation

We set typescrpt/lint/testRunners at the top level.

  • Apps
  • Packages
  • Utils
    • TSConfig
    • Linting/Formatting

Advanced CSS

  • Filters
  • Transformations
  • Namespaces
  • Functions & Properties

Advanced JS

  • WebWorkers
  • Web Assembly
  • AI

3D & VR


Backend Development

Web Servers

  • Nginx
  • Apache

Backend Frameworks

Deployment

Strategies
JS-only strategies
Containarization

Project Architecture

Design Patterns

Advanced Backend Architecture

  • Queues
  • Replication
  • Databases

References

Backend Developer Roadmap: What is Backend Development?
Frontend Developer Roadmap: What is Frontend Development?
How to open Chrome/Chromium browsers without CORS Limitations