LogoBotmonster Tech
AI Smart Home Self-Hosting Coding Web Dev Hardware Bootpag Image2SVG Tags

Web Dev

Modern web development from someone who builds it. CSS, JavaScript, web standards, and the patterns that actually scale.

  • ◀︎
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 7
  • ▶︎
CSS Subgrid Reaches 92% Baseline: Align Cards Natively

CSS Subgrid Reaches 92% Baseline: Align Cards Natively

CSS subgrid lets a nested grid inherit its parent’s track sizes. Child elements inside nested components line up with the parent layout. No flat HTML, no JavaScript height math, no hardcoded min-heights. It shipped in every major browser by late 2023, sits at about 92% global usage, and is safe on any modern web project today.

Ever fought a card grid where the buttons won’t line up because one card has a longer description? Subgrid is the fix you’ve been waiting for.

Smartphone showing a fingerprint and face-ID prompt next to a titanium USB-C hardware security key on a dark surface

Passkeys and WebAuthn: Ship Passwordless Login With One Evening of Work

Passkeys swap passwords for a public/private keypair kept in the device keychain and unlocked by Face ID, Touch ID, or Windows Hello. The WebAuthn API does the crypto work, while @simplewebauthn/server version 13.3.0 covers Node, Bun, and Deno backends. Sign-up, autofill login, and account recovery all fit in one evening of work.

What Passkeys Actually Are and Why 2026 Is the Year to Ship Them

A passkey is a public/private keypair made on the user’s device. The private key never leaves the secure enclave (Secure Enclave on Apple hardware, StrongBox on Android, TPM on Windows). Only a signed challenge travels over the wire. Your server stores no shared secret to steal and no hash to crack offline. The signature is bound to your domain, so it can’t be phished. If a user visits examp1e.com instead of example.com, the browser refuses to sign. Credential phishing ends at the protocol layer.

URL Shortener in 200 Lines of Python

URL Shortener in 200 Lines of Python

I’ll show you how to build a real URL shortener in under 200 lines of Python. We’re going to use FastAPI for the web layer, SQLite for storage, and base62 encoding for short codes. I’ll walk you through a redirect endpoint, a click counter, and rate limiting with SlowAPI . In my experience, this simple stack handles millions of links on one server.

Key Takeaways

  • Build a production-ready URL shortener with fewer than 200 lines of Python.
  • Use SQLite for zero-config storage that handles thousands of requests per second.
  • Implement base62 encoding to turn database IDs into short, clean strings.
  • Protect your service with SlowAPI rate limiting to block spam bots.
  • Deploy the entire app in a 50 MB Docker container behind a Caddy reverse proxy.

Architecture and Tech Stack Choices

Before I write any code, I want to walk you through why I picked this stack. Picking the wrong stack for a small project either over-engineers it or under-builds it. I’ve seen systems fall over at a few hundred users, and I want to help you avoid that.

SQLite at the Edge: 100x Faster Reads, Cloudflare D1 and LiteFS

SQLite at the Edge: 100x Faster Reads, Cloudflare D1 and LiteFS

SQLite can now run at the edge. It works inside Cloudflare Workers via D1, on Fly.io via LiteFS replicated volumes, and in any V8 isolate through embedded WASM builds. This gives you sub-millisecond read queries. You get them by placing your database close to your users on a global CDN. A few tools made this practical: LiteFS for transparent SQLite replication, Cloudflare D1 as a managed edge service, Turso for libSQL with server mode and replication, and Litestream for streaming the WAL to S3. SQLite ships as a single file with zero dependencies. So you get a relational database that deploys with your app binary, needs no connection pooling, and handles thousands of reads per second per node.

Python Markdown Blog: 100 Lines of Code

Python Markdown Blog: 100 Lines of Code

You can build a working static site generator in about 100 lines of Python. The result reads Markdown files from a content directory, parses their YAML front matter, converts the Markdown to HTML, wraps everything in Jinja2 templates, and writes the output to a public/ folder ready to be served by any web server. It is the same fundamental pipeline that powers tools like Hugo , Jekyll , and Eleventy - just stripped down to the essentials so you can see exactly how the pieces fit together.

WCAG 2.2 Web Forms: Error Handling, Validation, ARIA

WCAG 2.2 Web Forms: Error Handling, Validation, ARIA

Accessible web forms start with semantic HTML and use ARIA only to fill gaps native elements can’t reach. Use aria-live for error announcements and aria-describedby to link messages to fields. Following WCAG 2.2 AA ensures every user can perceive, navigate, and complete your forms using only a keyboard.

Most form accessibility failures are not caused by missing ARIA. They come from developers skipping basic HTML semantics like labels and fieldsets. Patching this damage with ARIA often makes things worse. The W3C’s first rule is simple: no ARIA is better than bad ARIA. Misapplied roles or redundant labels create noise instead of clarity.

  • ◀︎
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 7
  • ▶︎

Most Popular

The Best Static Site Generators for Your Blog in 2026

The Best Static Site Generators for Your Blog in 2026

Compare Astro, Hugo, Eleventy, and Quartz on build speed, content model, and use cases. Pick the best static site generator for your blog in 2026.

Turso puts SQLite reads under a millisecond, anywhere in the world

Turso puts SQLite reads under a millisecond, anywhere in the world

Turso distributes SQLite to the edge via embedded replicas that sync from a primary database. Sub-millisecond reads with managed global write replication.

Hugo Builds: Parallel Rendering, Image Cache, Fingerprinting

Hugo Builds: Parallel Rendering, Image Cache, Fingerprinting

Optimize Hugo builds with parallel rendering, image pipeline caching, CSS/JS fingerprinting, and CI/CD caching. Cut build times from minutes to seconds.

CSS Anchor Positioning: Replace Floating UI With CSS

CSS Anchor Positioning: Replace Floating UI With CSS

CSS Anchor Positioning pins tooltips and popovers to elements using pure CSS. Replace JavaScript positioning libraries with native browser anchor APIs.

SQLite at the Edge: 100x Faster Reads, Cloudflare D1 and LiteFS

SQLite at the Edge: 100x Faster Reads, Cloudflare D1 and LiteFS

SQLite at the edge: sub-millisecond queries in serverless, CDN environments. Cloudflare D1, Turso, and Litestream distribute databases for production.

Svelte 5 runes quietly rewrote how reactivity works

Svelte 5 runes quietly rewrote how reactivity works

Master Svelte 5 runes: $state, $derived, $effect, $props, $bindable. Covers Svelte 4 comparisons, migration strategies, and SvelteKit 2 integration.

Like what you read?

Subscribe to the Botmonster newsletter and get Linux, AI, and self-hosting posts weekly.

Privacy Policy  ·  Terms of Service
2026 Botmonster