Sign in

phil 🫠

@kitten.sh
1.3K followers 284 following 138 posts

👋 strangely typed • dev tools at @expo.dev 𝝠 • n+1 semi-archived GraphQL/TS/React(Native) projects 🗻 • urql, gql.tada (prev. dank mono, css-in-js shenanigans) • 🐙 github.com/kitten & tangled.sh/@kitten.sh

PostsRepliesMedia
phil 🫠 @kitten.sh · 14/06/2026
been 2 years but @jovidecroock.com and I just closed out 20+ gql.tada issues (🏃 faster turbo typegen, larger repo support, typed readResult for tests, LSP tweaks, ...) big release, but same conclusion: the GraphQL + TS DX of gql.tada is quite a nice sweet spot 🔖 gql-tada.0no.co/devlog/2026-...
gql-tada.0no.co
v1.11.0 - Bigger and better | gql.tada 🪄
Magical GraphQL query engine for TypeScript
192
Reposted by phil 🫠
Expo @expo.dev · 21/05/2026
Expo SDK 56 is out & it's chunky 😅 ◆ Expo UI stable on iOS & Android ◆ iOS builds 16% faster ◆ Android cold starts 40% faster ◆ Inline native modules ◆ Hermes v1 default ◆ ~58% smaller OTA updates ◆ iOS Widgets stable ◆ RN 0.85 + React 19.2 Full changelog: try.expo.dev/sdk-56-bluesky
try.expo.dev
Expo SDK 56 - Expo Changelog
Check out new updates and improvements to Expo and EAS from the Expo team.
2364
Reposted by phil 🫠
Expo @expo.dev · 07/05/2026
SDK 56 beta is out 😅 ◆ 50%+ faster iOS builds ◆ 40% faster Android cold starts ◆ Expo UI + iOS widgets now stable ◆ expo-router rebuilt from scratch ◆ Inline native modules + brownfield multi-app support Strong "speed and stability" theme in this one: try.expo.dev/bluesky
try.expo.dev
Expo SDK 56 Beta is now available - Expo Changelog
Check out new updates and improvements to Expo and EAS from the Expo team.
1333
phil 🫠 @kitten.sh · 06/05/2026
➡️ coming soon in Expo 56, out of the box support for installs with bun/pnpm global virtual stores; perfect for Git worktrees 🌳 (also watchFolders won't be a load bearing config option any longer) github.com/expo/expo/pu...
github.com
feat(metro-file-map): Allow on-demand filesystem to follow symlinks out of scope by kitten · Pull Request #45460 · expo/expo
Why Currently, we enable scopeFallback out of an abundance of caution, which disallows the on-demand filesystem from leaving the defined server root. This has to be explicitly disabled in some case...
020
Reposted by phil 🫠
Vlad-Stefan Harbuz 🌸 @vlad.website · 01/05/2026
The NHS is turning back on its commitment to keep its code open. We're asking them to reconsider. Would you join us?
keepthingsopen.com
An open letter asking NHS England to keep its code open.
Code paid for with public money should, by default, be open to the public.
05818
phil 🫠 @kitten.sh · 12/03/2026
gov uk "one login" is turning into somewhat of a "none or two logins" for me since it doesn't seem to compute that all UK agencies have chosen to transliterate my name differently 🥲
000
Reposted by phil 🫠
Expo @expo.dev · 10/03/2026
🙌 Introducing Expo Agent Build truly native iOS and Android apps from a prompt. Anything from React to SwiftUI to Jetpack Compose. Compile and deploy for Apple, Android, and the web right from the browser! youtu.be/3yyy32R0s2k
youtu.be
Introducing Expo Agent (beta): build real, production-quality native apps from your browser
YouTube video by Expo
0306
phil 🫠 @kitten.sh · 03/03/2026
quality of life feature in @expo.dev 55, iOS dev builds using expo-dev-client will discover devservers on the local network automatically ✨📡 qr codes are finally fully optional now 😄
1113
phil 🫠 @kitten.sh · 03/03/2026
bit of a funny blunder to do a big, transparent & comprehensive ToS change + notification to then accidentally write that you have to be 18 to use Zed implying the software when you meant (as per the terms) the service/subscription 😅
010
Reposted by phil 🫠
Expo @expo.dev · 26/02/2026
Expo SDK 55 is out 😅 RN 0.83, React 19.2 & a long list of things that make your app faster, smaller, & easier to build ♦ Hermes bytecode diffing cuts update sizes by ~75% ♦ Brownfield support gets a serious upgrade ♦ MCP now queries EAS + TestFlight crashes Full changelog: expo.dev/changelog/sd...
expo.dev
Expo SDK 55 - Expo Changelog
Learn about the changes and how to upgrade
4579
phil 🫠 @kitten.sh · 19/02/2026
small detail in Expo SDK 55 (beta) 🧹 the startup output will reduce itself in short terminal windows, and smaller QR codes render in terminal apps that support it
Startup screen in Expo showing the QR code and the help output. The help output omits most key instructions, and the QR code is rendering at an increased density (smaller)
030
phil 🫠 @kitten.sh · 29/11/2025
📦 multitars we're starting to share around some tar & multipart en-/decoding code at expo, so it's published separately now. We needed tar/multipart support that's memory efficient and based on the Web Streams API github.com/kitten/multi...
github.com
GitHub - kitten/multitars: Multipart and Tar utilities for the Web Streams API
Multipart and Tar utilities for the Web Streams API - kitten/multitars
140
phil 🫠 @kitten.sh · 20/11/2025
damn, this new ai code editor is awesome
VSCode with Internet Explorer spamware toolbars
230
phil 🫠 @kitten.sh · 06/11/2025
we got 1000+ submissions, and I looked at ~600 submissions and hand tested well over 100 apps over the past few days, as just one of our reviewers. congratulations to the nominees & your apps! 💯🎉
140
Reposted by phil 🫠
Expo @expo.dev · 27/10/2025
💂‍♀️ If you're anywhere near London next month then make your way to RNL Conf. This is a talent-rich event with wonderful speakers, panels, and workshops. We've got a massive cohort of Expo devs headed to London and we'd love to see you there. www.reactnativelondon.co.uk
092
Reposted by phil 🫠
Jovi 🐨 @jovidecroock.com · 12/10/2025
The 3 worst GraphQL myths: ❌ Everything is POST ❌ All URLs are /graphql ❌ Anyone can query anything One solution destroys all three: Persisted Operations/Trusted documents www.jovidecroock.com/blog/graphql...
jovidecroock.com
GraphQL Myths
Common misconceptions about GraphQL and how persisted operations address them.
0286
Reposted by phil 🫠
Expo @expo.dev · 06/10/2025
Announcing: The first ever Expo App Awards 🏆 We’re celebrating the most beautiful, creative, and technically impressive apps built with Expo. The 5 categories include: ♢ App of the Year ♢ Most Creative ♢ Community’s Choice ♢ Largest Scale ♢ Most Innovative 🎹 Prize details below ↓ expo.dev/awards
4241
phil 🫠 @kitten.sh · 03/10/2025
clearly, whoever is tasked with writing these is running out of ways to say "lol no"
Email in response to UK petition: The Government has responded to the petition you signed - "Repeal the Online Safety Act".
Government responded:
The Government is working with Ofcom to ensure that online in-scope services are subject to robust but proportionate regulation through the effective implementation of the Online Safety Act 2023.Email in response to UK petition: The Government has responded to the petition you signed - "Do not introduce Digital ID cards"
Government responded:
We will introduce a digital ID within this Parliament to help tackle illegal migration, make accessing government services easier, and enable wider efficiencies. We will consult on details soon.
030
Reposted by phil 🫠
Jon Samp @jon.expo.app · 29/09/2025
The iOS queue times for Free plan users on @expo.dev were around 4 hours at this time last week. We increased our Mac capacity today. We're seeing <10 min queue times right now. ⚡ Subscribers are seeing 0 min queue times.
2145
phil 🫠 @kitten.sh · 18/09/2025
if car mechanics got calls that were like github issues, they'd often hear “my 2012 VW Golf doesn't turn on” without the car in question ever being dropped off at their garage
130
phil 🫠 @kitten.sh · 17/09/2025
5min until the @expo.dev SDK 54 Live Stream 🎥 don't forget to drop by and see what's new (or leave it running in the background as a podcast-replacement 😄) www.youtube.com/watch?v=KBlb...
youtube.com
What's new in Expo SDK 54? Precompiled React Native for iOS, Liquid Glass, Router v6...
YouTube video by Expo
030
phil 🫠 @kitten.sh · 13/09/2025
first weekend in the @expo.dev 54 cycle! We released some fixes ahead of the weekend, that we didn't catch in time 🪩 1. RCTNewArchEnabled (new) wasn't set consistently failing old arch builds on iOS 2. liquid glass effect for child views missing 3. @​expo/metro-runtime not autoinstalled as intended
1133
phil 🫠 @kitten.sh · 12/09/2025
there's a lot of exciting things going on in SDK 54, but the less exciting changes will hopefully make your upgrade smoother and your everyday DX with dependencies more stable 💕 All kinds of reliability improvements land in SDK 54! small thread about those 🧵
2192
Reposted by phil 🫠
Expo @expo.dev · 10/09/2025
𝝠 Expo SDK 54 is LIVE 🚀 ◆ React Native 0.81 ◆ Precompiled RN for iOS → faster clean builds ◆ iOS 26 Liquid Glass icons + views ◆ Android 16 target, edge-to-edge default ◆ Router v6 native tabs ◆ Updates: header overrides, progress, reload screen ◆ So much more... expo.dev/changelog/sd...
expo.dev
Expo SDK 54 - Expo Changelog
Learn about the changes and how to upgrade
28020
phil 🫠 @kitten.sh · 28/08/2025
it's a big oof kinda day github.com/facebook/rea... github.com/facebook/rea...
github.com
[iOS] Use autolinking react-native-config output in iOS artifacts generator by kitten · Pull Request #53503 · facebook/react-native
Summary: Resolves #53501 This is a pretty major oversight of (presumably) the old autolinking refactor. The iOS autolinking&#39;s second stage, invoked in use_react_native! does not accept the reac...
220
phil 🫠 @kitten.sh · 27/08/2025
Expo SDK 54's stable release is coming soon! 𝝠 Behind the scenes, changes to autolinking & dependencies make updates easier, and improve support across package managers for workspaces & isolated dependencies 📚 kitten.sh/blog/autolin... (Also please give SDK 54's beta a try ❤️)
kitten.sh
Autolinking's broken promise
Mending a thousand Expo apps’ dependency issues.
171
Reposted by phil 🫠
david @davidsh.bsky.social · 26/08/2025
Announcing PATCHFORK for TypeScript!!! It's like immer, but optimized for one-liners. It's a silly little overly-clever thing but I actually kinda like it ? github.com/ds300/patchf...
182
phil 🫠 @kitten.sh · 25/08/2025
reminder (because this truly annoys me): peer dependency resolution is pretty broken with severe bugs in *every* package manager, except pnpm. Yes, really
1141
phil 🫠 @kitten.sh · 24/08/2025
really have to finish a new blog post, so instead, I of course took @arrowtype.bsky.social's amazing Recursive font, made some tweaks (rough sketch still due to some import issues), threw it in my blog that hasn't seen new posts for 5yrs and updated its colour scheme priorities ❤️
side by comparison of the "Recursive" font (by ArrowType) and the fork ("TailRecursive") showing mainly removed slab-style serifs on ascenders on the font's glyphs.
230
phil 🫠 @kitten.sh · 21/08/2025
no matter the app, you really can't escape the inevitable @freezydorito.lol for long 😂😂
one of laura's post on Digg
151
Reposted by phil 🫠
Expo @expo.dev · 20/08/2025
Building apps is easier than ever. But shipping? Still brutal. Until now. 🚀 Today we're introducing Expo Launch. The fastest way to get to the app store. ◆ Skip config ◆ Skip certificates ◆ Skip the maze Press “Launch” → land in TestFlight. expo.dev/blog/introdu...
expo.dev
Introducing Expo Launch: a new way to get to the app store
Expo Launch makes shipping iOS apps effortless. Skip configs and terminals, and submit directly to the App Store in minutes.
2406
Reposted by phil 🫠
Expo @expo.dev · 19/08/2025
SDK 54 beta is out 🚀 ◆ RN 0.81 + React 19.1 ◆ Precompiled React Native for iOS → ⚡ faster builds ◆ iOS 26 Liquid Glass icons + Expo UI ◆ Android 16 edge-to-edge + predictive back ◆ Updates to EAS Update + Autolinking ◆ Final release w/ Legacy Arch Details in the changelog: expo.dev/changelog/sd...
expo.dev
Expo SDK 54 beta is now available - Expo Changelog
Learn about the changes, how to try it out, and how to give feedback.
15815
phil 🫠 @kitten.sh · 14/08/2025
🎉📱
pnpm isolated, pass;
pnpm hoisted, pass;
bun isolated, pass;
bun hoisted, pass;
npm, pass;
yarn classic/v1, pass;
yarn berry hoisted, pass
020
phil 🫠 @kitten.sh · 14/08/2025
tried out @tangled.sh and deployed a knot to my home server and it's simply very good™! feels very lean and straightforward to self-host a knot and atproto for git forges feels like the perfect match ❤️
2342
phil 🫠 @kitten.sh · 29/07/2025
i didn't fully proofread this and didn't do a lot of editing but if anyone in the UK is planning to write to their MP about the Online Safety Act and doesn't have time to draft a long letter, maybe this is a good starting point ❤️ gist.github.com/kitten/29cec...
030
Reposted by phil 🫠
Kadi Kraman @kadi.bsky.social · 24/07/2025
New @expo.dev example: graphQL server and client with ✨automatic type generation✨! 🧘‍♀️ GraphQL Yoga - server 💜 URQL - client 🎉 gql.tada - type generation ☁️ EAS Hosting - for API & web deployments
0314
Reposted by phil 🫠
drogus @drogus.bsky.social · 06/04/2025
I have written a post about JAWSM, my JavaScript to WebAssembly compiler: itsallaboutthebit.com/jawsm. Long story short: I now implemented all of the JS semantics (scopes, prototypal inheritance, async/await, generators) and it passes 25% of Ecma262 spec test suite.
itsallaboutthebit.com
JAWSM - a JavaScript to WASM compiler
3399
phil 🫠 @kitten.sh · 02/04/2025
getting a mario kart open world before GTA6 was not on my bingo card
040
phil 🫠 @kitten.sh · 13/02/2025
maybe i care less about spending time with and on graphql these days, but i do care about numbers going up 📈
comparative benchmark of "@0no-co/graphql.web" (version 1.0.13 and 1.1.0) compared to "graphql.js" version 16. Version 1.1.0 of "graphql.web" can be seen to be 25% faster, now beating graphql.js by 70% in a representative kitchen sink query. Beating itself by 16% with a smaller query, and "graphql.js" by 41% with the smaller query.
0140
Reposted by phil 🫠
Jay Meistrich @jayz.us · 20/01/2025
Legend List 1.0 beta is ready! It started as a performance experiment, but it ended up solving a lot of the major issues with lists in React Native. 🎉 ✨ Better perf than FlashList ✨ maintainContentVisiblePosition ✨ Bidirectional infinite lists ✨ Chat UI without inverting
38016
Reposted by phil 🫠
Oskar K. @kwasniew.ski · 15/01/2025
Android's Material You was introduced with Android 12, yet many apps still don't leverage this feature 🤔 Here is a showcase of React Native Bottom Tabs + Material You theming changing based on system appearance ✨
2132
phil 🫠 @kitten.sh · 14/01/2025
this has been in the work for *months* at @expo.dev 😄 but we're finally launching EAS Hosting! this is the first of many steps for building out Expo web, and also sets the groundwork we need for SSR-support and React server functions & components 🚀 expo.dev/blog/expo-an...
expo.dev
EAS Hosting (Preview): Host Expo server code in the cloud with EAS
Introducing EAS Hosting: the first ever end-to-end deployment solution for universal app development.
2517
Reposted by phil 🫠
Jay Meistrich @jayz.us · 20/11/2024
Legend List 0.1 is ready to test! This is an early experiment to see how well it works in real apps so please post issues and/or PRs 🙏. It’s only ~600 lines so it should be easy to understand and tweak. ✨ 100% JS ✨ Fast ✨ Dynamic sizing ✨ Works in both new and old arch
1010515
Reposted by phil 🫠
Expo @expo.dev · 18/11/2024
🥳 It's time to party! We have announcements, blog posts, videos, and livestreams scheduled throughout the week. ⚡ And we're getting things started today with an SDK 52 Highlight video: youtu.be/quZv3uKSEfY?...
youtu.be
Expo SDK 52: Our largest release ever!
YouTube video by Expo
620831
phil 🫠 @kitten.sh · 04/11/2024
eventually I'll have to find some time to work more on GraphQLSP (the TS plugin used by gql.tada for LSP integration) currently, we use TS' getDefinitionAtPosition a lot to get to GraphQL document references, but I've got a PR that looks to switch this to a symbol-based implementation instead
extracted code from TypeScript's "go to definition" service. This is part of going to the definition from an AST identifier. This code extracted looks at resolving aliased symbols, then goes to that symbol's value declaration.
170
phil 🫠 @kitten.sh · 02/11/2024
(small behind-the-scenes effort) the @expo.dev SDK 52 will shed several old/unused npm deps in future SDKs pre-bundling, more fixes, and external changes will help too But overall, installing SDK 52 will already be faster than installing SDK 51 🚀 (npm graph side-by-side for comparison)
Expo npm dependencies graphs of the `expo` meta packages comparing SDK 51 and SDK 52 (preview).
The SDK 52 dependency graph has lost a lot of dependencies.
4335
phil 🫠 @kitten.sh · 31/10/2024
no judgement here right? but opening a UDP socket in Node seems to be a very reliable and portable way to get the preferred & public network route's IP address 😅 seems odd, but also(!) seems to work 🥲
Node spawnSync of inline code that creates a UDP4 socket (via "node:dgram") to "1.1.1.1" and writes the socket's address to standard output. The spawned standard output is then returned and compared to "node:os"'s "networkInterfaces()" array output. If a non-internal IPv4 address matches, we determine this to be the internal network IP address.
060
phil 🫠 @kitten.sh · 30/10/2024
a first for me, but I recently worked on a Linux kernel module for the first time 😅 I've been trying to play more games on Linux rather than Windows, but I was then missing out on my favourite driver: RawAccel 🐁 for configurable mouse acceleration (thread time? 🧵) github.com/AndyFilter/Y...
github.com
Implement acceleration using an `input_handler` modifying `usbhid` input events directly by kitten · Pull Request #5 · AndyFilter/YeetMouse
Supersedes #2 (A prior draft of this PR) Problem Currently, the kernel module is a full driver, based on the boot-mode USB mouse driver in Linux. It then uses a slim USB HID descriptor parser (util...
181
phil 🫠 @kitten.sh · 02/04/2024
parsing & printing in @​0no-co/graphql.web is now even speedier (faster than graphql.js) 📄 recap: graphql.web is a spec-compliant lib for GraphQL parsing, printing, and visiting for client-side GraphQL clients and a drop-in replacement. It ships by default with urql
Benchmarks for graphql.web for parsing and printing. Parsing is 1.26x faster than the current published version and 1.3–1.47x faster than graphql.js. Printing is 2.32x faster than the current published version and 9.94–34.16x faster than graphql.js.Benchmarks for graphql.web for parsing and printing without warmup time (only one sample in benchmarks, so the JIT won't kick in).
Parsing is 1.72x faster than the current published version and 3.14–3.66x faster than graphql.js. Printing is 4.95x faster than the current published version and 5.55–9.23x faster than graphql.js.
021
phil 🫠 @kitten.sh · 30/03/2024
so far this weekend, I’ve been working on updating my colour scheme. picked out 20 colours (16 ansi and 4 UI colours) while my colour blindness was sabotaging me. This was exhausting
List of colours in a colour scheme following xterm16 with some extra coloursColour Swatch with all colours from previous image
110