Part of the fun I have with this is figuring out how to build a simple application in as little time as possible that's still useful from day 1 -- and after some thinking I figured it out.
So v0.1 will have a GUI only for the primary use case: reading things. It'll eventually be multi-user (schema is set up for it), but single-user upon release. And to do anything besides the primary use case, you'll use cURL or Postman or whatever to call the API.
Last night got the database schema worked out to handle everything that'll be in the MVP and versions after. Today have been adding the API layer and bringing over code I needed from Write.as.
It's been a long day, but I have enough energy for more coding if it's for pure fun -- a new project, a blank canvas. Let's see how far I can get on this tonight.
We're now sending out Update activities, but it seems Mastodon doesn't do anything with them, so titles and URLs won't update. Still, it'll work on any future platforms that do something with the event.
Now finishing testing on new Update activities being sent out. In the course of doing this I also figured out how to make scheduled posts work with federation, so that should be a really nice feature when it's ready.
Okay, latest changes deployed. Included:
- Support for federation on custom domains
- Fixed avatars (some were off-center before)
- Users on custom domains are now excluded from NodeInfo stats on Write.as
- "Published" times on Create activities in the API
Doubt it'll be an issue, but have a bit more work to do to prevent overlap between blogs on Write.as and on custom domains (especially around account discovery) before I can deploy these changes. Will finish up tomorrow.
✅ Blogs on custom domains are discoverable
✅ You can choose your handle for your custom domain blog (default: @email@example.com)
✅ Custom domain blogs have NodeInfo showing them each as a single-user "instance"
✅ AP endpoints should be future-proof for when you can eventually self-host your blog
✅ Posts federate from blogs on custom domains
Good morning. Goals for today:
- Finish UI for enabling federation
- Experiment with rejecting replies
- Build onboarding flow for new users who want federation
Something I'm looking forward to: non-technical users seeing this new setting on their blog and asking me what it means. I have no doubt it'll be confusing to the uninitiated, so it'll be nice to hear everyone's questions, and figure out how to explain federation in a way that makes sense to them.
Based on that, I can tweak the UI so more people understand what's going on right away. Enough of that, and more people will be able to join the fediverse without the whole learning curve.
Actually it'll be something like this in the "Publicity" section for everyone, with a textbox that appears when "Custom domain" is selected.
Okay, custom domains are discoverable and have all endpoints in place. Now just need to let everyone choose their handle. This will go in a new "Federation" section on the blog settings page -- a page that's starting to get a little long I think, so I'll have to redesign it a bit in the near future.