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 6 min · architecture architecture web-components

Architecture

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

HTMX

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

Performance

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

Tools

HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time 3 min · jamstack
The Static Site Playbook: Shipping a Content Product on a Near-Zero Budget 4 min · jamstack
How This Site Works: Architecture for a One-Person Team 6 min · jamstack
Static Site Generation: The Business Case for Pre-Rendered HTML 5 min · jamstack

AI

Anthropic Trained Its Replacement 6 min · ai
Pydantic: The Open Source Layer Quietly Running the AI Economy 5 min · ai
Karpathy Was Wrong: OpenClaw Still Outruns Its 5 Real Alternatives 4 min · ai
OpenClaw 2026.2.23: The Agent Browser Upgrade 2 min · ai
OpenClaw: What It Is and How to Get the Most Out of It 3 min · ai

Writing

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

Architecture

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

HTMX

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

Performance

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

Tools

More
HAL: Cutting 100-300KB of JavaScript by Moving Routing to Build Time February 5, 2026 · 3 min read performance jamstack
The Static Site Playbook: Shipping a Content Product on a Near-Zero Budget February 5, 2026 · 4 min read jamstack architecture
How This Site Works: Architecture for a One-Person Team February 5, 2026 · 6 min read web development architecture
Static Site Generation: The Business Case for Pre-Rendered HTML February 5, 2026 · 5 min read web development JAMstack

AI

More
Anthropic Trained Its Replacement March 26, 2026 · 6 min read ai startups
Pydantic: The Open Source Layer Quietly Running the AI Economy March 2, 2026 · 5 min read ai open-source
Karpathy Was Wrong: OpenClaw Still Outruns Its 5 Real Alternatives March 11, 2026 · 4 min read openclaw ai
OpenClaw 2026.2.23: The Agent Browser Upgrade February 23, 2026 · 2 min read openclaw ai
OpenClaw: What It Is and How to Get the Most Out of It February 6, 2026 · 3 min read ai automation