OAuth#
I've been making an OAuth integration dashboard — a simple interface to connect with various providers that I register clients with. This includes Google, GitHub, Slack, Supabase, Clerk, and others.
Supabase's OAuth2 /token endpoint returns a 201
which doesn't conform to the OAuth2 spec (RFC 6749, Section 4.1.4) which expects a 200 OK with a JSON body.
This breaks strict OAuth2 clients, such as https://github.com/panva/oauth4webapi by @panva (of course they have an OAuth client lib).
Web crawling#
This crawler tool is pretty neat https://github.com/unclecode/crawl4ai
user@~: $ uvx --from git+https://github.com/unclecode/crawl4ai.git crwl http://localhost:3000/ -o markdown
Home](http://localhost:3000/)
[Atoms](http://localhost:3000/atoms)[About me](http://localhost:3000/me)
`⌘``K`
# The blog here is made out of blog.
## Welcome to my little corner of the internet. Enjoy some writings about various things about, but not limited to tech.
[ Feb. 13, 2025, 10:10 p.m. GMT-5How I built AI chat back in 2023No model training; Off-the-shelf GPT 3.5 and some clever retrieval augmented generation. ](http://localhost:3000/2025/02/14/ai-chat-2023)
[ May. 11, 2024, 8:00 a.m. GMT-4On Durable ObjectsSome notes and observations on Cloudflare’s globally distributed and strongly consistent coordination API. ](http://localhost:3000/2024/05/11/on-durable-objects)
[ Oct. 5, 2023, 8:00 a.m. GMT-4How to Build & Publish a Terraform ProviderDocumenting the critical and secondary dependencies to building and publishing a Terraform provider to the Terraform registry, based on my recent experience. ](http://localhost:3000/2023/10/05/build-publish-terraform-provider)
[ Sep. 24, 2023, 8:00 a.m. GMT-4Infinite Databases with Nomad and TraefikI managed to spin up multiple PostgreSQL databases on the fly, each with their own unique URL. Inspired by Neon, PlanetScale and Railway. ](http://localhost:3000/2023/09/24/infinite-dbs-with-nomad)
[ Jun. 13, 2023, 8:00 a.m. GMT-4The biggest boon to my software careerA reflection on how three individuals have impacted my career in the past year. ](http://localhost:3000/2023/06/13/the-biggest-boon-to-my-software-career)
[ Dec. 4, 2022, 7:00 a.m. GMT-5Ok, PackerAfter manually installing Nomad, Docker, Git, and ZSH on 3 EC2 instances, it was time to see if Packer could automate the process for me. ](http://localhost:3000/2022/12/04/ok-packer)
[ Nov. 20, 2022, 7:00 a.m. GMT-5My First Nomad ClusterMy own notes — not a guide — on standing up my first Nomad cluster on AWS. ](http://localhost:3000/2022/11/20/nomad-cluster)
[ Jun. 13, 2022, 8:00 a.m. GMT-4GitHub Actions Survival SkillsAfter close to a year of working with GitHub actions, I’ve compiled a list of handy “survival skills” that help to keep developer velocity high. ](http://localhost:3000/2022/06/13/github-actions-survival-skills)
[ Apr. 25, 2022, 8:00 a.m. GMT-4Deploy any Web App to Lambda in 60 secondsIf it listens on a port, it can be deployed to Lambda! ](http://localhost:3000/2022/04/25/any-web-app-on-lambda)
[ Mar. 16, 2022, 8:00 a.m. GMT-4Serverless Brain Dump: Use Lambda with RDS Aurora ServerlessPart 1 of 3 in a serverless discovery brain dump. This portion focuses on the Lambda (compute) and Aurora (database) layers within the larger picture: FQDN → API Gateway → Lambda → Aurora. ](http://localhost:3000/2022/03/16/lambda-with-rds-aurora-serverless)
[ Feb. 14, 2022, 7:00 a.m. GMT-5Deploying a GraphQL Docker Container to AWS Lambda with WaypointI finally got around to ticking off a few items on my todo list. 1. Shoving an express.js app into a lambda function. 2. Deploying a Docker container to lambda. 3. Using a new HashiCorp product. ...And it all required very little code. Sort of. ](http://localhost:3000/2022/02/14/graphql-docker-lambda-waypoint)
[ Jan. 9, 2022, 7:00 a.m. GMT-5nextjs-componentsEarly last year, I began transcribing the react components from Vercel's component library site for use on my personal site. It was initially closed source but now in 2022, I decided to open source it. This is a reflection of how I tackled it and some thoughts and learnings I had along the way. ](http://localhost:3000/2022/01/09/nextjs-components)
[ Nov. 1, 2021, 8:00 a.m. GMT-4Tree CLI & Benchmarks(Re)creating a CLI tool to print directory contents in a tree-like format. And then some benchmarking. ](http://localhost:3000/2021/11/01/tree-cli-and-benchmarks)
[ Sep. 19, 2021, 8:00 a.m. GMT-4Dynamic Matrices in GitHub Actions...from JSON payloads that you send! — This was a recent rabbit hole 🐰🕳 that took me 2 days to figure out. I couldn't find a quick and clear answer on Google so I figured I'd write about it. ](http://localhost:3000/2021/09/19/github-actions-dynamic-matrix)
[ Jul. 26, 2021, 8:00 a.m. GMT-4CloudFront Functions for an Efficient Cache PolicyUsing CloudFront functions to apply some clever and sensible Cache-Control headers to a fully static Next.js app. ](http://localhost:3000/2021/07/26/cloudfront-functions-efficient-cache-policy)
[ May. 17, 2021, 8:00 a.m. GMT-4Hexagonal Geospatial GPS Data Visualization AppUsing Uber's H3, React Native, and DynamoDB to build a serverless system, end-to-end, to track and visualize my own GPS locations ](http://localhost:3000/2021/05/17/hexagonal-geospatial-gps-data-visualization)
[ Apr. 11, 2021, 8:00 a.m. GMT-4CSV To DynamoDBThe AWS Python SDK (Boto3) provides a “batch writer”, not present in the other language SDKs, that makes batch writing data to DynamoDB extremely intuitive. ](http://localhost:3000/2021/04/11/csv-to-dynamodb)
[ Mar. 26, 2021, 8:00 a.m. GMT-4Micro Frontends in NextJS with Webpack 5Webpack 5's Module Federation makes creating micro frontends straightforward. It is also available in NextJS 10+ via an experimental feature flag and it makes integrating micro frontends a breeze. You first build an external micro frontend and deploy it as a "federated module" to your destination of choice. Then you update some configs in your NextJS application and Webpack does the rest. It's kind of magic 🦄. ](http://localhost:3000/2021/03/26/micro-frontends-nextjs)
[ Mar. 15, 2021, 8:00 a.m. GMT-425.33% Reduction in First Load JS with NextJS Dynamic ImportsA play by play in successfully reducing first load JS bundle size by 25% with code splitting via dynamic imports, and getting all NextJS pages into the green zone. ](http://localhost:3000/2021/03/15/reduce-first-load-js)
[ Mar. 6, 2021, 7:00 a.m. GMT-5JAMStack CI/CD with Lerna, NextJS, CDK, and Github ActionsLerna, AWS CDK, and Github Actions make continuous integration and continuous delivery super easy. I figured out how to setup a CI/CD pipeline for my NextJS static apps backed by additional AWS infrastructure like Lambda functions, API Gateway, and Dynamo DB. ](http://localhost:3000/2021/03/06/jamstack-ci-cd-with-lerna-next-js-cdk-and-github-actions)
[ Mar. 1, 2021, 7:00 a.m. GMT-5Infrastructure as Code To Save TimeI found myself repeating some tedious tasks within the AWS console, week after week, and wanted to stop suffering. Infrasructure-as-code was the way to go but I knew I didn't want to learn Cloud Formation, and I was too lazy to pick up yet another 3rd party tool like Terraform. ](http://localhost:3000/2021/03/01/infrastructure-as-code-to-save-time)
[:)thekevinwang — home](http://localhost:3000/)
Thanks for checking out this site.
### Projects
* [Misc](http://localhost:3000/projects)
* [MDX Dingus](http://localhost:3000/dingus)
* [Go in the browser](http://localhost:3000/go-in-the-browser)
* [eTLD+1](http://localhost:3000/etld)
* [Visitor Geo Info](http://localhost:3000/viewer)
### Stuffs
* [nextjs-components](https://nextjs-components-thekevinwang.vercel.app/)
* [Buy me a coffee](https://www.buymeacoffee.com/thekevinwang)
### Updates
* [Atoms](http://localhost:3000/atoms)
© 2025 Kevin Wang.
* [GitHub](https://github.com/thiskevinwang)
* [X](https://twitter.com/thekevinwang/)
* [LinkedIn](https://www.linkedin.com/in/thekevinwang/)
The blog here is made out of blog | Kevin Wang’s Blog
Godot#
https://x.com/JannisRingwald/status/1985053760054231256
https://github.com/borndotcom/react-native-godot
Self-hosted Tinybird#
https://www.tinybird.co/docs/forward/install-tinybird/local?q=local#api-endpoints
Slack#
https://github.com/vercel-partner-solutions/slack-bolt-with-next https://github.com/vercel-labs/slack-bolt https://www.npmjs.com/package/@vercel/slack-bolt
01K8YX5CD46QGC4NX3R58JA6GG