#ktistec 204 hashtags

Todd Sundsted

multi-user support in #ktistec is almost there. it turned into a yak-shaving endeavor, as these things often do鈥攊 ended up rewriting state management in the rules engine. i guess i thought class-level state was the right way to do it... 馃く

just a few more bugs to go...

Todd Sundsted

With the addition of the @ktistec account, Ktistec (the server) now supports multiple users.

I still have a few rough edges to fix, but there's a good chance official multi-user support will be included in the next release.

#ktistec #fediverse #activitypub #crystallang

Todd Sundsted
Release v2.4.14 of Ktistec

Release v2.4.14 of Ktistec is small in terms of features and fixes, but it improves in two areas where I thought Ktistec was weak: light/dark mode support and autosave.

I'm not hardcore dark mode, but I do prefer it in some cases. Ktistec selects light or dark mode based on the browser or system setting鈥攖here is currently no means to select the mode directly. A nice side effect of light/dark mode support is that custom theming support comes nearly for free.

Figure 1: Ktistec editor showing the Dracula theme

Ktistec was meant for writing. I post my fair share of one-line bits of wisdom, but I started building Ktistec because I wanted a space to write long form, and existing Fediverse platforms were more for social interaction. When writing long form, autosaving is an essential feature. Ktistec will now autosave draft posts and replies. If you navigate away before publishing, you can always find the incomplete draft in the Drafts collection which is accessible from your timeline page.

Added

  • Add design system page for previewing UI elements.
  • Support custom themes with automatic light/dark mode switching.
  • Add autosave functionality for new posts, draft posts, and replies.

Changed

  • Add external link indicators.

#ktistec #fediverse #activitypub #crystallang

Todd Sundsted

After much pain, I have light-mode, dark-mode, and themes support in #ktistec. To celebrate, I implemented the Dracula theme.

Figure: The New Dracula Theme

Theme support was brought to you by Mothership Connection, on repeat鈥攚hen CSS ails you, funk is the cure.

Todd Sundsted

i removed over half of the custom colors i was using in the #ktistec user-interface. it may look slightly less interesting but it will be far easier to maintain.

Todd Sundsted

centralization always leads to the same destination. that鈥檚 why I built #ktistec and why it only supports one user*

*okay, soon to support a small number of users, but the point still stands

Todd Sundsted
Release v2.4.13 of Ktistec

I was planning on adding support for custom themes in release v2.4.13 of Ktistec. That turned out to be difficult, so I implemented post visibility instead鈥攚hich then also turned out to be difficult. C'est la vie.

The editor now includes radio buttons for controlling post distribution and visibility. In particular, you can now send messages directly to mentioned users without sending them to all of your followers.

You can also mark posts as sensitive using the content warning checkbox in the editor. Sensitive posts are hidden behind a summary that readers can click to reveal the content.

figure: screenshot of the editor showing the visibility settings and the content warning checkbox

This release of Ktistec includes RSS feeds and RSS feed discovery. RSS feeds are currently available for the site home page and account pages.

Here's the full changelog:

Added

  • Support RSS feeds on the home page and account pages. (fixes #14)
  • Hide sensitive content, spoilers, etc. with content warnings.
  • Support direct messages with proper visibility controls.

Changed

  • Switch from calendar-based periods to duration-based periods in charts.

Fixed

  • Track and federate object updates.
  • Fix object visibility bugs in object replies and threads.

#ktistec #fediverse #activitypub #crystallang

Todd Sundsted
Todd Sundsted
figure: the form inputs for setting range and granularity on the metrics page

I'm going to make a backwards-incompatible change to the dropdown values for the range input on the metrics page, switching from calendar-based periods to duration-based periods. I thought beginning of week, beginning of month, and beginning of year would be sensible ranges, but I almost always adjust the range in the query string by hand to be last seven days, last thirty days, or last 365 days, so it makes sense to make those the options.

#ktistec

Todd Sundsted
Release v2.4.12 of Ktistec

The biggest changes in release v2.4.12 of Ktistec are the UI/UX enhancements. The mobile profile, in particular, felt like an afterthought鈥攚hich it was. The changes make the mobile experience much more pleasant and ergonomic. All of the credit for this work goes to @jayvii.

This release also now refuses to deserialize and use embedded ActivityPub objects from hosts other than the host of the embedding object. While I haven't encountered any problems with the previous implementation in practice, this fix closes a gap that could be exploited by a bad actor to spoof or change content.

Added

  • Add follow request status to the actor panel.
  • Compute and cache monthly active accounts.

Changed

  • (Internal) Only consider properties with changed values as "changed".
  • (Internal) Only deserialize embedded ActivityPub objects if hosts match.

Fixed

  • Remove line breaks in Turbo Stream output.

#ktistec #fediverse #activitypub #crystallang