SkillAgentSearch skills...

Ktistec

ActivityPub (https://www.w3.org/TR/activitypub/) server for individual users and small groups.

Install / Use

/learn @toddsundsted/Ktistec
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Ktistec

Ktistec is an ActivityPub server. It is intended for small numbers of trusted users (everyone is an administrator). It is designed to have few runtime dependencies -- for example, it uses SQLite as its database, instead of PostgreSQL + Redis + etc. It is licensed under the AGPLv3.

Ktistec powers Epiktistes, my low-volume home in the Fediverse. If you want to talk to me, I'm @toddsundsted@epiktistes.com.

Features

Ktistec is intended for writing and scripting.

Text and images

Ktistec supports two editing modes: a rich text editor and a Markdown editor. Choose your preferred editor in your account settings.

The rich text editor provides text formatting options including bold, italic, strikethrough, code (inline and block), superscript/subscript, headers, blockquotes with nested indentation, and both bullet and numeric lists.

The rich text editor also supports adding and editing alt text for images to improve accessibility. Alt text describes images for screen readers and displays when images fail to load.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/tszn70.png" width=460>

The Markdown editor lets you write posts in Markdown syntax. Ktistec automatically converts Markdown to HTML when you publish. In addition to CommonMark syntax, Ktistec supports hashtags and mentions.

Ktistec supports inline placement of images, with ActivityPub image attachments used for compatibility with non-Ktistec servers. Images support focal point positioning to ensure the most important part of an image is always visible in thumbnails. Focal point positioning currently only works with federated attachments. There is no means to edit an image's focal point locally at this time.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/aecz36.png" width=460>

Draft posts

Meaningful writing is an iterative process so Ktistec supports draft posts. Draft posts aren't visible until you publish them. Draft posts, including draft replies, are automatically saved as you type.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/683hld.png" width=460>

With Ktistec, you can focus on creating without worrying about losing your work.

Threaded replies

Threaded replies make it easier to follow discussions with many posts. To keep the author's first posts together, the author's self-replies are prioritized in the thread view.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/eaxx1q.png" width=460>

Thread Analysis

Ktistec can analyze large conversation threads to help you navigate complex discussions. Thread analysis provides:

  • Key Participants: Identify the most active contributors
  • Timeline Histogram: Visualize conversation activity over time
  • Notable Branches: Discover important sub-conversations within threads

Access thread analysis from the thread view page for any conversation.

Translations

Integrate Ktistec with a translation service like DeepL or LibreTranslate (or host your own) and translate posts in other languages into your own language.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/733yvm.gif" width=460>

See Configuring Translation for details on how to set up the integration.

@-mention and #-hashtag autocomplete

Ktistec automatically converts @-mentions and #-hashtags into links, and to encourage hands-on-the-keyboard composition, Ktistec supports autocompletion.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/22aee8.gif" width=460>

Custom emoji

Ktistec supports viewing custom emoji in posts and on actor profiles. Custom emoji are federated from remote servers and automatically rendered when present.

Polls

Ktistec supports creating, viewing, and voting on polls. When composing a post, you can add a poll with multiple options and set an expiration time. Create polls to gather feedback from your followers. When a post includes a poll, you can see the available options and vote directly from your timeline. Poll results are updated in real-time as votes are federated across the network. Poll authors receive notifications when their polls expire.

Control over comment visibility

Ktistec promotes healthy dialog and gives you comprehensive control over content visibility.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/b70e69.png" width=460>

Control which replies to your posts are public and visible to anonymous users, and which are private.

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.

Send private messages directly to specific users with proper visibility controls.

Pretty URLs

Assign pretty (canonical) URLs to posts, both for SEO and as helpful mnemonics for users (and yourself).

Open Graph metadata

Ktistec includes Open Graph metadata support for actor and posts. When you share a link to your profile or a post on social media platforms, rich previews with images, titles, and descriptions are automatically generated. Configure a site image in the site settings to customize how your instance appears when shared.

Followers/following

The Fediverse is a distributed social network. You can follow other users on other servers from your timeline or by searching for them by name. You can also approve or deny follow requests and manually refresh an actor's profile directly from their profile page. Ktistec is also compatible with the "remote follow" protocol used by Mastodon and other servers.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/88hvqq.png" width=460>

Content discovery

In addition to following other users, you can follow threads, hashtags and even mentions. When posts arrive for content you follow, a notification is added to your notifications. Because running a single user instance can be lonely, Ktistec also proactively (and gently) fetches relevant content from other servers.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/d8kf0q.png" width=460>

To make navigation and discovery easier, post details pages now have labels with links to internal hashtag and mention index pages.

Content filtering

Content filters prevent undesirable content from appearing in your timeline and notifications. Filter terms match on the text of a post (ignoring any markup). Filters support wildcards.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/wzgeti.png" width=460>

Blocking

Ktistec gives you control over what you see. Blocking authors removes them and their posts from your timeline, and obscures their handle and display name. Blocking posts removes individual posts. The user interface makes it clear when content is unavailable because it has been deleted or blocked.

<img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/42fwx6.png" width=460> <img src="https://raw.githubusercontent.com/toddsundsted/ktistec/main/images/epdb39.png" width=460>

Bookmarks

Save posts for later with bookmarks. Bookmark any post to add it to your personal bookmarks collection for easy access.

Pinned posts

Pin important posts to the top of your profile. Pinned posts appear prominently at the top of your profile page and are also exposed via the Mastodon "featured posts" collection for compatibility with Mastodon and other Fediverse servers.

Quote posts

Ktistec supports consent-respecting quote posts (FEP-044f), allowing you to quote another user's post in your own post. You can also configure whether to automatically approve requests to quote your posts or to require manual approval.

RSS feeds

Ktistec provides RSS feeds for easy content syndication even without an account in the Fediverse. RSS feeds are available on the home page and t

View on GitHub
GitHub Stars428
CategoryDevelopment
Updated14h ago
Forks22

Languages

Crystal

Security Score

100/100

Audited on Apr 8, 2026

No findings