Start with titleless posts as the base, making them first-class citizens. Stitch the design around that. And then add support for titles. People latched on to the microblogging phenomenon of Twitter and Facebook because they made posting interfaces frictionless.
It is my aim to do as much as possible on the site without having to go elsewhere, that's why I've built all the various components: blog, journal, notes, reader. With notes also now handling reminders and interactive lists I'm in a pretty good place.
In that vein, if someone replies to a post using webmentions (including from micro.blog) it is captured as a comment; I can then reply in situ and this too is sent back as a webmention. That's the whole point of them afterall.
With pushing posts over to Bluesky and being able to pull in replies (albeit on demand via the API) I wondered about being able to reply locally. Challenge accepted.
To post a reply via the API you need to know the 'AT uri' and 'cid' (the hash of the post itself) for both:
the post you are replying to, and
the 'root' post of the thread
As I am already pulling the full thread information these are easily extracted. I've also increased the required thread depth to 3.
When logged in, a reply icon will show next to a Bluesky reply, clicking one of these replaces the normal comment form with a single textarea. As Bluesky is limited to 300 characters I have a little script in place to show the character count when it is more than 275. This turns red at 295 😆 and the textarea has its maxlength attribute set to 300.
Submitting this adds the post using the cids and uris pulled from the thread. Awesome! I think I'm ready to follow some more people.