
Itty is an ecosystem of time-saving & code-cutting libraries that weigh every single byte, so your users don't feel them. "Bytes matter." - @kevinrwhitley
Houston, TX
Joined April 2021
- Tweets204
- Following1
- Followers247
- Likes219
Pinned Tweet
Replying to @ittydev
TLDR; This is what your API can look like.
...in a single kilobyte, all-in.
itty retweeted
Replying to @wesbos
Your own example shows one of the challenges of using this.
2nd to last example, breaks "I love pizza!" into 6 words, not 3.
Then there's performance...
And here's a demo of using the live snippets at itty.dev, including a realtime example of itty-sockets in use :)
You can do things like this in your browser logs with itty-chroma.
Check out itty.dev (open the browser console to see/play):
FUN FACT:
itty.dev includes several itty scripts in the console... with examples you can copy/paste right there to play:
itty retweeted
After several years cooking, itty-fetcher v1.x just dropped last night.
This lets you make SUPER clean API calls using native fetch - for 650 bytes.
npmjs.com/package/itty-fetch…
itty retweeted
Which do you want in your browser log messages?
20%console.log
80%console.log + colors
5 votes • Final results itty retweeted
If #2, check out itty-chroma.
Under 500 bytes for easy colors, effects, backgrounds, full CSS support, etc.
npmjs.com/package/itty-chrom…
Want to test it out? Open the console on itty.dev and use it there:
chroma.magenta.log('hello world')
Yes please!
And that's using our largest, least byte-optimized router :p
Today on the blog: @ThorstenHans breaks down the performance characteristics of 3 different JS/TS routers with Spin
* @honojs
* @ittydev
* @spinframework 's manual routing handler
fermyon.com/blog/spin-js-rou…
Which syntax do you prefer (when dealing with a WebSocket-like realtime stream)?
30%.listen(callback)
60%.on('message', callback)
10%.onmessage(callback)
10 votes • Final resultsDef following this one!
#vibestack is my attempt at an LLM-friendly stack that can scale to 50k+ lines of code with ease. I'm on game #7 now and have picked up a lot of technique.
I didn't arrive here through pre-conceived ideas about software. I started vibing just like y'all and hit one brick wall after another. This project is the distillation of all that learning.
What it takes to write a 50k line vibeapp today is not the same as tomorrow. Vibestack will continue to evolve.
For now, I'm working with @vike_js and @ittydev to create a clean Cloudflare-powered WebSocket vibe game engine. I'll be happy if the stack is eventually reduced to nothing because LLMs become so good. But like I said - for today, that is not happening. Nobody is vibing a 50k app without getting involved and getting dirty.
So onward to more coding!
itty retweeted
I saw a guy coding today.
No cursor.
No windsurf.
No chatgpt.
He just sat there. Typing code manually.
Like a psychopath.
itty retweeted
Add color to your browser console.log!
itty-chroma == chalk, but for browser logs
#javascript #browser
🧵👇 1 of 4
itty retweeted
Busy documenting examples, but itty-chroma is technically live.
It brings stuff like this to the browser, in under 500 bytes all-in.
#javascript #browser #console #logs #color
itty retweeted
Spinning up a simple D1 Worker with @ittydev.
1.34KB, only a few lines, and it's working like a champ. Take that for simple syntax! :)
@CloudflareDev delivers magic, yet again :)
Based on feedback, itty-durable@next has reversed the persistence API.
For those playing, v3.0.0-next.3 requires persisted data to be stored in this.$persisted.
All other props become in-memory only!
@CloudflareDev #durableobjects
npmjs.com/package/itty-durab…
👇🙏
As we chew on itty-durable@next, there's a key decision to make, regarding where the persisted props live... only inside a "$persisted" property, or anywhere.
My thought is that persistence should be first-class, so we make that easier, rather than the more explicit location that requires your code to be more verbose.
Examples below... 👇
Which values should be auto-persisted?
43%any defined props
57%only inside $persisted
7 votes • Final results















