Skip to content

cloudless / log

The log

Field notes, written while building: what was tried, what was measured, and what turned out to be true.

56 posts · since 2025

latest 11 min read

One Request, One Price: x402 and the Payment Layer HTTP Never Shipped

x402 turns HTTP 402 into a working payment handshake: price one invocation, settle it on-chain, end the relationship. What I think it is for, what it is not, a live reference implementation for agents and humans, and a Terraform module that adds it to any CloudFront distribution.

Read →

2026

  1. From Inference to Proof: Web Bot Auth in the Wild

    User-agents are claims and fingerprints are inference. OpenAI, Cloudflare, and DuckDuckGo are already signing their requests — I captured them at the edge and verified the signatures against each signer's own published keys.

    15 min · signals & automated access

  2. Disposable Cloud Proxies in One Command

    How terraform-aws-ec2-proxy gives you a fresh IP address with a single terraform apply -- and why you'd want one.

    10 min · composable infrastructure

  3. Building a Trust Layer: Ingestion-Time Enrichment for Web Traffic

    Joining CloudFront logs with JA4 fingerprints at ingestion time to classify every request — verified bots, spoofed crawlers, suspicious scrapers — before it reaches the dashboard.

    12 min · signals & automated access

  4. Building a JA4 Fingerprint Pipeline on AWS

    How to capture TLS fingerprints at the CloudFront edge, route them through a serverless pipeline, and query them in Athena — using a CloudFront Function, a bash Lambda, SNS, Firehose, and S3.

    9 min · signals & automated access · composable infrastructure

  5. Beyond the User-Agent: Catching Spoofed Bots with JA4 and ASN

    User-Agent strings are trivially forged. TLS handshakes are not. How JA4 fingerprinting combined with ASN classification exposes distributed scraper clusters that look exactly like real browsers.

    10 min · signals & automated access

  6. Signals #8: Measuring Publication

    Publication events as Grafana annotations — overlaying the moment content goes live onto crawler, retrieval, and search performance timelines.

    4 min · signals & automated access

  7. Signals #7: From Logs to Signals

    Raw requests are interesting, but how do we distinguish crawlers, retrieval systems, previews and humans?

    5 min · signals & automated access

  8. Signals #6: Build a Visibility Layer

    Building a Visibility Layer for a Static Website with CloudFront, Athena and Grafana

    4 min · signals & automated access

  9. Signals #5: Slicing CloudFront Logs

    Analyze web traffic with composable shell functions and goaccess. Separate humans from bots, track search traffic, measure LLM consumption — then export to Grafana.

    4 min · signals & automated access · shell on lambda

  10. Signals #4: Mapping the Terraform Module Ecosystem

    Crawl the entire Terraform AWS module registry, extract metadata, analyze composition patterns. Which modules get reused? Which namespaces ship continuously?

    3 min · signals & automated access · shell on lambda · composable infrastructure

  11. Signals #3: GitHub Commit History as a Queryable Dataset

    Collect all your commits across orgs, users, and collaborator repos with gh + jq. Merge into a single JSON dataset. Visualize engineering cadence in Grafana.

    4 min · signals & automated access · shell on lambda

  12. Signals #2: Browser Events to S3 Data Lake in Bash

    First-party web analytics with zero dependencies: browser fetch → bash Lambda → curl SigV4 → SNS → Firehose → partitioned S3 → Athena. Under $1/month.

    5 min · signals & automated access

  13. Signals #1: Build a Live API From AWS Documentation

    Scrape AWS Lambda runtimes, cache at the edge, serve as JSON. A shell script, a CloudFront behavior, and a cron-free refresh strategy — the pattern, end to end.

    3 min · signals & automated access · shell on lambda

  14. Signals: Small Systems That Observe Larger Systems

    A series on building lightweight data collection pipelines with shell scripts, AWS primitives, and Grafana.

    4 min · signals & automated access · shell on lambda

  15. A Terraform Module for Shell Functions on Lambda

    A Terraform module that turns shell scripts into Lambda functions with sub-20ms cold starts. Deploy the runtime once as a layer, then ship pure shell scripts as function packages.

    11 min · shell on lambda · composable infrastructure

  16. SES Email Forwarding with Terraform

    A Terraform module for receiving email on your domain and forwarding it to an existing inbox using Amazon SES, S3, and Lambda

    4 min · composable infrastructure

  17. Observability Without Kubernetes: Tempo on ECS

    How we built a lightweight, cost-effective distributed tracing platform for our automation ecosystem using ECS Fargate, S3, and the OpenTelemetry standard.

    4 min

  18. Designing for Uncooperative Suppliers

    How we designed a flight booking system that operates honestly under uncertainty — without a commercial agreement with the airline.

    9 min · systems under uncertainty

  19. The Blind Walk Model

    Progress in a complex fulfillment system isn't measured by actions taken. It's measured by truths confirmed. Here's the mental model that changed how we think about execution.

    5 min · systems under uncertainty

  20. Shell-First Lambda Endpoints: $0.53/M Requests

    A 50KB shell handler delivers production JSON endpoints 677% cheaper than Node.js + API Gateway. Here's how and when it makes sense.

    4 min · shell on lambda

  21. Shell on Lambda: The Journey to Sub-25ms Cold Starts

    From pure Bash to optimized runtime layers: how systematic experimentation led to the perfect architecture for shell-based Lambda functions

    8 min · shell on lambda

  22. Lambda Container Images vs Zip: The UPX Trap

    Real-world benchmarking reveals surprising Lambda performance insights: when container images beat ZIP packages and why raw TCP sockets halve cold start times

    7 min · shell on lambda

2025

  1. Test Lambda Functions Locally

    How to run your Lambda functions locally in an environment identical to AWS using Docker and the Lambda Runtime Interface Emulator

    7 min · shell on lambda

  2. Bootstrapping Cloudless Infrastructure

    A reusable Terraform foundation for consistent tagging, environments, and shared context across modules.

    5 min · composable infrastructure

  3. ECS Autoscaling: Target Tracking, Step, and Scheduled

    7 min

  4. Realtime Monitoring with `asciigraph`

    Sometimes you just want to see what's happening without opening another browser tab.

    2 min

  5. Analytics Pipeline to Event Ingestion

    How a simple browser automation project revealed the need for a direct API Gateway to SNS proxy module

    7 min · composable infrastructure

  6. Shell Runtime vs Go & Python in Serverless

    Deep dive into Lambda runtime performance showing when shell's 20ms overhead becomes negligible and cold start performance dominates

    5 min · shell on lambda

  7. Serverless Analytics Pipelines with Terraform

    How migrating a bespoke OpenSearch ingestion pipeline led to two reusable Terraform modules for event analytics

    5 min · composable infrastructure

  8. Cross-Account OpenSearch Snapshots

    Learn how to set up cross-account OpenSearch snapshots using Terraform and CloudPosse modules for robust data migration and backup strategies.

    6 min · composable infrastructure

  9. Tiered Anti-Bot Defense for Headless Chrome

    How we solved the browser automation performance problem with intelligent tier routing and achieved 10x performance improvements

    3 min · systems under uncertainty

  10. Makefile-Driven Lambda Development

    How a well-crafted Makefile transforms Lambda development from a collection of manual steps into a seamless, parameterized workflow

    6 min · shell on lambda · composable infrastructure

  11. S3–Lambda Thumbnail Processing in Shell

    Building a production-ready serverless image processing pipeline using shell scripts, AWS Lambda, and S3 event triggers - with composable layers, sub-25ms cold starts, and zero container image overhead.

    7 min · shell on lambda · composable infrastructure

  12. Cutting Email API Costs by 99 %

    The story behind QM4IL - why we built our own email API when MailSlurp became too expensive for our booking bots

    3 min

  13. Shell vs Node.js: 50% Faster on Lambda

    Real serverless performance comparison: shell scripts vs Node.js in AWS Lambda. 50% faster response times, 75% less memory, 90% faster cold starts.

    3 min

  14. Alexa, what's the WiFi password?

    How turning your router into an API unlocks voice-controlled networking

    4 min

  15. Your Shell Script, Running in the Cloud

    The foundational mechanics of turning local code into remote execution

    5 min · shell on lambda · composable infrastructure

  16. Turn Bash Scripts into Production APIs in 5 Minutes

    Complete guide: bash script to production API with AWS Lambda. Authentication, monitoring, and scaling included - no frameworks required.

    3 min

  17. When Shell Scripts Meet Real-World

    How I turned my router's web interface into a REST API using nothing but shell scripts and Lambda layers

    4 min

  18. The Lambda Runtime Spectrum

    How to choose the right level of complexity for your serverless functions

    4 min · systems under uncertainty

  19. Choose Boring Technology (Even When It's Bash)

    Why the most boring solution is often the most powerful

    3 min

  20. The Right Tool Fallacy

    How choosing the 'wrong' tool gave me 2x performance and 90% less memory usage

    3 min

  21. Cloudless Computing Philosophy

    The cloudless computing approach: shell-first infrastructure, composable tools, and local development that scales to production.

    2 min

  22. Composable Infrastructure

    Building infrastructure like Lego blocks - each piece does one thing well

    2 min

  23. Lambda Layers Breakthrough

    Pre-built Lambda layers with statically-linked binaries for shell-based functions

    2 min

  24. AWS Lambda Custom Runtime for Shell Scripts - Container Image Approach

    Docker container images for running shell scripts on AWS Lambda. Three optimized variants from 132MB to 417MB with multi-platform support.

    3 min · shell on lambda

  25. Terraform Modules Best Practices: Building Composable Infrastructure

    Learn terraform module design patterns for reusable, composable infrastructure. Real examples from production systems.

    3 min · composable infrastructure

  26. The 5-Minute Promise

    5 minutes from idea to production API - removing friction between having an idea and seeing it work in production

    2 min · composable infrastructure

  27. Infrastructure as Commodity

    Why treating cloud services like utilities changes everything

    2 min

  28. The Dumb Router

    The full ql48 evolution story

    3 min

  29. Container Size Economics

    How lambda-shell-runtime is 75% smaller than official runtimes

    2 min

  30. Lambda Cold Start Optimization: 90% Faster with Custom Runtimes

    Complete guide to AWS Lambda cold start optimization using custom runtimes. Real benchmarks showing 90% improvement over standard runtimes.

    4 min

  31. Why Shell Scripts Over Serverless Framework

    Comparing serverless frameworks vs shell-first approach. Performance benchmarks, cost analysis, and developer experience comparison.

    3 min

  32. Reverse Engineering as Architecture School

    How working with black boxes teaches clean boundaries, and why chaos forces disciplined design

    6 min · systems under uncertainty

  33. Self-Managing ECS Tasks

    How ECS Task Protection enables zero-downtime deployments and prevents message loss

    4 min