Micro Matt

Micro thoughts and mini posts.

Had a great time hanging out in the Remark.as chat room today! Thanks to @tmo@write.as for making the suggestion and getting us all together.

This was also a chance to test out the custom-built chat room, and we definitely ran into a few problems with connectivity. We all managed to work around it, but I’d like to get us something much more stable.

Also, this little chat hour had us wondering why these sort of chat / real-time interactions aren’t more available elsewhere on the web. So I’m working on getting an IRC server up and running for now. That should make it easy for people to access on desktop and mobile, if they’re comfortable with IRC, and I’ll add a web interface on Remark.as to make it easy for everyone else.

I’m choosing IRC because of its relative simplicity / fit for our use case, and the wide range of clients available. I think the only major downside is if people want to connect from multiple devices. If anyone has any thoughts, please feel free to share!

Thoughts? Discuss...

I can see some functionality of Read.as merging with Remark.as in time. Whereas I think we need a line between creating something and sharing / talking about it (e.g. Write.as vs. Remark.as), I think the line between reading something and talking about it should be a little thinner. So things like following blogs and bookmarking posts will be at home on Remark.as (playing off the blog bookmarking feature just added).

Thoughts? Discuss...

At my weekly writing group last night: a mental block.

I’ve been working on some poetry that I’d like to read publicly. It all revolves around the usual themes I write about, just presented more as a feeling than something literal. But I’ve had a lot of trouble getting out of writing literally. I think it’s my habits — all the written communication I do on a daily basis — plus the fact that I rarely leave this mindset. I don’t read much fiction and creative writing these days, and I think I’m seeing how much I need to again.

Thoughts? Discuss...

Back to work today. As mentioned on the Support Status blog, I was out for most of last week — a friend came to visit me in Brooklyn, and then I went back to Florida to close on my house. I stayed for a long weekend and spent most of the time with friends there.

This past month has been very busy and a little stressful as I worked on getting the house renovated and then sold from here. So I’m glad it sold quickly, and to be done with the process.

Now I’m getting caught up on support requests from the last week. I’m also looking to get more people involved with WriteFreely, as several people have recently mentioned they were concerned it’s no longer maintained — it is, it’s just moving at a one-person pace 🙂

Thoughts? Discuss...

Some brief thoughts around Twitter accepting Elon Musk’s bid to buy it and take it private.

Whether worries about what happens next are founded or not, it’s good to see Mastodon and the #fediverse getting some attention. We saw our little Mastodon-powered community grow a bit yesterday (as did many others), as this tweet got spread around:

Now, on those worries: while this could mean a billionaire owning Twitter, intelligent people have rightly pointed out that Twitter is already owned by the controlling presence of a corporate board. Maybe neither situation is the best thing for a “public square” (that’s more of a shopping mall).

You might say we’ve often just ignored this all along. Which, again, is why I’m glad that this is at least sparking a conversation around the question of Who really owns the platform?

It’s also got me thinking again about user ownership of Write.as. I think that’s the real, long-term answer to questions that come up when your social media platform goes up for sale. Mastodon / the fediverse provide a glimpse of great ideas outside the mainstream, like non-commercial, community hosting and self-governance. But outside of a particular implementation, on a Twitter-level scale, I think we need to prove a model for ownership and aligned financial incentives between platforms and the people on them.

Thoughts? Discuss...

Considering bringing back the Casual plan as an affordable option for less frequent writers, and pricing it on a sliding scale. This would basically replace the Free plan as the entry point for getting started with Write.as, and give more people access to paid-only areas like Read Write.as and Remark.as.

I’ve written about how our long-term subscription can cover those times when our users aren’t writing and publishing as much. But the downside of this 5-year subscription, of course, is the up-front cost you have to pay for it. So this time, I’d approach this subscription tier with a mind toward two kinds of users: casual, infrequent writers, and those who are excluded by our Pro pricing.

Ultimately, as always, I want to make our platform as widely accessible as possible, while making sure we can always sustain ourselves.

Thoughts? Discuss...

Made some changes to my web mixtape static site generator tonight. Not sure why it was on my mind (though now I’m listening to old mixtapes I’ve made with it). You can see an updated demo here.

Neat things

  • Now the mixtape will respond to your computer’s / smartphone’s audio controls, and show what track is playing! (In nerd speak, I added support for the Media Session API.)
  • Updated the default theme to look much better, and include next / previous buttons and plenty of room for customization.
  • Fixed “previous track” logic

Nerd things

  • Now using Go modules
  • Switched to Go’s embed package, instead of the inline tool
  • Developers need Go 1.16 at a minimum, now

Thoughts? Discuss...

Realizing something about building products for me. When I need to enable something new, I think about it in terms of verbs, not nouns.

For example, while taking another pass on the design of a new “categories” system for Write.as, I started asking myself the fundamental questions: why even add this at all? Does it add anything, besides satisfying a requirement for someone? What’s the galaxy-brain view on a feature like this?

At first thought, categories seem superfluous to me, personally. I don’t need or really want them — I hear “categories” and think “management.” Blech, no thank you. But some larger customers need it, and it will help things behind the scenes.

Still the feature didn’t make sense until I figured out the verb of it all. So on Write.as, categories won’t be about categorizing — putting things in constrained little boxes, for yourself and your readers, giving you new work to keep you busy and distracted from doing the real work (writing).

Instead, categories are the next, more orderly, stage of tagging.

For most writers, you might start tagging your posts only when you want to keep things organized. But it’s optional! You don’t have to organize anything if you don’t want to, and I love that.

But if you do, I feel like tagging is an organic growth from the content. The type of writers I want to build for don’t start a blog with a perfect, unchanging list of topics to write about. They write to explore, and then common themes arise from the writing itself.

So, categories are more like these organic themes or topics that arise from your writing. They solidify and bring more order to the previous stage, tagging — or they can be explicitly created if you feel the need. But first and foremost, categories aren’t things, but merely processes that are born out of your work.

#categories #design #product #writeas

Thoughts? Discuss...

Banged my head against the wall for a bit on how to have dynamic blog routes on Write.as, so we can support custom redirects (as might be needed when moving from another platform to ours).

I dug into Go’s http library for a bit, then came across this Stack Overflow answer that pointed me in the right direction. Then it was a matter of how I’d make this multi-user and entirely dynamic, loading rules from the database for any blog that had redirect rules. For a minute, I was just going to hard-code things for the single blog that needs this feature to avoid more database overhead, but even that got messy, and it was better to do it right.

My solution was this: when the app starts up (and initializes all routes), query the database for all blogs with custom redirect rules. Then for each one, add a special handler that runs through all the custom rules for that blog. This handler only applies to the blog’s canonical URL (e.g. a custom domain) to keep things simple.

If a from path (the old URL we’re redirecting from) matches the address the visitor navigated to, move on to handling the request. There, we again match the from path to the current URL, and expand it into the desired to path (the destination) with any regex variables replaced — and finally redirect the user. This maintains support for regular expressions in these redirect rules, and most importantly, doesn’t add new overhead for other users or valid URLs. Phew, that was a challenge. But I’m pleased with the results!

#dev

Thoughts? Discuss...

Back to some coding today / tonight. Just finished the option to put posts on a sub-path, which mostly just lays the groundwork for things like static home pages (it won’t be widely available yet). Next I’m working on custom redirect support, which again won’t be widely available. Then it’ll be more work on our new category system.

Tonight I spent some time thinking about an easier post management UI, and ended up designing something that combines that with an early “drafts” system — that is, completely private posts tied to a blog, so you can preview them with your blog’s theme and share them with any team members before publishing. Basically, this will be an early, built-in version of Draft.as (without any version control).

It’s also very interesting to me, because it’ll live alongside our continued support for Anonymous posts, which are always useful as publicly-shareable “drafts.” In other words, each kind of post (anonymous, draft, blog post) will have a distinct use case, so we’re not adding pointless cruft or shoehorning any functionality into where it doesn’t fit. Excited to develop this, when time allows for it.

#dev

Thoughts? Discuss...

Enter your email to subscribe to updates.