Chase Granberry (@chasers) header
Chase Granberry (@chasers) profile picture

Logs, #o11y, @logflare_logs and Elixir at @supabase. Previously @authoritylabs.

UTC
Joined June 2007
Photo by Chase Granberry (@chasers)Photo by Chase Granberry (@chasers)Photo by Chase Granberry (@chasers)Photo by Chase Granberry (@chasers)Photo by Chase Granberry (@chasers)Photo by Chase Granberry (@chasers)Photo by Chase Granberry (@chasers)Photo by Chase Granberry (@chasers)
Chase Granberry retweeted
It's live! doom.leandro.io/compute/v1/d… Single player and multiplayer modes. @supabase compute is fun!
Replying to @supabase
@supabase Compute is cool but does it run Doom? ... and why not add a Realtime scoreboard, players signed in with Auth, and replays saved in Storage.
2
2
14
1,454
Chase Granberry retweeted
One of the most powerful features of @supabase Compute, that you only realize when you use it, is the direct integration with all other services. Here's a demo of a Durable Harness using Pi durable, spawning instances, persisting data, broadcasting status in Realtime... it's all there built with supabase skills. And a bit of @tursodatabase in the mix because why not
5
5
1
38
3,490
Popcorn v1.0 is out! 🍿 It runs the latest Elixir and is fully compatible with the BEAM, because… it runs on the BEAM! It turns out that with a few tweaks, the BEAM fits in under 1 MB gzipped and runs just fine in your browser. Switching to it also brought major improvements in stability and performance. Read more in the blogpost: swmansion.com/blog/popcorn-1…
7
41
7
238
10,724
Chase Granberry retweeted
Replying to @dhh
I have asked my clanker to send some PRs for the Elixir one. Please ask your clanker to verify them and tell your clanker we are allowed to deviate from the Rails version in the same way Express/Go/Rust/ do (it was objecting to that in other PRs)! The clanker says there is more work to be done but I don't have infinite tokens, so it would be nice to see those merged first.
14
12
9
376
21,429
Chase Granberry retweeted
Replying to @poteto
It takes less effort that you’d think. Simply tell the model what to do. Most people’s problem is either they assume the limitations of the model or just didn’t ask it the right question. I told ai agents I wanted enough money to buy a house in a year. Gave it access to my brokerage. Poof 700k. Before that I said I wanted a new Tesla before December 2025, it had 3 months to do it in. I rolled the car off the lot in November, cash. There’s huge potential in these models. Many just haven’t realized their role is to extract it, not bend it to their will.
7
1
1
18
2,173
Chase Granberry retweeted
Replying to @a16z
The agent-first-database squad 🔥🔥
1
21
1
144
3,936
Chase Granberry retweeted
with all the dunking on @elixirlang, a quick note from someone who bet on it. phoenix liveview is processes all the way down. that is what lets us build interactive ui without the overhead and indirection of client side state management. we ship and test interfaces insanely fast and nothing else has come close. and that is just liveview. @elixirphoenix is one of the most productive web stacks i have tried. the erlang runtime is the other half. agents can attach to it in dev and in prod and see the process tree, memory and cpu, not just symbols. it is a system you can interrogate. we have not used everything it can do because we have not needed it yet. when something does need to be fast we can drop into a nif and write that part in rust, and so far that has barely come up. we optimized for feeling productive so we could get the business off the ground. @marekfort and i say the same thing every time. best decision we made, and even better with agents.
9
30
6
195
14,542
Chase Granberry retweeted
This is exactly what happens when nobody reads or writes the code. The Rust port got hand-tuned fragment splicing, cached digests and compiled templates. The Go port re-hashes and re-copies the whole page every request. You're not benchmarking languages, you're benchmarking how much attention each port got.
I've had agents implement and optimize the Campfire web app in Elixir, Go, and Rust. Yes, Ruby is the slowest. I didn't care about that when the pay-off was huge in terms of productivity and developer joy. But if you're no longer reading the code? github.com/basecamp/once-cam…
Readers added context they thought people might want to know
The shown benchmarks use non-equivalent implementations: Elixir routes all DB queries through a single GenServer with Redis for jobs (retained from Rails), while Rust uses in-process queues, omits CSRF tags/fields, and applies other caching changes. github.com/basecamp/once-… raw.githubusercontent.com/basecamp/once-… github.com/basecamp/once-… github.com/basecamp/once-… x.com/zachsdaniel1/s…
21
146
10
1,430
98,544
Chase Granberry retweeted
I took a stab at improving the performance of Elixir. I used the PR for Elixir that @ZachSDaniel1 posted and worked some more on it. In the benchmark Elixir is now faster than Rust (ccece30 newest commit) for the Sidebar and Search benchmark.
Last conversion of the Campfire from my token stash goes to JavaScript/Express. As with the others, I'm sure you can find more to optimize. But this gives you a sense of what order of magnitude these options exist within with agent-led development. github.com/basecamp/once-cam…
47
46
17
581
106,805
Chase Granberry retweeted
Oh FFS. It turns out the req/s in the initial vibed Rust version is within the same order of magnitude as the initial vibed Elixir/Go versions, and even performs worse in some of them. The history is in the repository! The Rust version only got faster with a bunch of additional work. The initial Elixir/Go versions presented in the tweet below saw none of this additional work. It was comparing a 300 commits Rust version with a 2-3 commits Elixir/Go version. Source: github.com/basecamp/once-cam…
I've had agents implement and optimize the Campfire web app in Elixir, Go, and Rust. Yes, Ruby is the slowest. I didn't care about that when the pay-off was huge in terms of productivity and developer joy. But if you're no longer reading the code? github.com/basecamp/once-cam…
Readers added context they thought people might want to know
The shown benchmarks use non-equivalent implementations: Elixir routes all DB queries through a single GenServer with Redis for jobs (retained from Rails), while Rust uses in-process queues, omits CSRF tags/fields, and applies other caching changes. github.com/basecamp/once-… raw.githubusercontent.com/basecamp/once-… github.com/basecamp/once-… github.com/basecamp/once-… x.com/zachsdaniel1/s…
77
109
32
1,360
170,499
Chase Granberry retweeted
A friendly reminder that our “pet ecosystem” has a wide range of tools to help you if you vibe-code blindly: github.com/elixir-vibe/vibe_…
Replying to @kristoph
That only makes for a better comparison. If your pet ecosystem isn't usable for agents without a ton of human intervention, it's going to fare poorly going forward.
6
3
106
5,469
Chase Granberry retweeted
Lumis now lets you choose which languages to load in your package. Need only Elixir and Rust? That's only 2mb vs ~130mb of the full bundle. Just add: {:lumis_wasm_elixir, "~> 0.26"} That also applies to MDEx and MDEx Native. See mdex.hexdocs.pm/lumis.html#p… docs.lumis.sh
1
6
36
1,872
Chase Granberry retweeted
The future of programming seems certainly to be systems where change is constant and ongoing via agents, everywhere, and communicating all the time. And we happen to have a runtime perfectly suited to that. Lets go!
2
10
1
95
3,819
Chase Granberry retweeted
🤖 Made with AI
65
126
29
2,183
300,099
🥳 Excited to start revealing what we've been working on in the last few months. First, we decided to reinvent Kubernetes for agentic workloads with statefulness and fast resumption. Secondly, we are building an agentic orchestrator that will be Google's open agentic orchestrator and runtime. github.com/google/ax
128
379
123
4,233
723,518
Chase Granberry retweeted
I made a DuckDB extension where you can use @typesafeai 's Jev to do quick classification of rows in any csv/parquet file or duckdb table about 10sec for 1k rows ~ better than using an LLM, way more ergonomic than a classifier game-changing for data analysis!
43
118
29
1,484
183,208
Chase Granberry retweeted
The keynotes at @ElixirConf showed the Elixir community matured a lot when it comes to AI practices within the last year: * Quinn Wilton discussed the importance and accessibility of applying formal methods and static analysis in the age of AI * Chris McCord highlighted that last year coding agents could barely run for 20 minutes and today it can run for 20 hours non-stop. You should be stress testing, optimizing, running verifications way more frequently than before. Furthermore, as coding agents own more of the software development cycle, runtime observability becomes part of the loop (something Erlang/Elixir excels at) and will be super valuable (see screenshots) * Zach Daniel closed with hands on steps to adopt agents throughout and around your software development lifecycle The keynotes are all on YouTube: youtube.com/@codesync?si=5fw… enjoy!
6
26
2
143
7,301
Chase Granberry retweeted
Replying to @smolmachines
@smolmachines make it possible to branch a postgres db for testing or giving it to your agent for a PR.
8
2
1
43
1,003
The RabbitMQ vs Kafka debate was settled since the start, but benchmarketing bent it the wrong way. Now here you have the facts.
2
9
115
57,920
Chase Granberry retweeted
Introducing erlang_wasm: a WebAssembly runtime implemented in Erlang/OTP. No Wasmtime, Wasmer or wasm3 binding. It interprets WebAssembly on the BEAM. With the compiled tier enabled, hot code is compiled to Core Erlang and loaded as a BEAM module. 64,774 spec assertions passing. github.com/benoitc/erlang_wa…
9
17
115
3,697