Sign in

Tiger Oakes

@notwoods.bsky.social
368 followers 542 following 101 posts

Web dev from Hawaii who makes weird art and tech projects. he/him, IMO implied

PostsRepliesMedia
Tiger Oakes @notwoods.bsky.social · 02/01/2026
Found buried treasure in the bottom of a closet
Two sticks of RAM
020
Tiger Oakes @notwoods.bsky.social · 01/01/2026
Now that the NYE ball has dropped the livestream has switched to peak leaf blower content
YouTube Screenshot of New Year’s Eve livestream a few minutes after midnight. The camera is pointed at a worker cleaning confetti with a leaf blower
000
Tiger Oakes @notwoods.bsky.social · 10/10/2025
Building holograms
Hologram pyramid with a woman dressed as a cowboy shown in a projection. The projection is blue with horizontal lines.
020
Reposted by Tiger Oakes
Charles Villard @charlesvillard.co · 08/07/2025
Loved this #leetheat episode! The musicality, the suspense, the Ketchup method! @georgerodier.com and @notwoods.bsky.social were fantastic! www.youtube.com/watch?v=nXU2...
youtube.com
Tiger has a message for his wife in case he doesn't make it · Leet Heat S1.E11
YouTube video by CodeTV (formerly Learn With Jason)
183
Tiger Oakes @notwoods.bsky.social · 17/06/2025
Fun times CGI-ing fingers back in that were just out of frame
040
Tiger Oakes @notwoods.bsky.social · 02/04/2025
I helped make a film! Worked on editing and acting with the NYC Short Film Club. youtu.be/YDYq3RhS-sM
youtu.be
Cozy Snare | NYC Short FIlm Club
YouTube video by NYC Short Film Club
140
Tiger Oakes @notwoods.bsky.social · 13/03/2025
The M4 iPad Pro is so good I can edit a 6K short film with no proxies or lag. It blows away my 5 year old desktop PC
010
Tiger Oakes @notwoods.bsky.social · 26/02/2025
My DIY project the last couple weeks has been building a giant 4’x6’ frame for a wood world map. I got hardboard wood sheets and moulding and cut, painted, and mounted all by hand :)
120
Tiger Oakes @notwoods.bsky.social · 08/02/2025
After losing my scissors too many times I’ve created my best invention yet
Scissors with an AirTag duct-taped on
020
Tiger Oakes @notwoods.bsky.social · 22/01/2025
Man’s blood veins turn into butter
arstechnica.com
Florida man eats diet of butter, cheese, beef; cholesterol oozes from his body
High cholesterol is considered 240 mg/dL. The man’s was over 1,000 mg/dL.
040
Tiger Oakes @notwoods.bsky.social · 16/01/2025
I took my birding camera to the #Severance Grand Central popup and took some desk photos
Lumon brand cup sitting in front of a group photo of MDR staffRetro computer with programs on screen used by MDR in the Severance TV showCaricature of a MDR staff member as an astronautGlass statue with 3D art of the face of Mark S.
070
Tiger Oakes @notwoods.bsky.social · 29/12/2024
Finding the murderer @nearestnabors.com during our @halfstackconf.bsky.social talk! Full talk with @thebetterdaphne.bsky.social’s shenanigans: www.wearedevelopers.com/en/videos/12...
080
Tiger Oakes @notwoods.bsky.social · 26/12/2024
I don’t know how to teach devs to google things anymore. Most of the results are for SEO-optimized walls of text instead of solutions. You can point folks to official documentation, but that doesn’t help when the source of the problem is unclear. Maybe only use Stack Overflow?
6262
Tiger Oakes @notwoods.bsky.social · 13/12/2024
Today is my last day working at Microsoft. I got to work on lots of web performance and mentorship here over 3+ years! Off to new things in New York starting next month.
1130
Tiger Oakes @notwoods.bsky.social · 10/12/2024
Back in Seattle…for the last time. I’m moving to NYC next month!
040
Tiger Oakes @notwoods.bsky.social · 08/12/2024
I’m very excited that `createSubscriber` was added to @svelte.dev, it covers the one use case that was keeping me on stores instead of runes. 🥳 Now it’s much easier to convert an observable into a rune! svelte.dev/docs/svelte/...
svelte.dev
svelte/reactivity • Docs • Svelte
svelte/reactivity • Svelte documentation
120
Tiger Oakes @notwoods.bsky.social · 04/12/2024
New blog post: Here’s my @storybook.js.org Test Runner config for reducing flakiness in screenshot tests (no Chromatic needed). tigeroakes.com/posts/storyb...
tigeroakes.com
How to fix Storybook screenshot testing
Reduce flakiness in Playwright screenshots
010
Tiger Oakes @notwoods.bsky.social · 28/11/2024
check out my best writing this year
100
Tiger Oakes @notwoods.bsky.social · 25/11/2024
I’m looking for a good mobile photo/video/code editing machine and currently looking at the iPad Pro, Surface Pro 11, and MacBook Air. Anyone have opinions on these? - Run Affinity suite, Davinci Resolve, VSCode - Want easy plane use - Doesn’t have to work offline (but nice)
220
Reposted by Tiger Oakes
Aileen Villanueva @aileenvl.bsky.social · 23/11/2024
@notwoods.bsky.social and @thebetterdaphne.bsky.social How to automate your murder mystery: immersive games in your home talk in JsConfJP 🇯🇵 was amazing! 🤩
052
Tiger Oakes @notwoods.bsky.social · 21/11/2024
We’ve landed in Tokyo for JSConf JP, the last stop on our conference tour!
Landscape in Japan, with a small park and tree in front of a midrise building
030
Tiger Oakes @notwoods.bsky.social · 15/11/2024
✈️ Landed in New York yesterday for #JSNationUS and #ReactSummitUS!
030
Tiger Oakes @notwoods.bsky.social · 14/11/2024
Motives to murder your #halfstack emcee (with @leichteckig.bsky.social, @rowdy.bsky.social, @nearestnabors.com, @html5test.com) youtu.be/cOzTYKz_iAI
youtu.be
Motives to murder your conference emcee
YouTube video by Tiger x Daphne
063
Reposted by Tiger Oakes
Jo Franchetti @thisisjofrank.bsky.social · 13/11/2024
Of course the important question is not "whodunnit" but "howdidjawritetheapp". I may seem suspect, but it weren't me guv!
011
Tiger Oakes @notwoods.bsky.social · 13/11/2024
Slides for our murder mystery talk at #halfstack speakerdeck.com/notwoods/how...
speakerdeck.com
How to automate your murder mystery: immersive games in your home
Have you hosted a murder mystery party but dreaded the paper puzzles and constant character confusion? For Halloween, we tricked out our party with Node…
030
Reposted by Tiger Oakes
Daphne Oakes @thebetterdaphne.bsky.social · 13/11/2024
#halfstack inception marking our 2nd year tradition at Halfstack! @notwoods.bsky.social
062
Tiger Oakes @notwoods.bsky.social · 13/11/2024
Good morning #HalfStack London! I put together a starter pack with all of today’s speakers who are on Bluesky go.bsky.app/BFoCk2g
061
Tiger Oakes @notwoods.bsky.social · 11/11/2024
Put a GPT on it! (with @thebetterdaphne.bsky.social and @nearestnabors.com)
Tiger and Daphne with felt GPT stars in their eyes
021
Tiger Oakes @notwoods.bsky.social · 08/11/2024
✈️ Flying to London tonight for HalfStack Conf, let me know if anyone wants to meet up next week!
030
Tiger Oakes @notwoods.bsky.social · 08/11/2024
Been busy but got to make my Twitter account private today. Nearly everyone I’ve ever DM’d is here now so that’s one final use case I can throw out 🗑️🚮
030
Tiger Oakes @notwoods.bsky.social · 04/11/2024
We're flying off to London this week to give a talk and solve a murder mystery at HalfStack London 2024! Come join us in Shoreditch on Nov 13, 10% discount code below: ti.to/halfstack/ha...
Tiger & Daphne Oakes dressed as detectives and pointing at the cameraTitle slide: "How to automate your Murder Mystery: Build immersive games in your home!"
052
Tiger Oakes @notwoods.bsky.social · 03/11/2024
thumbor-es is now on both NPM and JSR! It's a modern API to generate #Thumbor URLs, for image manipulation using an open source tool. www.npmjs.com/package/thum...
000
Tiger Oakes @notwoods.bsky.social · 31/10/2024
Flying first class for the first time today ✈️
010
Tiger Oakes @notwoods.bsky.social · 20/10/2024
#NodeJS users, it it fairly clear what this server code does? My main concern is that I’m using fetch classes in this slide instead of something like express or http.IncomingMessage.
async function onRequest(request: Request): Response {const signalon = await magnetRelay.read() 1;switch (request.method) {case 'GET':return Response.json(signalOn);case 'POST':await magnetRelay.write(signalon ? 0 : 1);return Response.json(!signalon);}}
100
Tiger Oakes @notwoods.bsky.social · 18/10/2024
Daphne captioned this as “surprised face with pants”
Graphic of an power outlet wall plate with a power brick plugged into the bottom outlet
010
Tiger Oakes @notwoods.bsky.social · 09/10/2024
Lots of moving around for weddings, conferences, and honeymoon!
Year of Travel 2024: 13 countries in 12 months!

December 2023: Germany, Spain. January: Portugal, England, France. March: Taiwan, Korea, Hong Kong. April: California, British Columbia. May: Mexico. June: Netherlands. August: Alaska. September: California, New York. November: UK, New York, Japan. December: British Columbia, …more?
000
Tiger Oakes @notwoods.bsky.social · 04/10/2024
Going to 3 different conferences in 3 different continents over 2 weeks next month! Very excited but also dreading the jet lag
000
Tiger Oakes @notwoods.bsky.social · 01/10/2024
This week I'm learning how to create a VSCode language plugin for the `_headers` file in Netlify/Cloudflare Pages. Hoping to publish it soon! github.com/NotWoods/vsc...
Sample _headers file in Visual Studio Code with HTTP headers under different paths. One header is showing an IntelliSense popover on hover with a MDN description for the header.
010
Tiger Oakes @notwoods.bsky.social · 28/09/2024
After switching from Android to iOS last year I noticed all new indie apps just target iOS. This is a pretty clear list of reasons why: ia.net/topics/our-a...
ia.net
Our Android App is Frozen in Carbonite
After seven years of trying, we need to change course on our adventure in the Android galaxy.
020
Tiger Oakes @notwoods.bsky.social · 17/09/2024
Thanks #AstroJS for including my notion-astro-loader package in the Astro 5.0 beta release notes! 🤩
Code sample for writing an Astro collection using the Notion API loader.

// src/content/config.ts
import { defineCollection } from "astro:content";
import { notionLoader } from "notion-astro-loader";

const database = defineCollection({
  // Automatically fetch content from Notion in one line
  // using the 'notion-astro-loader' npm package!
  loader: notionLoader({ /* ... */ })
  // optionally, define a schema for the content or let the loader infer it
  // schema: z.object({ /* ... */ })
});

export const collections = {
  database,
}
020
Tiger Oakes @notwoods.bsky.social · 18/08/2024
Did you know rimraf is built-in to Node.js? I wrote a tiny CLI wrapper for it but you can also just use `node -e`. It's 1/10th the size of rimraf! npx crossrm ./path www.npmjs.com/package/cros...
#!/usr/bin/env node
// @ts-check
import { parseArgs } from "node:util";
import { rm } from "node:fs/promises";

const options =
  /** @satisfies {import('node:util').ParseArgsConfig['options']} */ ({
    force: { type: "boolean", short: "f", default: true },
    recursive: { type: "boolean", short: "r", default: true },
  });

const args = parseArgs({
  options,
  allowPositionals: true,
  allowNegative: true,
});

await Promise.all(args.positionals.map((path) => rm(path, args.values)));
010
Tiger Oakes @notwoods.bsky.social · 12/08/2024
Writing React feels like navigating a minefield of deoptimizations, and writing in a large team feels like walking through a blown up minefield
010
Tiger Oakes @notwoods.bsky.social · 17/06/2024
In Amsterdam last week I ended up playing TWO escape rooms and they were both the best I’ve seen in my life! Europe rooms just hit different with way more intricate mechanisms, like running through a parking lot and stairs unwinding from the wall.
Group of 5 holding brass pins in library room with stained glassGroup of 4 holding black pins in hallway
010
Tiger Oakes @notwoods.bsky.social · 12/06/2024
Is it a bicycle or corn?
Rental bike with the name “It’s Corn”
010
Tiger Oakes @notwoods.bsky.social · 31/05/2024
I wish there was an easy way to check if you know anyone in spots you’re traveling to. Didn’t realize how much I used Twitter’s location field when more people were there.
120
Tiger Oakes @notwoods.bsky.social · 08/05/2024
Today I learned Vite is French for fast, just like “wiki” is Hawaiian for fast. There’s an alternative timeline where we research on Vitepedia and use Wiki for web development.
000
Tiger Oakes @notwoods.bsky.social · 18/04/2024
Do you want to be a React bad boy?
youtube.com
Learn the art of ignoring best practices at React Summit 2024
Have you ever wanted to be a React bad boy? I’ll show you the art of ignoring best practices. Join me at React Summit on June 14 and 18. https://reactsummit....
000
Tiger Oakes @notwoods.bsky.social · 09/04/2024
I learned you can avoid forced synchronous layout by reading in the ResizeObserver callback!
tigeroakes.com
ResizeObserver is a safe place to read scrollWidth/clientWidth
Avoid forced synchronous layout and safely read an element's size.
000
Tiger Oakes @notwoods.bsky.social · 19/03/2024
Looking to mix #MurderMystery parties with #IoT? Learn about our smart safe, murder SFX, live guest list and more in our interview with the mystery kit writer!
foulplayco.com
Featured Murder Mystery Party: A Whodunnit Party Meets Tech Innovation — Foulplay Games
We are always impressed by the creativity of our Foulplay murder mystery party hosts, but occasionally there is a party that leaves us truly speechless. That was the case meeting Tiger, our featured...
000
Tiger Oakes @notwoods.bsky.social · 13/02/2024
New blog post! Tips and tricks for Microsoft's Fluent UI design system in React. Fluent UI has a few patterns I think other React libraries should adopt, like "slots" as a shortcut to pass className and props to different child elements. tigeroakes.com/posts/fluent...
tigeroakes.com
Tricks for writing CSS in Fluent UI React v9
Advanced features for clean & performant CSS.
000