Shifting Perspectives

April 2022 Retrospective

In April I built a new product, published “Rescuing the Art of Disagreement”, and made the usual round of Pegasus improvements.

Let’s get into it.

Last Month’s Profit

Project Profit Monthly Change
SaaS Pegasus $5689.66 -8.08%
Place Card Me $1809.77 10.20%
Chat Stats $206.92 119.89%
Total $7706.35 -2.77%

Another down month, though just by a bit. I’m still outpacing last year and feeling fine about these numbers.

Last Month’s Goals

# Goal Grade
1 Finish the main sprint of my contracting gig A
2 Ship a major Pegasus release A
3 Publish my essay about disagreements A

Good grades!

I’ve bundled the discussion of these into the project-specific updates below.


April 2022 Time

Time breakdown for April 2022

This is a lot of Griffin time, though it’s not totally accurate. My latest project has elements of both Griffin and Pegasus but was logged entirely to Griffin.

Project updates

As a quick reminder, I have two main efforts going on right now:

  1. SaaS Pegasus—a boilerplate for launching SaaS applications that provides most of my income.
  2. Griffin—a codename for my current passion project: improving online discourse and sensemaking.

Before I can get into those updates, I have to talk about…


Nowhere in my goals for the month was “build a new product”. But one of the luxuries of working for yourself is the option to be impulsive. This month I took it.

Bogged down in uncertainty about what to do with both Pegasus and Griffin I decided on a whim to try building a new product based off a single pair of tweets:

The tweets that caused me to start a new product. 2,900 likes == product market fit, right? Right?!?

It wasn’t exactly a whim.

I’d actually already written down the exact same product idea in a Griffin-focused Google doc called “Fighting Filter Bubbles”:

Filter Bubbles

My own description of a product to see someone else’s social media feed—written prior to Duncan’s tweet.

I liked the idea for a few reasons:

  1. It was timely. With Elon Musk’s takeover, the world was talking about Twitter a lot last month, and I also wanted to capitalize on the recency of Duncan’s tweet.
  2. It was aligned with what I want to achieve with Griffin. Like I said, it was already on my “potential products” list. And the idea of inhabiting someone else’s social feed has long been interesting to me.
  3. It was aligned with Pegasus. As I’ve said many times, every opportunity to build a new product is an opportunity to improve Pegasus.

So it seemed like the stars had aligned and I jumped on the opportunity. For kicks, I documented the whole process in a Twitter thread, which I hoped might serve as a form of marketing (both for Pegasus and the new product—now called BirdShift).

My thread documenting building BirdShift in real time.

I ended up spending four half-days building the MVP. It was a lot of fun, and I got most of what I was hoping to get out of it, including launching a public proof-of-concept at the end of day four.1

With that context out of the way I can now talk about…


Building BirdShift did indeed provide new features and improvements for Pegasus itself.

I exercised several parts of Pegasus that I’d only ever used in dev/testing to date, including the Creative Tim theme, Docker-based development, and Heroku deployment. And in so doing, I was able to better document and improve all of them.

I also was able to add a handful of new features, including a “login with Twitter” option (duh), and the ability for users to manage connected accounts inside Pegasus apps.

All of this amounted to a bit of a hodge-podge April release, but I’m happy with the changes and think they’ll help my customers.

The other Pegasus work I did this month was a minor revision on the landing page. Driven by a sales rut—I decided to prioritize adding a bit more “social proof” to the site.

I added a list of customers:

Pegasus Customers

A list of Pegasus customers I added to the homepage. Each of these logos links to the company/app site.

And expanded the list of testimonials:

Pegasus Testimonials

I don’t know what impact these changes had, but I have to imagine that having more social proof that Pegasus is useful—and has been used by legitimate people and companies—definitely can’t hurt. And I did have a nice run of sales ending the slump shortly after these changes rolled out!

This month I’ll be doing my first Pegasus Accelerator Package of the year. Building an MVP for someone else is another good way to exercise and improve Pegasus, and since I’m still a bit unsure what the next big things are for the project, I’m hoping it’ll be help inform a shorter-term roadmap.


There were two major Griffin efforts this month.

The first was my essay: Rescuing the Art of Disagreement.

The Agreement Overlap

The core concept of my latest essay: the idea that we could disagree while still considering one another’s positions reasonable.

Like many past writing attempts, this became a complete monkey on my back. I was simultaneously overwhelmed by a feeling that the essay wasn’t nearly good enough, and by the feeling that I was spending way too much time on it.

Ultimately, the monthly goal/retro process proved useful, as on the last working day of the month, I just mentally decided “fuck it, I’m publishing today” and stopped fussing with the idea of making it perfect.

Overall, I’d say the essay has been a bit of a mixed bag. It hasn’t gotten much readership or reach outside my existing audience, but I have had a small number of people reach out, saying that they really liked it and will try applying the ideas from it in future disagreements.

Ultimately, I think I have to accept that shifting the perspective of a small number of people I already know is a valuable output of a piece of writing. If I “need” everything I write to go viral I’ll get depressed about ~everything I do, and ultimately quit.

Moving on—the second big Griffin effort on the month was, of course, BirdShift. And I’m simultaneously optimistic and pessimistic about the future of it.

On the one hand, I really believe in the concept. For the last few weeks I’ve inhabited the Twitter feeds of myself, Elon Musk, and Tim Urban. And it works! I definitely got exposure to perspectives and ideas I wouldn’t have otherwise.

It was a fun time to be experimenting with Twitter perspectives because everyone on Twitter was talking about Elon. So it was easy to see lots of different takes on the same subject. Of course, Elon’s feed was unilaterally pro-Elon, but mine and Tim’s were more of a mixed bag.

Apart from broadening my own perspective, it was also just fun inhabiting someone else’s brain. Elon’s feed is largely about Elon, but it’s also about his companies, engineering, and—to a minor extent—crypto memes. Tim’s feed is more political—across a broad set of perspectives—but it’s also filled with interesting factoids and a healthy serving of Boston sports content.

Anyway, I genuinely like using the product. My next two test feeds will try on more extreme ends of the political spectrum (e.g. maybe Taylor Lorenz and Glen Greenwald). I’m also interested doing opposite ends of the Covid spectrum (e.g. Eric Topol and Aaron Kheriaty). Hopefully these experiments will be even more revealing than the relatively centrist feed of someone like Tim Urban.

So if I’m loving using BirdShift, why am I pessimistic?

The answer is mostly in the technical details. The first and most concerning issue, is that I think the product is in violation of Twitter’s terms (something I only learned when one of my test accounts was temporarily suspended). In particular, according to this page, Twitter’s rules prohibit “duplicating another account’s followers, particularly using automation;”.


Apparently bulk following someone else’s twitter feed can get your account suspended.

Why is this against their terms? I have no idea. But it doesn’t bode well for the project if anyone who uses it consistently might get their account suspended.

The second problem is the API limits. Twitter is quite restrictive about making large amounts of changes to an account over a short period of time. Follow/unfollows, managing lists, etc. are all subject to serious rate-limiting. Which makes the product experience… poor. Instead of clicking a button and experiencing someone else’s feed, it’s more like clicking a button, waiting 36 hours, and then experiencing their feed—as long as you didn’t manage to get yourself suspended.

So I don’t think it’s going to work as a user-facing product—or at least not without more thought. It might end up being something I build and use myself, but can’t share with others. Maybe I could create the feeds and you could subscribe to them? Or maybe I just write mini-tweetstorms or blog posts about the experience of inhabiting each person’s feed?2

I don’t really know.

It’s frustrating to be stifled by what feel like arbitrary rules, but I guess that’s what comes with building on top of someone else’s platform. They get to make the rules and you have to live with them. Sigh.

Either way, I’ll keep using it myself, and try to make progress on…something.

This Month’s Goals

  • Execute a successful Pegasus accelerator package
  • Ship a major Pegasus release
  • Take some next steps on moving BirdShift forwards.

If you read the above hopefully these don’t require much explanation. We’ll see what the future of BirdShift holds!

No recommendations this month. This is already way too long!

See you in June.


  1. You can find a link at the end of the Twitter thread. I’m not linking it here, because it’s half-baked, buggy, and may get your account suspended. If you want to try it you should read the thread and understand the caveats. 

  2. If you have any ideas or would be interested in trying out anything in this space, let me know.