Scott has been digging into a lot of different UX experiences, including lots of work with operating systems and evolving the desktop UX.

Scott recently dug into making a thread posting interface for Bluesky, called Splitter. It's beautiful designed (of course!) with thoughtful way of splitting. He also set himself the constraint of a single file and no build step for JS.

Scott Jenson's avatar

Okay, If you've been following along, I think I've got something up and running that is useful to me for splitting longer posts into a Bluesky thread. It may be useful for others because I did find some paid services out there and for such a simple utility that's not necessary.

Screenshot of my bluesky splitter app

He mentioned that app passwords were "more secure" and I had to jump in and say that they are convenient (you don't need to implement OAuth, which can be tricky especially for his approach of a locally run, no build step, simple HTML file with javascript included), but they do also give "god mode" access to the account.

OAuth has the benefit of being able to issue scoped access -- e.g. just posting bsky posts -- and doesn't need any configuration on the part of the user: it's the same flow as a more complex hosted app.

Additionally, atproto has a particular exception for its OAuth implementation, which is that 127.0.0.1, your localhost address, can be used as an OAuth endpoint, without needing https.

I took it as a fun constraint (single file HTML with inline JS and no build step), and forked Scott's repo to add OAuth support and make it an installable PWA. You do need to run a small Python web server to make this work, which he also mentions as an option.

I have my own Journal Editor on my personal site, and threads is something I hadn't implemented yet, although I do have previews and handle support and a bunch of other things. I also, a long time ago, wrote up a similar concept that was originally Twitter targeted Threadstorm Builder.1

So after adding OAuth and PWA support, I worked on a few other features:

  • Rich text support for handles / links / hashtags2

  • Handle support using 's Typeahead

  • Link previews

  • "pinning" a link preview card so you can delete the URL in the body text

  • Quote posts with preview

  • After posting, start a new thread, or continue posting in the existing thread3

A few selected screenshots of features as I was working on this.

OAuth Sign In

What you can see here is that the app is "on my device" because it detects the 127 IP address. And that it only has "Create Bluesky Posts" permission.4

PWA Install

Open in browser and then use the Chrome install process
Another modal that Chrome shows you on install

New Thread or Continue

Once you're done posting a thread, you can make a new one (it will clear the page) or, continue posting in the thread you just created.
If you continue, you can post and auto-split as many replies as you like.

The README has the full list of features, including all of Scott's original work on smart splitting.

The Atmosphere loves themes

Things escalated6, and where Scott had Bluesky prominently displayed everywhere, I wanted to highlight Atmosphere, plus a couple of the major microblog apps like Blacksky and Eurosky's Mu. So of course, a themes layer.

Scott's original interface is really nicely designed, and was a pleasure to work with. What I've done here isn't "better", it just inspired me to work on this. I hope this is at least interesting, feel free to fork it and make your own customized

I've got it hosted it at splitter.bmannconsulting.com on Github Pages7 so that you can also install it as a PWA on mobile.

Is this the future of apps and malleable software?

I mean, no, it's an evening of poking at a codebase8 from someone with knowledge of what's possible who has explored the space before, building on very nicely designed foundations that makes it look better than average.9

And it's Just Code. And Just Github. Not malleable in any sense of the word.

But...we can just do things.

I kept it with GH Pages because that's where Scott started.

Especially with things like themes, "forking" should be visual and iterative, rather than code focused.

I think Bluesky's Attie should lean into this10. It can host things from your PDS and make them forkable, and create a standard for the whole industry.

And, of course, lexicons and a rich text facet system lets us create new things in a way that are compatible. And with OAuth, some safety rails.

Nota Bene11