<?xml version="1.0" encoding="UTF-8" ?>
  <rss version="2.0">
    <channel>
        <title>Emily Liu's Personal Website</title>
        <link>https://emilyliu.me</link>
        <description>RSS feed of Emily Liu's website</description>
        <item>
          <title>Leaving Bluesky</title>
          <link>https://emilyliu.me/blog/leaving-bluesky</link>
          <description></description>
          <pubDate>Fri, 30 May 2025 00:00:00 GMT</pubDate>
          <content><![CDATA[At one of my first Bluesky team retreats, a colleague offhandedly commented, **“These are the good ol' days.”**
In early 2023, Bluesky had only a handful of users and a team of under 10 people, and I already knew he was right.

The same week I started working at Bluesky, AOC and Dril joined the app as users. With such a start, I thought my experience could only go downhill from there. Instead, the years that followed proved to be a nonstop firehose that have taught me everything from the inner workings of the Brazilian Supreme Court to how furries are actually the backbone of the internet. I realized that everything is customer support and incentives rule everything around us. I'm still trying to figure out if the truth prevails in the marketplace of ideas, and I have complicated feelings around the ongoing experiment of social media. But through it all, I was in the trenches with a mission-aligned team of genuinely kind people. Even when I was trying to accomplish the Sisyphean task of reaching inbox zero, I still knew that I'd remember these moments as the good ol' days.

Today, there are more than 36 million people on Bluesky. A startup employee can only hope for rocketship moments of growth, and on this team, I was lucky to experience that over and over again.<sup id="fnref-1"><a href="#fn-1" className="text-gray-500 hover:text-gray-800">1</a></sup> Recently, I read some posts discussing what that 36M number meant for Bluesky's future, with some users going so far as to analyze the per-second account creation rate. But data points can be used to back any narrative — to some, 36M is larger than the population of their country; to others, it's a speck on the World Wide Web. The better question, cloaked in marketing speak, is: Does culture happen there?

A year or so into the app's existence, we learned that a couple that had met on Bluesky had now gotten married. After someone posted in surprise and excitement when they became a *Jeopardy* clue, host Ken Jennings appeared in the thread with a congratulations... and then [Bluesky itself became a *Jeopardy* clue](https://bsky.app/profile/cooperlund.online/post/3ljlwa2rokk2e). On this platform, artists secure commissions, literary agents sign writers, and shitposters post their way to gainful employment. That says more to me about the future of this app than any raw number could, and it leaves me feeling optimistic.<sup id="fnref-2"><a href="#fn-2" className="text-gray-500 hover:text-gray-800">2</a></sup> I also believe that the arc of the social internet bends towards open networks, whether it's in the next few years or the next few decades.

The best part about an open network is that you never really have to leave. I'm rooting for Bluesky's success and the mainstream adoption of the AT Protocol. It's been an adventure — and Bluesky's good ol' days are just getting started.

## What's next for me? 

I'm taking a few months to log off. I might learn how to read again.

In August, I'm headed a few miles south to pursue a J.D. at Stanford Law School. I'm particularly interested in tech and media law, AI policy, and the First Amendment, motivated in large part by the work I've done over the last few years at Bluesky and The Washington Post.

If you find yourself in the Bay Area and you've made it to the end of this blog post, let me know — I'd love to grab coffee with you. 

#### Footnotes
<section className="footnotes mt-8 pt-4 text-sm text-gray-600">
  <ol className="list-decimal ml-6">
    <li id="fn-1">
      April 2023 when everyone was clamoring for an invite code, September 2024 when X was banned in Brazil, and November 2024 after the U.S. election when it felt like the entire English-speaking population was clobbering our servers and signing up for accounts.{' '}
      <a href="#fnref-1" className="underline text-gray-400 hover:text-gray-600">↩</a>
    </li>
    <li id="fn-2">
      When we're able to talk about AI in a nuanced way on this app, I'll know we've really made it...{' '}
      <a href="#fnref-2" className="underline text-gray-400 hover:text-gray-600">↩</a>
    </li>
  </ol>
</section>]]></content>
        </item>
<item>
          <title>Using Bluesky posts as blog comments</title>
          <link>https://emilyliu.me/blog/comments</link>
          <description></description>
          <pubDate>Sun, 24 Nov 2024 00:00:00 GMT</pubDate>
          <content><![CDATA[As a fast-follow to the blog post from earlier today on the [benefits of an open network](https://emilyliu.me/blog/open-network), here's a concrete example. Your blog's comment section can be pulled directly from Bluesky.

Post a reply to [this thread](https://bsky.app/profile/emilyliu.me/post/3lbqta5lnck2i) and watch it appear in the comments section below.

## TL;DR Code snippet here

Here's a GitHub [gist](https://gist.github.com/emilyliu7321/19ac4e111588bdc0cb4e411c88d9c79a).

Update: This is now available as a [npm package](https://www.npmjs.com/package/bluesky-comments). (Thanks [Cory](https://www.coryzue.com/writing/bluesky-comments/)!)

`npm install bluesky-comments`

## What benefits does this have? 

1. Streamlines where the chatter is. If someone comes across my blog post later, they can easily find the thread where people discussed it. 
2. Easily moderate my comments section. Users I block on Bluesky will not show up in my blog comments section. 
2. Additionally, Bluesky's moderation service provides additional coverage for my blog comments.

## What else could I do with this?

There are so many improvements that I just haven't had time to do yet, and plenty more that I haven't even thought of. If you have ideas, drop a reply and let us know!

1. Sort replies liked by OP at the top of the comments section, and add a nice UI badge that says "liked by OP."
2. Pin posts at the top with a tag "featured by OP."
3. Allow people to login to Bluesky directly from your blog and post a comment on the article, which shows up as a reply on Bluesky. (I believe someone has done this already, but I can't remember who! If it was you, let me know so I can add a link to your blog here.)

Bluesky's open network could be the comments section of the entire internet. Imagine news organizations using replies on Bluesky as their comments section on their website! 

*Thanks to [Samuel](https://bsky.app/profile/samuel.bsky.team) for providing the initial code snippet for me! Read his blog post [here](https://graysky.app/blog/2024-02-05-adding-blog-comments).*]]></content>
        </item>
<item>
          <title>Benefits of an open network</title>
          <link>https://emilyliu.me/blog/open-network</link>
          <description></description>
          <pubDate>Sun, 24 Nov 2024 00:00:00 GMT</pubDate>
          <content><![CDATA[While Bluesky looks like other social apps, it’s actually quite different. **It’s an open network.** 

The app’s simplicity is intentional because user experience matters. In reality, you won’t need to know about the “open network” to use the app, in the same way that people who browse the Internet don’t need to know that it’s a [series of tubes](https://en.wikipedia.org/wiki/Series_of_tubes). 

*This blog post is intended for non-engineers. You can find technical docs for the AT Protocol [here](https://atproto.com/).*

---

## Bluesky as a browser

Perhaps you're using Google Chrome. Maybe you have some extensions installed: AdBlock, a password manager, a to-do list. There's a whole marketplace of extensions that are built by independent developers who do not work at Google. **This is a win-win across the board:** users can customize their browsing experience, independent developers have a way to distribute their apps, and Chrome is more likely to retain users by providing a useful service.

I sometimes describe Bluesky as a browser with a whole marketplace of extensions, made possible by its open network. Perhaps you want a Tweetdeck-like experience of Bluesky? There’s [deck.blue](https://deck.blue/). A no-code way to create custom feeds? Try out [SkyFeed](https://skyfeed.app/) or [Bluesky Feed Creator](https://blueskyfeedcreator.com/). Maybe you want features like drafts or post scheduling that Bluesky doesn’t have yet. Well, the creators of apps like [Skeets](https://www.skeetsapp.com/), [Tokimeki](https://tokimeki.blue/), and [Skywalker](https://bsky.app/profile/skywalker.thereforeiam.eu) provide that for you. 

## If Bluesky is "open Twitter"... 

Let’s zoom out a bit further. Bluesky is actually just **one** app built on this open network, which is called the AT Protocol (atproto). If Bluesky is “open Twitter,” then you could imagine an “open Reddit” or an “open Instagram” too. In fact, this is becoming a reality now, with apps like [WhiteWind](https://whtwnd.com/) (for blogging), [Frontpage](https://frontpage.fyi/) (a web forum), [Smoke Signal](https://smokesignal.events/) (an events app), and [Bluecast](https://bluecast.app/) (an audio app).

With Instagram, X, and Reddit, you’re creating an account on *their* app. It’s like you have a room in their house, and you have to follow all of their rules. If their app shuts down, then you lose your room there. This seems to happen every few years — you connect with all your friends, and then that app crumbles. Now, you have to create another account elsewhere all over again.

![Closed networks depicted as houses, where your account is a room in each house.](/images/open-network-house-1.png)


## Owning your identity online

For many people, leaving X was an incredibly hard decision because they had so much history (followers, posts, etc.) there. Starting all over again is both frustrating and intimidating. But if X was built on an open network like Bluesky is, **you could easily switch providers and keep your whole audience.** This is why we like to say that Bluesky is the last social account you’ll ever have to create, and that it’s “billionaire-proof.” If Bluesky stops providing a great service, you can switch to another one. So your account is *your house*, and every app gets a room. You don't have to build a new house if you switch out one of your apps.

![One house, where every social app is a room](/images/open-network-house-2.png)

With atproto (the open network that Bluesky is built upon), you own your social identity online.

Here's an analogy. With phones, you own your phone number and your contact book. I might use AT&T and you use Verizon, but we can still call each other. Let’s say AT&T stops having signal in my city or starts charging me too much. I could switch over to T-Mobile and still have all my contacts and be able to call you. So this puts pressure on AT&T to keep providing a great service in my city, or else I’ll switch. This competition benefits users, and we just haven't had comparable competition in the social media space for a while now.

I’m particularly excited about Bluesky because it’s not just Bluesky returning competition and innovation to social media — **it’s an entire ecosystem of independent developers, researchers, and more working with the open network.**]]></content>
        </item>
<item>
          <title>How your newsroom can use Bluesky this election season</title>
          <link>https://emilyliu.me/blog/bluesky-for-elections</link>
          <description></description>
          <pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate>
          <content><![CDATA[Imagine you’ve spent 10 years on Twitter, sharing ideas, developing friendships, and building an audience online. If you decide to leave the platform now, you have no choice but to also leave your relationships behind — you have no meaningful control over your social identity there. Struggling to keep up with the latest changes to a black box algorithm or making accounts every few years on the latest, hottest platform shouldn’t be the price we have to pay just to stay in touch with our friends and followers online. 

For too long, publishers, creators, even governments have treated Twitter and other platforms as **borrowed public infrastructure**. What if we made social more like the web itself — open, interoperable, and with lots of choice? On Bluesky:

* _You own the algorithm, not the other way around._ Curate custom feeds that keep readers informed and engaged, while also helping them with intentional news consumption. 
* _Never get locked out of the open ecosystem._ Build tooling on Bluesky’s open API, such as an article page that shows real-time commentary from journalists as they post to Bluesky.
* _Own your social identity online._ Show trustworthiness of your journalists’ accounts by verifying their accounts through domain handles yourself (for free).

## Election tooling on Bluesky’s open network

Big-scale social media, like Bluesky, is excellent at distributing information efficiently and effectively. Here are some key features that Bluesky offers that particularly suit the needs of information dissemination related to elections.

###  Custom Feeds

One unique feature on Bluesky is [custom feeds](https://blueskyweb.xyz/blog/7-27-2023-custom-feeds) — you choose your own timelines, instead of being beholden to private companies and black box algorithms. You can think of them as super-powered lists; they can both be lists of static groups of people or algorithmically-driven feeds. There are already more than 25,000 custom feeds that anyone can build and subscribe to on Bluesky!

Some of my favorites, to give you a sense of what’s out there, are: 

* [Quiet Posters](https://bsky.app/profile/did:plc:vpkhqolt662uhesyj6nxm7ys/feed/infreq), which weights posts from those that don’t post frequently more highly so I’m sure to see their content.
* [News](https://bsky.app/profile/did:plc:kkf4naxqmweop7dv4l2iqqf5/feed/verified-news), a feed that includes publishers that have [self-verified](https://blueskyweb.xyz/blog/4-28-2023-domain-handle-tutorial). This helps with intentional news consumption.

Custom feeds can aid newsrooms in owning their relationships with their audience. Instead of posting links and hoping The Algorithm™ surfaces your content to readers, a newsroom could run a custom feed, say, on “NYC Elections 2024.” Now, all residents in NYC can subscribe to this custom feed, which your newsroom has full curation control over, and get accurate information from you directly. 

One implication of this is that newsrooms could then monetize their feeds directly: the feed could be gated to subscribers of the paper only, or they could scatter advertisements throughout the feed, etc.

### Third-party Labeling

On Bluesky, you can stack [multiple layers of moderation](https://blueskyweb.xyz/blog/4-13-2023-moderation) on top of each other, as easily as following a new user. One in-progress feature is third-party labeling, and I see fact-checking as an ideal use case for this!

For example, in October 2023, some viral posts that claimed to show the Israel-Hamas war were actually just [clips from a video game](https://www.axios.com/2023/10/12/arma3-israel-hamas-conflict-fake-news). A fact-checking organization could run a labeling system to mark posts as misinformation in real-time. I see this as a win-win: users are better informed, and the fact check has a much wider reach on the original post itself than as a standalone article. Users can subscribe to trusted organizations who run labeling systems, and receive any labels (fact checks or otherwise) that the organization creates.

After all, a single private company cannot perfectly understand cultural norms across the globe or industry-specific knowledge of niche fields to execute moderation for the entire world, no matter how hard it tries. Whether the labels are related to geopolitical conflict, scientific accuracy, or just different cultural norms, labeling systems can provide another layer of moderation on top of users’ existing preferences.

### Open and Free API

Bluesky is a public and open social network by design. We could never pull the rug out from under developers building on the API — the network simply wouldn’t function without it. One of our unofficial company mottos is “the company is a future adversary” (which goes kinda hard, ngl) — the open network that we’re building now must be able to continue to exist, even if Bluesky the company disappears or goes evil.

Technical jargon incoming: On Bluesky, you can “listen to the [firehose](https://atproto.blue/en/latest/firehose.html),” which is a data stream of public actions on the platform. Instead of subscribing to multiple different API endpoints for likes, reposts, follows, etc. separately, you can get all of this data in one place, which makes it an excellent tool for researchers, the OSINT community, etc., and incredibly fun for developers, social scientists, and more.

So what kind of elections-related projects could you build in the Bluesky developer ecosystem? Just spit-balling here:

* Bluesky posts embedded in articles and publicly viewable by even those who don’t have an account. Embed Bluesky posts [here](https://embed.bsky.app/)!
* Live feeds on a news site that surface journalists’ Bluesky posts in real-time for quick and effective commentary and analysis
* Replies to a news organization’s post sharing its article, embedded as comments on the article itself. This shares the conversation around the post, even to people without a Bluesky account. (Check out the comments section below.)
* Voter education bots that users can interact with to find out how and where to vote
* Analyses of election night sentiments, surfacing potential voter obstruction from users
* _+ lots more_ 

_Here are [some projects](https://atproto.com/community/projects) that developers have already built. Many of them are open-source, so you can find some inspiration in their codebases! Developer [documentation here](https://atproto.com/)._

## Join Bluesky!

Sign up for Bluesky at [bsky.app](https://bsky.app). If you work at a news organization and want to learn more, please reach out at emily@blueskyweb.xyz. If you’re a developer looking to get started building on Bluesky, here’s a link to [documentation](https://atproto.com/).

Finally, here’s a link to Bluesky’s official [press FAQ](https://blueskyweb.xyz/blog/press-faq).

_Thank you to [Dylan Freedman](https://dylanfreedman.com/), [Dana Cassidy](https://twitter.com/danacassidy_), and [Chris Painter](https://twitter.com/ChrisPainterYup) for thoughtful feedback on this post!_]]></content>
        </item>
    </channel>
  </rss>