Jake Gold
@jacob.gold
29K followers 3.3K following 3.7K posts
Infra eng leader, SF Bay Area. Helped launch and scale Bluesky. Prev: Nuro, Docker, Google, founder. Currently working on AI codegen. Obsessed with history, computers, and open systems. Happy to chat: [email protected]
Posts Media Videos Starter Packs
Pinned
jacob.gold
An unordered / non-exhaustive list of things that helped scale Bluesky's infra efficiently:

+ Exiting the cloud (colocation)
+ HAProxy w/many Node backends
+ Go w/clever code
+ ScyllaDB
+ SQLite w/per user databases
+ Redis w/many instances
+ AMD servers w/many cores
+ Purchasing bandwidth directly
jacob.gold
It was a well made movie.

Biggest surprise to me was how *unconvincing* the hot civil war plot was, which I found somewhat uplifting.

A much more depressing (and less exciting) movie could be made about the "cold" civil war path we seem to actually be on.
jacob.gold
Most people should just use a PDS hosting service and don't need to run their own.

But it's a very important feature that people *can* self-host a PDS.

And it's very important that anyone can leave their current PDS host, taking their data with them.
jacob.gold
A ~$6/mo VM rented from any decent cloud provider will (typically) run a small private PDS for years with uptime approaching 100%.

K.I.S.S.

github.com/bluesky-soci...
jacob.gold
If you want to understand moderation on AT / Bluesky, you can't get a more authoritative description than Bryan's.
bnewbold.net
for atproto devs and protocol watchers, I published an overview of the network moderation architecture.

it tries to cover all the mod actions possible for each service type. this design has been around a while, but not well documented.

this doc is not very polished, but could clarify some details
AT Moderation Architecture | bryan newbold
The AT network is becoming more heterogeneous in practice, with independent PDS hosts, apps, and alternative bsky AppViews establishing themselves. This means that more complex inter-service moderatio...
whtwnd.com
jacob.gold
"This change is so small that it couldn't possibly break anything."

Still gets me every so often and makes me laugh at myself.
jacob.gold
Mark Twain in Nikola Tesla's lab is such a cool photo.

It was taken with Tesla's own electric fluorescent lamp and photo setup.
Black-and-white photo of Mark Twain in a dark lab, holding a glowing experimental lamp created by Nikola Tesla; his face and hands are lit by the bright light while the rest of the room remains in shadow.
jacob.gold
Ebikes are fun but I'd never buy one. Biking is the only reason I'm in not-totally-terrible shape.
jacob.gold
I was excited to post about cheese blintzes but I'm happy to talk about anything.
jacob.gold
Waffles are nice. Pancakes are better. Crepes are betterer.

And cheese blintzes are the best breakfast cake.
Traditional cheese blintzes topped with blackberry compote
jacob.gold
Yeah, Ent is a bit higher level than that. Maybe more heavyweight than you'd want.

sqlc works quite well too and is closer to Kysely

docs.sqlc.dev/en/latest/tu...
jacob.gold
Doing things manually is great at a very small scale (a few tables) but with many tables/columns, it quickly becomes a repetitive and error-prone mess.

Or you invent your own database abstraction, which usually ends up working like a really poorly done ORM.

+ type checking, hooks, validation, etc.
jacob.gold
I've used all the Go options, and not a fan of gorm.

But I've been using `ent` for quite a while now and rarely have to drop to raw SQL. Not perfect but very good.

Uses codegen so it's typesafe and it's simple but fairly complete.
Quick Introduction | ent
ent is a simple, yet powerful entity framework for Go, that makes it easy to build
entgo.io
jacob.gold
Lists are useful and do let users "choose" their experience more than just having Following.

But it's very far from full blown subcommunities, each with their own culture/rules/people/content, etc.
jacob.gold
I remember when Reddit was entirely dominated by programming+startup content.

It was totally unappealing to most people.

Fix was straightforward: adding subcommunities, so users could choose what people+culture+content they were interacting with.

Scopes down the network in exactly the right way.
alice.mosphere.at
the sad thing is i don't know if the reputation/culture of bsky can be fixed

bsky's culture got poisoned early on which made it develop a certain reputation which both repelled and attracted certain people and so on and so on and here we are now, 2.5 years later and. waffles
jacob.gold
Yeah, it only annoys the the people that are the most easily annoyed by this kind of thing 😉
jacob.gold
The naming of atproto is a bit of a cautionary tale for future protocol namers to learn from.

Between the difficulty of shortening "The AT Protocol" and the annoying "Hayes AT command set" people, the name is awkward.

at
atproto
At
Atproto
ATProto
ATP
AT Proto
AT Protocol
@
@tp
@proto
@Protocol
jacob.gold
I dislike AT Protocol, ATProto, and ATP, each for different reasons lol

I think you *can* in most cases just grit your teeth and write "atproto" everywhere even though it looks a little wrong.
jacob.gold
I dislike AT Protocol, ATProto, and ATP, each for different reasons lol

I think you *can* in most cases just grit your teeth and write "atproto" everywhere even though it looks a little wrong.
jacob.gold
Yeah ads aren’t the only problem with social media. There are real social problems too.

Product design is bad if users have bad time using the product.

Twitter never figured out how to do a good job of reducing toxicity and Bluesky hasn’t either.

But the incentives are good enough now to do it.
jacob.gold
For me, the only measure of the success of atproto/Bluesky is whether or not it "fixes social media".

Which to me means drastically reducing the negative effects social media is having on society.

An open network is the way to break the corrupting ad-based model, which is the root of the problem.
pfrazee.com
Ready to die on the hill of "social media doesn't have to suck"
jay.bsky.team
Too real. We’re going to try to fix this. Social media doesn’t have to be this way.
jacob.gold
The chart is showing that new atproto apps are being created, each with their own atproto record types.
jacob.gold
Yes! There are enough serious atproto projects now that I can't keep track of them anymore.

At this rate, someone is going to create an atproto app that is even bigger than Bluesky.
divy.zone
AT devs have just been blowing me away, the ecosystem is cookin!! i see you out there making it happen!!!
devingaffney.com
In fact, 80% of non-BSky collections are under active development with records written in the last week - 90% in the last month. Almost *no* abandoned projects where more than a small handful of uptake. The ecosystem is ~sticky~. Why?
jacob.gold
Pretty sure it's a lowest common denominator problem. RN uses an old library because it's consistent across platforms, etc.

Boo, I say.