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
  • …
  • 6
  • ▶︎
HTMX + Alpine.js: 35KB Interactive UIs, Zero Build Step

HTMX + Alpine.js: 35KB Interactive UIs, Zero Build Step

Combine HTMX (version 2.0.4, about 14KB gzipped) with Alpine.js (version 3.15.9, about 17KB gzipped). You get a full interactive web stack for 31KB total. No Webpack. No Vite. No Node.js. No build step. Drop two <script> tags in your HTML, sprinkle a few attributes on your markup, and let any backend serve HTML fragments. That’s the whole setup.

The split is clean. HTMX drives server-side partial updates. Alpine.js covers light client reactivity. The server returns HTML, not JSON. The browser swaps it into the page. Alpine.js attributes in the markup handle toggles, dropdowns, and modals. No compile step sits between you and your running app.

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.

  • ◀︎
  • 1
  • 2
  • 3
  • 4
  • …
  • 6
  • ▶︎

Most Popular

Wildcard SSL Certificates with Let's Encrypt and DNS-01

Wildcard SSL Certificates with Let's Encrypt and DNS-01

Wildcard SSL certs from Let's Encrypt use DNS-01 or the new DNS-PERSIST-01 challenge. Certbot and acme.sh automate the process; systemd timers run renewal.

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.

WCAG 2.2 Web Forms: Error Handling, Validation, ARIA

WCAG 2.2 Web Forms: Error Handling, Validation, ARIA

Build WCAG 2.2 AA-compliant web forms with semantic HTML, ARIA attributes, real-time inline validation, and clear error message summaries for all users.

Self-Host Plausible Analytics: 1 KB Script, No Cookies

Self-Host Plausible Analytics: 1 KB Script, No Cookies

Self-host Plausible on a cheap VPS with Docker Compose: 1 KB gzipped privacy-first tracking script, zero cookies. Complete Google Analytics alternative.

Tailwind v4: Oxide Rust Engine, 182x Incremental Builds, CSS Config

Tailwind v4: Oxide Rust Engine, 182x Incremental Builds, CSS Config

Tailwind CSS v4 uses Rust-powered Oxide, moves config to CSS @theme directives, and builds 5x faster. Update utilities and convert config to CSS.

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.

Like what you read?

Get new posts on Linux, AI, and self-hosting delivered to your inbox weekly.

Privacy Policy  ·  Terms of Service
2026 Botmonster