WORK, WRITING, STUFF

Projects.

Some things I made

Cloudfront viewer info

Various viewer request info generated at edge by this website’s CDN. While this overview page is a static route and is composed of several other page.tsx components, via @slots, the viewer request feature uses the Next.js dynamic headers()  API so it has to live on its own dedicated route. (See Next.js parallel routes docs).

→ Go to viewer info

Go in browser

This widget executes a WASM program, built from Go. The program itself interprets arbitrary JavaScript text input, and evaluates it as Go, using Yaegi.

Output

    CloudFlare turnstile

    A playground to familiarize myself with CloudFlare’s turnstile service. Again, this overview route is static, and the @turnstileslot/page component is an async server component. While parts of it can be statically rendered, it uses the Next.js dynamic cookies() API to power both the "Client" and "Server" results. You can still view the playground below,you'll need to go to the dedicated route for a full working example.

    → Go to working turnstile playground

    Turnstile Playground

    SiteKeyDescriptionVisibilityDemo
    1x00000000000000000000AAAlways passesvisible
    2x00000000000000000000ABAlways blocksvisible
    1x00000000000000000000BBAlways passesinvisible
    2x00000000000000000000BBAlways blocksinvisible
    3x00000000000000000000FFForces an interactive challengevisible

    https://developers.cloudflare.com/turnstile/troubleshooting/client-side-errors/error-codes/

    https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/#configurations

    Logs viewer

    Pulling logs from AWS CloudWatch logs and displaying them in a reasonably pretty format.

    Function URL Latency
    Latency in milliseconds
    Lambda
    Invocations
    Fetched at:
    7:00:00 AM
    CloudFront
    Requests
    Fetched at:
    7:00:00 AM
    Log Stream NameTimestampMessageIngestion TimeEvent ID
    2025/08/26/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]6f10d367ade041b7944a1a54352062bc1756292489428START RequestId: dca293a0-6a5b-4d62-91c7-9111066caeeb Version: $LATEST 175629249845039166631300826866207063099980221853352748262152837857280
    2025/08/26/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]6f10d367ade041b7944a1a54352062bc17562924896352025-08-27T11:01:29.635Z dca293a0-6a5b-4d62-91c7-9111066caeeb WARN Skipping CRC64NVME checksum validation: Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt 175629249845039166631305443120463158938970519747035186472984575803393
    2025/08/26/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]6f10d367ade041b7944a1a54352062bc1756292489697END RequestId: dca293a0-6a5b-4d62-91c7-9111066caeeb 175629249845039166631306825766665467837605294961568090671397946589186
    2025/08/26/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]6f10d367ade041b7944a1a54352062bc1756292489697REPORT RequestId: dca293a0-6a5b-4d62-91c7-9111066caeeb Duration: 268.70 ms Billed Duration: 269 ms Memory Size: 1024 MB Max Memory Used: 149 MB 175629249845039166631306825766665467837605294961568090671397946589187
    2025/08/26/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]6f10d367ade041b7944a1a54352062bc1756292492271START RequestId: 70630863-2d6b-4ef8-a354-933a2085716c Version: $LATEST 175629249845039166631364227884806485661571607900401887553914340179972
    2025/08/26/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]6f10d367ade041b7944a1a54352062bc1756292492575END RequestId: 70630863-2d6b-4ef8-a354-933a2085716c 175629249845039166631371007311346838971006634758756772655812158226437
    2025/08/26/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]6f10d367ade041b7944a1a54352062bc1756292492575REPORT RequestId: 70630863-2d6b-4ef8-a354-933a2085716c Duration: 303.97 ms Billed Duration: 304 ms Memory Size: 1024 MB Max Memory Used: 149 MB 175629249845039166631371007311346838971006634758756772655812158226438
    2025/08/27/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]4bf5ec96c7864c08883eccbbf98e81cd1756293608725INIT_START Runtime Version: nodejs:22.v52 Runtime Version ARN: arn:aws:lambda:us-east-1::runtime:e46267bb9979f1bc72e7525cb52580d41f35c3ed5d7cf2ac96e7a1fb68e80137 175629361632739166656261984064686793991783156584778120437219549904896
    2025/08/27/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]4bf5ec96c7864c08883eccbbf98e81cd1756293608885START RequestId: 484611c9-f3ec-4161-877a-7c76298f5d01 Version: $LATEST 175629361632739166656265552183918558891485802299701744175060506771457
    2025/08/27/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]4bf5ec96c7864c08883eccbbf98e81cd17562936109172025-08-27T11:20:10.917Z 484611c9-f3ec-4161-877a-7c76298f5d01 WARN Skipping CRC64NVME checksum validation: Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt 175629361632739166656310867298161973117709402879231765645640658976770
    694 ms ago

    nextjs-components

    React components that I transcribed from Vercel’s Design System, years ago. — See the code on GitHub

    OpenGraph image for the nextjs-components GitHub repository