F.2: WriteFreely bundle (federated long-form blog)#11
Open
kh0pper wants to merge 1 commit intof1-gotosocial-bundlefrom
Open
F.2: WriteFreely bundle (federated long-form blog)#11kh0pper wants to merge 1 commit intof1-gotosocial-bundlefrom
kh0pper wants to merge 1 commit intof1-gotosocial-bundlefrom
Conversation
Second federated app, stacked on F.1 (GoToSocial). WriteFreely is the
minimalist publish-oriented ActivityPub server — single-binary,
single-SQLite-file, no comment system, no likes, no moderation queue.
Ideal for long-form writing that federates to Mastodon / GoToSocial
followers. Complements GoToSocial (microblog) and Crow's own private
crow-blog (non-federated).
Bundle (bundles/writefreely/):
- manifest.json consent_required: true with EN/ES blast-radius text
(narrower than GTS because WF doesn't moderate remote
content). min_ram_mb=256, recommended=512. Lightest of
the federated bundles; Pi-eligible on any tier
- docker-compose.yml pinned writeas/writefreely:0.15, joins crow-
federation, no host port publish, SQLite default.
Entrypoint seeds config.ini on first boot + runs
--init-db / --gen-keys once so the container boots
clean from a fresh volume
- server/server.js 10 MCP tools:
wf_status, wf_list_collections,
wf_create_post, wf_update_post, wf_publish_post,
wf_unpublish_post, wf_delete_post,
wf_list_posts, wf_get_post, wf_export_posts
Content + publish verbs wrapped with the shared rate
limiter (same try/catch fallback for installed-mode
as the GTS bundle). No moderation queue — WF doesn't
moderate remote content; that's intentional per the
upstream design and the plan's "not every bundle
needs the full moderation taxonomy" note
- skills/writefreely.md triggers, draft→publish workflow, single-
user mode shortcut, Caddy expose recipe, explicit
"what WriteFreely doesn't do" section to avoid tool
confusion (no comments, no likes, no moderation)
- panel/ status (instance, auth, collections chip list) + recent
posts from the default collection. XSS-safe (text
Content / createElement only)
- scripts/ backup.sh (online sqlite-backup + keys+config tar with
warning that actor keys don't transfer across
domains), post-install.sh (next-step output)
Platform wiring:
- registry/add-ons.json writefreely entry, federated-social category
- skills/superpowers.md EN/ES trigger row
- CLAUDE.md Skills Reference entry
Verified:
- node --check on all changed files
- MCP server boots via createWritefreelyServer()
- docker compose config parses
- registry JSON validates
- Branch stacked correctly on f1-gotosocial-bundle
11 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Second federated app, stacked on F.1. WriteFreely is the minimalist publish-oriented ActivityPub server — single-binary, single-SQLite footprint, no comment system, no likes, no moderation queue. Ideal for long-form writing that federates to Mastodon / GoToSocial followers. Complements GoToSocial (microblog) and Crow's own private `crow-blog` (non-federated).
Stacked on #10 (F.1). Merge order: #9 → #10 → this.
What ships
Bundle (`bundles/writefreely/`)
Platform wiring
Design notes
Test plan