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
- Elements
- Semantic
- Forms & Validations
- Search Engine Optimization (SE…
- Accessibility
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 web platform
- How does Internet Work
- What is HTTP
- What is Domain Name
- What is Hosting
- What is DNS
The world-wide-web
- The origin of the web
- What is the World Wide Web
Browsers
- What is a Browser
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
- What is a JavaScript Runtime
- Interacting with the DOM
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
dependenciesNeeded at runtime/buildtimedevDependenciesNeeded just at buildtime - not installed by consumers of the librarypeerDependenciesUse 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 handleoptionalDependenciesCan 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
- Low-configuration way to create internal packages
Cons
- No build caching, since there’s no build step
- Can’t use ts compiler options for import paths
- Errors in these packages will propagate to importing apps
- 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