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:
    9:00:00 PM
    CloudFront
    Requests
    Fetched at:
    9:00:00 PM
    Log Stream NameTimestampMessageIngestion TimeEvent ID
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765504837859START RequestId: 7b2267aa-b502-4f95-8e02-1e22c376cd0f Version: $LATEST 176550484688039372073535866680576677615891257341632029075634326929408
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765504838324END RequestId: 7b2267aa-b502-4f95-8e02-1e22c376cd0f 176550484688039372073546236527093994355652071450628810563734607822849
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765504838324REPORT RequestId: 7b2267aa-b502-4f95-8e02-1e22c376cd0f Duration: 464.98 ms Billed Duration: 465 ms Memory Size: 1024 MB Max Memory Used: 168 MB 176550484688039372073546236527093994355652071450628810563734607822850
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765504977517START RequestId: 299474dd-69e9-40cc-a618-cd921b2964c0 Version: $LATEST 176550498653639372076650344153513067382760686660068203444990720933888
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d9017655049775972025-12-12T02:02:57.597Z 299474dd-69e9-40cc-a618-cd921b2964c0 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 176550498653639372076652128213128949832612009517530015313911199367169
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765504977634END RequestId: 299474dd-69e9-40cc-a618-cd921b2964c0 176550498653639372076652953340701295465668246339106103303286920642562
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765504977634REPORT RequestId: 299474dd-69e9-40cc-a618-cd921b2964c0 Duration: 115.85 ms Billed Duration: 116 ms Memory Size: 1024 MB Max Memory Used: 168 MB 176550498653639372076652953340701295465668246339106103303286920642563
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765505147415START RequestId: 5bf1bfa5-1d60-4253-9da6-d44f93111757 Version: $LATEST 176550515643739372080439196161253023193466719525220672358129750245376
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765505147607END RequestId: 5bf1bfa5-1d60-4253-9da6-d44f93111757 176550515643739372080443477904331141073109894383129020843538898485249
    2025/12/12/web-production-MyWebServerUseast1Function-tohtrofa[$LATEST]79a8012db5b54b68be113ea77a916d901765505147607REPORT RequestId: 5bf1bfa5-1d60-4253-9da6-d44f93111757 Duration: 191.93 ms Billed Duration: 192 ms Memory Size: 1024 MB Max Memory Used: 168 MB 176550515643739372080443477904331141073109894383129020843538898485250
    537 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