James L. Cowan Jr.

James L. Cowan Jr.

Product Engineer. Founder of Kleto.

A product engineering library. Essays, architecture notes, and narrated reads on the work behind Kleto and the tools that keep shipping fast.

Built with HTML, CSS, vanilla JavaScript, and HTMX. No React runtime. Static files at build time, HAL for fragment swaps that make navigation feel instant, and small Web Components instead of a heavy framework bundle. See how this site is built for the full stack.

Listen

Web Components + HTMX: A Lean Architecture for Content Sites That Ship @jameslcowan · 02/05/26 · 12:00a · 6 min architecture web-components

Architecture

Web Components + HTMX: A Lean Architecture for Content Sites That Ship @jameslcowan · 02/05/26 · 12:00a · 6 min architecture
Why I Skipped the CMS @jameslcowan · 02/05/26 · 12:00a architecture
Documentation That Scales: Constitution, Contracts, and Runbooks @jameslcowan · 02/26/26 · 12:00a documentation
Fixing Navigation and Analytics: When Your Data Lies About User Behavior @jameslcowan · 02/05/26 · 12:00a htmx
HAL: Build-Time Link Rewriting That Makes Navigation Feel Instant @jameslcowan · 02/05/26 · 12:00a htmx
The Static Site Playbook: Shipping a Content Product on a Near-Zero Budget @jameslcowan · 02/05/26 · 12:00a jamstack
How This Site Works: Architecture for a One-Person Team @jameslcowan · 02/05/26 · 12:00a web development
Less JavaScript, More Leverage: Why I Ship With a 35KB Budget @jameslcowan · 02/05/26 · 12:00a web development

HTMX

Web Components + HTMX: A Lean Architecture for Content Sites That Ship @jameslcowan · 02/05/26 · 12:00a · 6 min architecture
Fixing Navigation and Analytics: When Your Data Lies About User Behavior @jameslcowan · 02/05/26 · 12:00a htmx
HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time @jameslcowan · 02/05/26 · 12:00a performance
HAL: Build-Time Link Rewriting That Makes Navigation Feel Instant @jameslcowan · 02/05/26 · 12:00a htmx
Mobile-First Layout That Ships: How PrimaryLayout Solves Real UX Problems @jameslcowan · 02/05/26 · 12:00a ux
Progressive Enhancement with HTMX: Ship Fast, Degrade Gracefully @jameslcowan · 02/05/26 · 12:00a web development

Performance

Web Components + HTMX: A Lean Architecture for Content Sites That Ship @jameslcowan · 02/05/26 · 12:00a · 6 min architecture
HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time @jameslcowan · 02/05/26 · 12:00a performance
HAL: Build-Time Link Rewriting That Makes Navigation Feel Instant @jameslcowan · 02/05/26 · 12:00a htmx
The Static Site Playbook: Shipping a Content Product on a Near-Zero Budget @jameslcowan · 02/05/26 · 12:00a jamstack
How This Site Works: Architecture for a One-Person Team @jameslcowan · 02/05/26 · 12:00a web development
Less JavaScript, More Leverage: Why I Ship With a 35KB Budget @jameslcowan · 02/05/26 · 12:00a web development
Static Site Generation: The Business Case for Pre-Rendered HTML @jameslcowan · 02/05/26 · 12:00a web development

Tools

HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time @jameslcowan · 02/05/26 · 12:00a performance
The Static Site Playbook: Shipping a Content Product on a Near-Zero Budget @jameslcowan · 02/05/26 · 12:00a jamstack
How This Site Works: Architecture for a One-Person Team @jameslcowan · 02/05/26 · 12:00a web development
Static Site Generation: The Business Case for Pre-Rendered HTML @jameslcowan · 02/05/26 · 12:00a web development

AI

Anthropic Trained Its Replacement @jameslcowan · 03/26/26 · 12:00a ai
Pydantic: The Open Source Layer Quietly Running the AI Economy @jameslcowan · 03/02/26 · 12:00a ai
Karpathy Was Wrong: OpenClaw Still Outruns Its 5 Real Alternatives @jameslcowan · 03/11/26 · 12:00a openclaw
OpenClaw 2026.2.23: The Agent Browser Upgrade @jameslcowan · 02/23/26 · 12:00a openclaw
OpenClaw: What It Is and How to Get the Most Out of It @jameslcowan · 02/06/26 · 12:00a ai

Writing

Search
Anthropic Trained Its Replacement @jameslcowan · 03/26/26 · 12:00a ai startups founders
Pydantic: The Open Source Layer Quietly Running the AI Economy @jameslcowan · 03/02/26 · 12:00a ai open-source python
Karpathy Was Wrong: OpenClaw Still Outruns Its 5 Real Alternatives @jameslcowan · 03/11/26 · 12:00a openclaw ai tools
OpenClaw 2026.2.23: The Agent Browser Upgrade @jameslcowan · 02/23/26 · 12:00a openclaw ai automation
The YC S26 Deadline Just Closed. Here's What Separates the 1.5% From Everyone Else. @jameslcowan · 02/11/26 · 12:00a startups yc founders
OpenClaw: What It Is and How to Get the Most Out of It @jameslcowan · 02/06/26 · 12:00a ai automation ops
Why I Skipped the CMS @jameslcowan · 02/05/26 · 12:00a architecture content tools
Documentation That Scales: Constitution, Contracts, and Runbooks @jameslcowan · 02/26/26 · 12:00a documentation architecture automation
Fixing Navigation and Analytics: When Your Data Lies About User Behavior @jameslcowan · 02/05/26 · 12:00a htmx analytics ux
HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time @jameslcowan · 02/05/26 · 12:00a performance jamstack htmx

Architecture

More
Why I Skipped the CMS @jameslcowan · 02/05/26 · 12:00a architecture content
Documentation That Scales: Constitution, Contracts, and Runbooks @jameslcowan · 02/26/26 · 12:00a documentation architecture
Fixing Navigation and Analytics: When Your Data Lies About User Behavior @jameslcowan · 02/05/26 · 12:00a htmx analytics
HAL: Build-Time Link Rewriting That Makes Navigation Feel Instant @jameslcowan · 02/05/26 · 12:00a htmx performance
Web Components + HTMX: A Lean Architecture for Content Sites That Ship @jameslcowan · 02/05/26 · 12:00a architecture web-components
The Static Site Playbook: Shipping a Content Product on a Near-Zero Budget @jameslcowan · 02/05/26 · 12:00a jamstack architecture
How This Site Works: Architecture for a One-Person Team @jameslcowan · 02/05/26 · 12:00a web development architecture
Less JavaScript, More Leverage: Why I Ship With a 35KB Budget @jameslcowan · 02/05/26 · 12:00a web development performance

HTMX

More
Fixing Navigation and Analytics: When Your Data Lies About User Behavior @jameslcowan · 02/05/26 · 12:00a htmx analytics
HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time @jameslcowan · 02/05/26 · 12:00a performance jamstack
HAL: Build-Time Link Rewriting That Makes Navigation Feel Instant @jameslcowan · 02/05/26 · 12:00a htmx performance
Web Components + HTMX: A Lean Architecture for Content Sites That Ship @jameslcowan · 02/05/26 · 12:00a architecture web-components
Mobile-First Layout That Ships: How PrimaryLayout Solves Real UX Problems @jameslcowan · 02/05/26 · 12:00a ux css
Progressive Enhancement with HTMX: Ship Fast, Degrade Gracefully @jameslcowan · 02/05/26 · 12:00a web development htmx

Performance

More
HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time @jameslcowan · 02/05/26 · 12:00a performance jamstack
HAL: Build-Time Link Rewriting That Makes Navigation Feel Instant @jameslcowan · 02/05/26 · 12:00a htmx performance
Web Components + HTMX: A Lean Architecture for Content Sites That Ship @jameslcowan · 02/05/26 · 12:00a architecture web-components
The Static Site Playbook: Shipping a Content Product on a Near-Zero Budget @jameslcowan · 02/05/26 · 12:00a jamstack architecture
How This Site Works: Architecture for a One-Person Team @jameslcowan · 02/05/26 · 12:00a web development architecture
Less JavaScript, More Leverage: Why I Ship With a 35KB Budget @jameslcowan · 02/05/26 · 12:00a web development performance
Static Site Generation: The Business Case for Pre-Rendered HTML @jameslcowan · 02/05/26 · 12:00a web development JAMstack

Tools

More
HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time @jameslcowan · 02/05/26 · 12:00a performance jamstack
The Static Site Playbook: Shipping a Content Product on a Near-Zero Budget @jameslcowan · 02/05/26 · 12:00a jamstack architecture
How This Site Works: Architecture for a One-Person Team @jameslcowan · 02/05/26 · 12:00a web development architecture
Static Site Generation: The Business Case for Pre-Rendered HTML @jameslcowan · 02/05/26 · 12:00a web development JAMstack

AI

More
Anthropic Trained Its Replacement @jameslcowan · 03/26/26 · 12:00a ai startups
Pydantic: The Open Source Layer Quietly Running the AI Economy @jameslcowan · 03/02/26 · 12:00a ai open-source
Karpathy Was Wrong: OpenClaw Still Outruns Its 5 Real Alternatives @jameslcowan · 03/11/26 · 12:00a openclaw ai
OpenClaw 2026.2.23: The Agent Browser Upgrade @jameslcowan · 02/23/26 · 12:00a openclaw ai
OpenClaw: What It Is and How to Get the Most Out of It @jameslcowan · 02/06/26 · 12:00a ai automation