Home / Web development
⌨️

Web development

HTML, CSS, JavaScript, performance, accessibility and web application security.

Accessible and secure HTML forms: validation and good practice

How to build HTML forms everyone can use: labels, input types, autocomplete, error messages, validation in the browser and on the server, and spam defence.

4 min

CMS or static site: how to choose for your project

Traditional CMS, headless or static generator: a practical comparison of editing, maintenance, security and cost to choose the right site architecture.

5 min

Content Security Policy: set it up without breaking your site

How Content Security Policy works: key directives, why to avoid unsafe-inline, nonces, hashes and Report-Only mode to roll it out step by step.

4 min

Core Web Vitals explained: LCP, INP and CLS without jargon

What LCP, INP and CLS measure, the recommended thresholds, how to read lab and field data and which changes genuinely improve each of the three metrics.

5 min

CORS explained: why the browser is blocking your request

Same-origin policy, simple and preflight requests, Access-Control headers and credentials: how CORS works and how to configure it securely on the server.

4 min

CSS container queries: truly responsive components

Container queries adapt a component to its container's space rather than the window: syntax, cqi units and when to prefer them over media queries.

4 min

CSS variables (custom properties): a practical guide

How CSS variables work: declaration, inheritance, fallback values, light and dark themes and updating them from JavaScript, with ready-to-use examples.

4 min

CSS Grid or Flexbox: when to use each one

Practical differences between CSS Grid and Flexbox: one- and two-dimensional layouts, code examples and simple criteria for picking the right tool.

4 min

HTTP caching: Cache-Control, ETag and asset versioning

How HTTP caching works: Cache-Control, validation with ETag, hashed file names and a safe caching strategy for HTML, CSS, JavaScript and APIs.

4 min

HTTP security headers every website should have

HSTS, X-Content-Type-Options, Referrer-Policy, Permissions-Policy and clickjacking protection: what each security header does and how to set it.

4 min

ES modules in JavaScript: import, export and browser use

How ES modules work: named and default exports, dynamic import, script type module, import maps and the differences from CommonJS, with examples.

5 min

Fetch and async/await in JavaScript: errors, timeouts, retries

Using fetch with async/await properly: check response.ok, handle network errors and timeouts with AbortController, run requests in parallel, retry.

4 min

Images for the web: formats, sizes and lazy loading

How to choose between JPEG, PNG, WebP, AVIF and SVG, serve the right size with srcset and sizes, and lazy load images without slowing the page.

4 min

Preventing cross-site scripting (XSS): a developer's guide

What cross-site scripting is, why it comes from untrusted data in the wrong context, and which encoding and sanitisation practices really prevent it.

5 min

Designing a clear REST API: resources, methods and status codes

How to design an understandable REST API: resource-based URLs, HTTP methods, status codes, consistent errors, pagination, versioning and security.

5 min

Loading JavaScript and CSS: defer, async and blocking resources

Why scripts and CSS can block a page and how to use defer, async, preload and preconnect so visitors see your content sooner on every page load.

5 min

Secure cookies: Secure, HttpOnly and SameSite explained

The attributes that protect session cookies: Secure, HttpOnly, SameSite, Domain, Path, expiry and the __Host- prefix, with a ready configuration.

5 min

Semantic HTML: why it matters and how to use it well

What semantic HTML is, which elements to use instead of generic divs, and why it improves accessibility, SEO and code maintenance, with practical examples.

5 min

Static hosting and CDNs: what a developer needs to know

Atomic deploys, previews, redirects and rewrites, 404 pages, environment variables and edge functions: how to work well with static hosting and CDNs.

5 min

Static sites: advantages, limits and when to choose them

What a build-time static site is, why it is fast and secure, what its real limits are and how to handle forms, search and content that keeps changing.

4 min

Structured data with Schema.org and JSON-LD: a practical guide

What structured data is, why JSON-LD is the handiest format, examples for articles, organisations and breadcrumbs, and how to validate it properly.

4 min

Technical SEO for developers: what to check in your code

Robots.txt, noindex, canonical, sitemaps, status codes, redirects, hreflang and JavaScript rendering: the technical SEO checks that fall to developers.

4 min

Web accessibility: the basics every developer should know

WCAG principles in practice: contrast, keyboard navigation, visible focus, alternative text, zoom and reduced motion, plus checks to run on your site.

4 min

Web fonts without slowing your site: WOFF2, font-display, subsets

How to load web fonts efficiently: WOFF2, font-display, preload, subsetting with unicode-range, variable fonts and fallbacks tuned to cut layout shift.

5 min

ARIA: when it really helps and when it makes things worse

ARIA roles, states and properties with examples: the first rule of ARIA, aria-label, aria-expanded, live regions and mistakes that break accessibility.

4 min