About Yoyogi

Here’s my burning secret. #

I hate the timeline.

I love following tons of people, and getting windows into their lives, and sometimes being invited to step into the door.

But stuffing every one of those follows’ posts into a single vertical timeline is awful. There are folks I love keeping up with but for whom I have to be in the right headspace before I do.

For years, I just maintained a bunch of bookmarks in my browser and visited individuals’ social media to catch up with them on my timeline. It was great! But then (a) November 2022 and (b) Mastodon happened and I found a ton of fascinating people I wanted to keep up with (and interact with!) on the Fediverse. The old problem returned: the evil timeline.

Yoyogi is my attempt at a better reading experience.

It very consciously breaks from the timeline, and instead elevates the author and centers the thread.

You log in to your Fediverse† server. You pick one account you’re following. You see just their threads.

† Mastodon right now. Pleroma and Misskey are coming soon. Holler if you’re interested.

Try it! Star it or leave a bug report on GitHub!

Many thanks to @qm3jp@toot.cafe for invaluable advie and feedback during the design and testing phase!

How it works #

So right now Yoyogi runs all its code in your browser (like Pinafore). There is no “Yoyogi server”: rather your browser talks to your Fediverse server—and I never see any of your data. But you do have to get your Fediverse server to talk to your browser, so there’s still the concept of logging in:

  1. Type in the URL of your server, e.g., https://octodon.social and click “Submit”.
  2. Yoyogi sends you to that server, which after ascertaining you’re logged in, will ask you, “Hey, this Yoyogi thing wants to have permission to read what you can read (no writing/changing), that ok?”
  3. Assuming you trust me, you say “Authorize”.
  4. Mastodon sends you back to Yoyogi and you can get started!

Anticipated questions #

Why does it look so terrible? Yoyogi is just barely in the MVP (minimum viable product) stage. I don’t know if it’s SLC (simple, lovable, complete) yet.

Why is it so slow? Largely due to my not hiding network latency better—we could definitely be showing you toots and threads faster, and showing a spinner when we have nothing. But in some way, this usage pattern is not well-supported by the Mastodon server API at least, which expects you to read a few toots at a time in temporal order, rather than whole threads at a time. What Yoyogi does is, it takes a chunk of temporally-contiguous toots (one network call) and builds the thread around each (one network call per toot), dramatically increasing the work done. There are various technical solutions to this (caching, smarter database/API layer), which is partly why I haven’t even tried reaching for the low-hanging fruit (that’s a lie, mostly it’s because I’m lazy).

Also note that we’re not saving any toots locally in your browser yet. That would make it much faster when you keep up with an author regularly (not much to fetch from the server), but wouldn’t help much if you’re at all like me and sometimes days go by without checking in with some folks.

Why is it lacking <important feature>? See above.

What features are next? Great question.

  1. My mental image for Yoyogi is frankly Google Reader. I’d love it if it kept track of how many unread toots I have from each of my follows. Or at least how many days it’s been since I caught up.

Will it ever have a mode to write posts? No I don’t think so. Posting for me is a totally different mental activity than reading/catching up. It’s in fact two mental activities:

  1. quick conversations—the timeline is actually great for this, so I’d switch back to a “normal” Mastodon or Misskey or Pleroma or Pinafore app; and
  2. Zen-mode composing toots and threads. This I often do in a proper document writing app (my journaling app, a notes app, etc.).