Release v3.2.2 of Ktistec
The big feature in release v3.2.2 of Ktistec is pinned posts with support for the Mastodon Featured Posts collection. Federation works both ways—pin a post on Ktistec and it will show up as a pinned post on Mastodon and vice versa. When you refresh an actor profile, Ktistec also fetches and updates the actor's pinned posts. This is another small step in the direction of supporting all features that Mastodon-compatible client applications expect to access via the API. It's also useful in its own right.
The other major feature, which I posted a short video demonstrating here, is X-Ray Mode. X-Ray Mode is a developer and power-user tool for inspecting ActivityPub JSON-LD representations of actors, objects, and other content. Pressing Ctrl+Shift+X on any page displays the data behind the page—like an x-ray. You can:
- Cached Version: View the local JSON-LD representation stored in the Ktistec database
- Remote Version: Fetch and view the original JSON-LD representation from the source server
- Navigation: Click on any ActivityPub IRI to navigate to that object
- History: Use
Alt+LeftandAlt+Rightto navigate through your viewing history
This feature is useful for debugging federation issues, understanding ActivityPub structures, and verifying how content is stored and represented.
Here's the full changelog for the release:
Added
- Support for pinned posts and the Mastodon "featured posts" collection.
- X-Ray Mode for viewing and navigating JSON-LD resource (actor, object, etc.) representations.
- Back links on thread pages for easier navigation. (fixes #1)
- License page for LibreJS compliance. (fixes #127)
- Highlighting of recently fetched hashtagged posts.
Changed
- Improved presentation of audio and video media.
- Refactored theming/styling implementation.
The next release will focus on smaller features and bug fixes.
Enjoy!
Release v3.2.3 of Ktistec
Release v3.2.3 of Ktistec includes two big features:
- FEP-1b12 Group federation
Improved federation with Lemmy and other forum-type servers. Ktistec supports community and thread follow/unfollow, as well as up-vote/like (down-vote/dislike is supported but there is no visual affordance for that yet). - FEP-9098 Custom emojis
Support for viewing custom emoji in posts and on actor profiles. Ktistec does not yet support custom emoji creation and management.
The full changelog:
Added
- Support for viewing custom emoji in posts and on actor profiles.
- Actor type (
Person,Group, etc.) overlay badges on actor panels. - Colored fallback avatars for actors without icons.
- Support for robots.txt.
Fixed
- Federation with Lemmy and other servers that support FEP-1b12.
- Shared inbox support for local actors.
- Serialization of
Undoincludes the undone activity. - Serialization of
LikeandDislikedoes not.
- Notify only once for an object's first received activity.
Changed
- Accumulate metrics by hour for finer granularity.
- Clean up presentation of public followers/following pages.
The next release will include support for Mastodon polls (FEP-9967).
Release v3.2.5 of Ktistec
I rolled out a lot of features over the last several weeks and created a lot of bugs in the process. Release v3.2.5 of Ktistec is mostly about fixing those bugs. I did implement two requested features, however: support for editing posts in Markdown and support for Open Graph metadata. Here's the full list of new features:
Added
- Support for editing posts in Markdown. (fixes #25)
- Support for Open Graph metadata on actors and objects. (fixes #71)
- Support for uploading a site image.
- Internal table of contents page.
- Poll expiry notifications.
🎄 I'm working on support for poll creation and management now. It's also time for a performance improvement pass or two.
Release v3.2.3 of Ktistec
Release v3.2.3 of Ktistec includes two big features:
- FEP-1b12 Group federation
Improved federation with Lemmy and other forum-type servers. Ktistec supports community and thread follow/unfollow, as well as up-vote/like (down-vote/dislike is supported but there is no visual affordance for that yet). - FEP-9098 Custom emojis
Support for viewing custom emoji in posts and on actor profiles. Ktistec does not yet support custom emoji creation and management.
The full changelog:
Added
- Support for viewing custom emoji in posts and on actor profiles.
- Actor type (
Person,Group, etc.) overlay badges on actor panels. - Colored fallback avatars for actors without icons.
- Support for robots.txt.
Fixed
- Federation with Lemmy and other servers that support FEP-1b12.
- Shared inbox support for local actors.
- Serialization of
Undoincludes the undone activity. - Serialization of
LikeandDislikedoes not.
- Notify only once for an object's first received activity.
Changed
- Accumulate metrics by hour for finer granularity.
- Clean up presentation of public followers/following pages.
The next release will include support for Mastodon polls (FEP-9967).
Release v3.2.3 of Ktistec
Release v3.2.3 of Ktistec includes two big features:
- FEP-1b12 Group federation
Improved federation with Lemmy and other forum-type servers. Ktistec supports community and thread follow/unfollow, as well as up-vote/like (down-vote/dislike is supported but there is no visual affordance for that yet). - FEP-9098 Custom emojis
Support for viewing custom emoji in posts and on actor profiles. Ktistec does not yet support custom emoji creation and management.
The full changelog:
Added
- Support for viewing custom emoji in posts and on actor profiles.
- Actor type (
Person,Group, etc.) overlay badges on actor panels. - Colored fallback avatars for actors without icons.
- Support for robots.txt.
Fixed
- Federation with Lemmy and other servers that support FEP-1b12.
- Shared inbox support for local actors.
- Serialization of
Undoincludes the undone activity. - Serialization of
LikeandDislikedoes not.
- Notify only once for an object's first received activity.
Changed
- Accumulate metrics by hour for finer granularity.
- Clean up presentation of public followers/following pages.
The next release will include support for Mastodon polls (FEP-9967).
Release v3.2.2 of Ktistec
The big feature in release v3.2.2 of Ktistec is pinned posts with support for the Mastodon Featured Posts collection. Federation works both ways—pin a post on Ktistec and it will show up as a pinned post on Mastodon and vice versa. When you refresh an actor profile, Ktistec also fetches and updates the actor's pinned posts. This is another small step in the direction of supporting all features that Mastodon-compatible client applications expect to access via the API. It's also useful in its own right.
The other major feature, which I posted a short video demonstrating here, is X-Ray Mode. X-Ray Mode is a developer and power-user tool for inspecting ActivityPub JSON-LD representations of actors, objects, and other content. Pressing Ctrl+Shift+X on any page displays the data behind the page—like an x-ray. You can:
- Cached Version: View the local JSON-LD representation stored in the Ktistec database
- Remote Version: Fetch and view the original JSON-LD representation from the source server
- Navigation: Click on any ActivityPub IRI to navigate to that object
- History: Use
Alt+LeftandAlt+Rightto navigate through your viewing history
This feature is useful for debugging federation issues, understanding ActivityPub structures, and verifying how content is stored and represented.
Here's the full changelog for the release:
Added
- Support for pinned posts and the Mastodon "featured posts" collection.
- X-Ray Mode for viewing and navigating JSON-LD resource (actor, object, etc.) representations.
- Back links on thread pages for easier navigation. (fixes #1)
- License page for LibreJS compliance. (fixes #127)
- Highlighting of recently fetched hashtagged posts.
Changed
- Improved presentation of audio and video media.
- Refactored theming/styling implementation.
The next release will focus on smaller features and bug fixes.
Enjoy!
I've streamlined theme development in Ktistec. The theming system uses a hierarchy of CSS custom properties and fallbacks. Theme authors can customize a theme at multiple levels:
Base Colors Only
Define only base colors like --text-primary, --bg-primary, --bg-input, --semantic-primary, etc. Derived colors will auto-generate using color-mix formulas. For example:
:root { --semantic-primary: #ffa500; }From this one line, theme-appropriate colors like --bg-accent-code, --anchor-color, etc. auto-generate.
Base Colors Plus Derived Colors
Define base colors and derived colors. Derived colors use custom values when defined. Undefined derived colors auto-generate. For example:
:root {
--text-primary: #333;
--text-primary-2: #ff0000; /* red for this specific shade */
}Given this theme, derived shades like --text-primary-1, --text-primary-3, and --text-primary-4 auto-generate. --text-primary-2 is red.
The simplest possible interesting theme redefines the primary semantic color. The single line above (in Base Colors Only) would result in the following, with button color, link color, disabled, selected, and hover states all derived automatically:
screenshot of the setting page with the primary semantic color definedThese changes will be in the upcoming release. Existing themes will continue to work, as is.
Release v3.2.2 of Ktistec
The big feature in release v3.2.2 of Ktistec is pinned posts with support for the Mastodon Featured Posts collection. Federation works both ways—pin a post on Ktistec and it will show up as a pinned post on Mastodon and vice versa. When you refresh an actor profile, Ktistec also fetches and updates the actor's pinned posts. This is another small step in the direction of supporting all features that Mastodon-compatible client applications expect to access via the API. It's also useful in its own right.
The other major feature, which I posted a short video demonstrating here, is X-Ray Mode. X-Ray Mode is a developer and power-user tool for inspecting ActivityPub JSON-LD representations of actors, objects, and other content. Pressing Ctrl+Shift+X on any page displays the data behind the page—like an x-ray. You can:
- Cached Version: View the local JSON-LD representation stored in the Ktistec database
- Remote Version: Fetch and view the original JSON-LD representation from the source server
- Navigation: Click on any ActivityPub IRI to navigate to that object
- History: Use
Alt+LeftandAlt+Rightto navigate through your viewing history
This feature is useful for debugging federation issues, understanding ActivityPub structures, and verifying how content is stored and represented.
Here's the full changelog for the release:
Added
- Support for pinned posts and the Mastodon "featured posts" collection.
- X-Ray Mode for viewing and navigating JSON-LD resource (actor, object, etc.) representations.
- Back links on thread pages for easier navigation. (fixes #1)
- License page for LibreJS compliance. (fixes #127)
- Highlighting of recently fetched hashtagged posts.
Changed
- Improved presentation of audio and video media.
- Refactored theming/styling implementation.
The next release will focus on smaller features and bug fixes.
Enjoy!
Release v3.2.1 of Ktistec
Release v3.2.1 of Ktistec adds support for bookmarking posts. This was so immediately useful I don't know why it took me so long to get around to it!
Pinned/featured posts are in the works for the next release.
The full changelog:
Added
- Support for bookmarking posts.
Fixed
- Invalidate user's sessions after changing password.
- Ignore supplied languages that don't conform to expected format.
Changed
- Upgrade Kemal.
In other thoughts... I'd like to make followed hashtags more consumable. I follow ~10 hashtags and: 1) it's hard to tell what's new, 2) it feels like they arrive in large batches that are difficult to digest, and 3) the reading experience is meh.
I've streamlined theme development in Ktistec. The theming system uses a hierarchy of CSS custom properties and fallbacks. Theme authors can customize a theme at multiple levels:
Base Colors Only
Define only base colors like --text-primary, --bg-primary, --bg-input, --semantic-primary, etc. Derived colors will auto-generate using color-mix formulas. For example:
:root { --semantic-primary: #ffa500; }From this one line, theme-appropriate colors like --bg-accent-code, --anchor-color, etc. auto-generate.
Base Colors Plus Derived Colors
Define base colors and derived colors. Derived colors use custom values when defined. Undefined derived colors auto-generate. For example:
:root {
--text-primary: #333;
--text-primary-2: #ff0000; /* red for this specific shade */
}Given this theme, derived shades like --text-primary-1, --text-primary-3, and --text-primary-4 auto-generate. --text-primary-2 is red.
The simplest possible interesting theme redefines the primary semantic color. The single line above (in Base Colors Only) would result in the following, with button color, link color, disabled, selected, and hover states all derived automatically:
screenshot of the setting page with the primary semantic color definedThese changes will be in the upcoming release. Existing themes will continue to work, as is.
Release v3.2.1 of Ktistec
Release v3.2.1 of Ktistec adds support for bookmarking posts. This was so immediately useful I don't know why it took me so long to get around to it!
Pinned/featured posts are in the works for the next release.
The full changelog:
Added
- Support for bookmarking posts.
Fixed
- Invalidate user's sessions after changing password.
- Ignore supplied languages that don't conform to expected format.
Changed
- Upgrade Kemal.
In other thoughts... I'd like to make followed hashtags more consumable. I follow ~10 hashtags and: 1) it's hard to tell what's new, 2) it feels like they arrive in large batches that are difficult to digest, and 3) the reading experience is meh.
no #ktistec release this week. i have been working on bookmarked posts, pinned/featured posts, as well as some minor performance improvements, but i need to spend time fixing an issue with my libxml extensions that is preventing me from moving to the latest release of #crystallang. i've been putting it off but it's gotta get done, so...