Stripe offered to acquire us for $1.2 billion when we had $2M in revenue.
Today, we've raised $330M at an $8B valuation and reached $1B ARR.
We could've died three times during this journey.
This is the story I've never told anyone before:
internal tools start simple then slowly evolve. for me it starts with a Node.js script, then i extend it to take CLI arguments, and then (rarely & reluctantly) take the huge leap to web UI
but i've just discovered a TUI using react + https://t.co/PzhvebMC4j exists and is great
i did a deep dive into nativewind v4 last week for a universal expo project and it’s very impressive. the approach is very elegant and reminds me of how flexbox is used in react-native. CSS variables in react-native is a killer feature
@natebirdman i had a look how nativewind v4 works and i think this is mostly what it already is, it has css variable support and can do 0-re-render, reactivity, media queries. i think tamagui differentiates on animation drivers and view flattening
I've been using io-ts for years but this week took at look at Zod. Based on npmtrends it's much more popular, but after using it I'd say it's basically the same, but not obviously better… 🤔
So why did Zod win?
I've been doing some Android development and hit a snag getting screenshots onto my Mac. With iOS I just use AirDrop. After hunting around I found Bluetooth File Transfer and it seems good.
Is this what everyone else does?
Expo's "typed routes" is pretty nice. I wrote a type-safe router for React (web) a few years ago, but without TypeScript's Template Literal Types the API was pretty awkward.
I love that type-safe routing is now table-stakes.
https://t.co/SwyLtyaM7j
After a couple of months of not using flex-box I have to re-learn the API, `justify` vs `align`, `content` vs `items` are the most confusing for me 😬. I find the "main axis" and "cross axis" terms in the docs intuitive.
Just realised in semver ~1 and ~1.0 are different. I thought ~ meant "patches allowed", and ^ meant "minors and patches allowed", but it's not that…
```
> semver.satisfies('1.1.0', '~1')
true
> semver.satisfies('1.1.0', '~1.0')
false
```
https://t.co/v0AsscRy8y explains it
It's here! 5.5 beta dropped.
5.5 is the most excited I've been about TypeScript since 4.1, when they released template literal types.
https://t.co/7U4Rkvjv5p