Opening the lab doors

Welcome to the lab!

We're making a social publishing platform built on Bluesky: a way to publish blogs and newsletters, and (soon!) ways for your friends to follow, comment, and more.

We've been working on the Leaflet editor for a while — a tool for quick fun collaborative docs — but this is a new chapter!

Leaflet Lab Notes is where we'll share updates as we build it. We're aiming to write, and release new features, ~weekly.

We'll note what we find exciting, and where we run into problems. We'll get technical, for Bluesky builders, and touch on themes like internet publishing and open networks, for writers and creators.

⁂ ⁂ ⁂

⁂ ⁂ ⁂

Going to press: publications and posts

Our first release brings Publications (or pubs) to Leaflet: collections of posts you can use for a blog, newsletter, project log — anything you want people to read and follow.

You can now make two things from the homepage:

Leaflets, the same simple shared docs as before

Publications, where you can publish Leaflets in a collection

It was a design challenge to fit this into the existing app, but we've kept it pretty simple for now, with minor homepage changes and new default layouts for publications and posts (a post is just a Leaflet with some extra metadata!)

Make as many publications as you like. Each will live at its own subdomain; support for custom domains is on the to do list.

—The Leaflet Team

Bluesky bricklaying

Working with ATProto was a lot of fun. Starting schema first is a great way to start building an app in general and the Lexicon toolchain is really solid!

This is very much still an alpha release though. We need to publish our lexicon properly to the ATmosphere so other tools can pick up on it. We could also do a lot more to extract the atproto side of things from the leaflet side of things, to make it easier to build other apps on top.

I'm really excited to start building social features. Right now this is basically just a fancy editor and renderer on top of single records in your PDS. But once we add follows, comments, quotes, etc, we'll be linking across people's data, and that's where the real magic of atproto begins!

One area to keep an eye on: right now we're storing records in a jsonb column in postgres. Works great right now but once we add those social features, I don't have much experience building indexes on top of that, or writing queries with it.

—Jared

To leaf, or not to leaf?

One big decision we went back and forth on was whether to make a new app just for publishing, or to add this as a capability to Leaflet. After much waffling we decided to fold publishing into Leaflet. And I think it was the right choice!

The difference between a Leaflet and a Publication is not actually "private vs. published" but loosely "one-off vs. series". By keeping both sides in one app, we maintain a porous connection between one-off documents and sustained practices. A single Leaflet can inspire a more in-depth series, and a longer series can inspire a small but powerful standalone thought. We think that supporting writing at all scales will lead to more fertile ground!

—Celine

Trial balloons in the atmosphere

Since we're building on Bluesky, we first turned to the Bluesky community for early outreach!

I've been researching cool social apps and other tools that use the AT Protocol — lending this loose dev ecosystem a moniker: the ATmosphere. I took some time to find the people behind the tools, and narrowed down to an initial list of folks I thought might be interested in publishing in some form.

I fired away DMs and heard back from almost all of them! Some are interested in blogs for their own projects, or have newsletter ideas; some are just glad to experiment with something new. In any case, excited to hear what everyone thinks, and see what they make!

Next we'll see how we can expand to other niche communities at the intersection of publishing x Bluesky. Bigger accounts? Poaching disgruntled Substackers? More cool examples? All on the table!

—Brendan

What's in a blog?

We think of publications as essentially just collections of publicly shared Leaflets with a little extra layout sauce sprinkled on top. So in theory, a publication could be almost anything — a blog, a portfolio, a wiki, a public resource, etc.

To start out, we decided to design publications to most closely follow a typical blog layout, because it's simple and useful.

However, we're nothing if not greedy ambitious and I'll keeping an eye on ways to add freedom to the layouting so that you can truly build anything on Leaflet!

—Celine

Try making a publication!

Leaflet Publish is now in alpha, and we'd love for you to give it a try! Right now you can create publications and add posts.

Subscribing by email (Bluesky too?!), comments, and other social features are coming soon. Let us know what else you'd like to see.

To make a publication:

go to leaflet.pub/home

connect your Bluesky account

click new publication and start adding posts

There's a lot we're still exploring — how subscriptions should work, what kinds of customizability will be most fun and useful, monetization models and more — and we're excited to talk about all that more here.

Also, very excited to see what you make!

—The Leaflet Team

⁂ ⁂ ⁂

comment here on Bluesky!

(manual thread, til we add proper comments in publications)