Once a platform's revenue depends on ad impressions, every product decision starts getting filtered through one question: does this make people scroll more? The answer to that question shapes the platform until it stops being recognisable (aka. enshittification).
What ad incentives do to a feed
There are two ways to make more money from advertising. Show more ads, or charge more per ad.
Showing more ads has an obvious ceiling. Nobody uses a platform that's just adverts (I hope), so platforms get there indirectly. Increase the time people spend in the app, and you can show them more ads without raising the density. Every "feature" becomes an engagement feature. The chronological feed gets replaced by an algorithmic one that surfaces whatever keeps you scrolling. Slow content gets buried because it doesn't drive the metric.
The half-finished sweater. The third attempt at a tricky seam. The dye experiment that didn't quite work. Super valuable information for makers, but none of it survives a feed tuned for retention.
Charging more per ad means making the audience more "valuable" to advertisers. That means surveillance. Tracking what people look at, who they follow, what they buy, where they go, and packaging it up so advertisers can target precisely. The richer the profile, the higher the rate.
Why "we'll do it tastefully" doesn't hold
Platform owners aren't weak-willed (at least most of them). The problem is structural. Ad-funded platforms operate under investor expectations, growth targets, and hosting costs that scale with users. Once revenue depends on ads, saying no to more ads gets harder every quarter.
Every platform that's gone bad started with someone insisting it would be different this time. They weren't lying. They lost.
What's different about Craftsky
Craftsky is built on the AT Protocol, the same protocol Bluesky uses. Your posts, follows, blocks, and profile live in your own data repository, hosted on a Personal Data Server (PDS). Not on my servers. You can take everything with you to another app at any time, and your followers don't disappear when you do.
That architecture removes the surveillance-ads playbook. The data that would be most valuable to advertisers — what you make, who you follow, what techniques you're learning — isn't sitting in a database I control. Even if I wanted to run that playbook, the building blocks aren't where they'd need to be.
Craftsky is also a small, solo-developer, open-source project. There are no investors expecting hockey-stick growth. Hosting a focused fiber arts community costs the price of a single server (maybe two if things go well) and my time.
What Craftsky won't do
Rather than pledging "no ads ever" and leaving room to walk it back later, here's what I'm committing to:
Craftsky's revenue model will never depend on advertising. Hosting will be funded another way, likely an optional subscriptions for premium features. If that changes, it'll be announced loudly, not slipped into a terms-of-service update.
Craftsky will never sell ad placements to third parties. No yarn-company banners, no sponsored slots, no "promoted posts."
Craftsky will never run behavioural advertising. Your activity won't be packaged up and sold to advertisers, ever. The protocol architecture makes this much harder, but the commitment stands regardless.
Craftsky will never optimise the feed for engagement. Posts appear in the order they happened. The half-finished sweater isn't punished for being a half-finished sweater.
What I'm leaving room for: the crafting world runs on small makers supporting each other. If there's ever a way to surface indie pattern designers, dyers, or independent yarn shops that the community wants, and it doesn't involve tracking, auctions, or paid placement, I'd want to be able to build it. That's a different thing from advertising.