Home

Introducing New Fediverse Software, Goofed v0.0.1, Minimum Viable Shitpost Edition

$$10170
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 16:13

I’m building a new activitypub/threadiverse software focused on the needs of self hosters who want a single user instance.

I’ve been posting with it semi-regularly for the last month, and I think it’s ready for an open demo.

One of my objectives is to have the lightest resource usage for memory and CPU constrained hardware, as well as the fastest loading web interface for older phones and limited data plans. I ran out of data on my phone last week and having a 41kb front page came in very handy.

You can try the web UI at https://scrapetacular.ydns.eu/latest You can also POST AS A GUEST TO THE FEDIVERSE without signing up. I’m not sure you can do this anywhere else, I’m manually approving posts on the backend because .. well you know. If it asks for a user and pass, use guest and guest, your post will appear with a username like guest4269.

Ideally, open this post https://scrapetacular.ydns.eu/post/10127 and reply to it.

My other plan for mobile is to target the Sync for Lemmy app, as it’s dead, meaning it’s no longer a moving target.

I’ve made a few technical choices aimed at keeping things fast

These include:

No ORMs

  • They are convenient but make performance tuning difficult when things get complex as you don’t write the queries directly

No Javascript

  • I may have to go back on this if I keep the guest posting function, it might need a captcha or anubis.

No nested comments in the web UI

  • Nested comments are super slow, you are essentially querying the database for the OP, then querying for the N immediate children, then doing N queries for all of their children, then keep going recursively until you reach your depth limit, or all comments are found, you then need to render this structure with html/css

No front page images

  • This is more of a personal preference that happened to make things load faster, the front page displays the text of the OP and last few comments IN FULL, giving a good preview of the conversation, and allocating more space to people who write rather than post memes. Inline images in posts are also replaced with links.

No upvotes/downvotes

  • DID YOU KNOW that most threadiverse traffic is upvotes, downvotes adn emojis? You get an instant speedup by simply not processing them. Also, since this is a single user instance, all my comments are by definition awesome

ROADMAP

  • Massive refactor
  • Make the project public
  • unit tests (this is basically my only requirement for v1)
  • sync for lemmy API
  • admin UI
  • “AI” to “My Butt” wordfilter (mandatory and hardcoded)
  • default subscription to /c/fuck_AI
  • Solve channel discoverablity once and for all
  • SUPERBLOCK (i.e. block everyone who liked this comment)
  • dockerfile? I don’t use docker tbh
  • Read Mastodon posts? Do they even have good content?

Tech Stack

  • Go
  • SQLite

I’m using the pure Go sqlite library, Bluemonday for html sanitisation, Blackfriday for Markdown and Migrate for auto db migrations.

End

Thanks to Snoopy and the Cool Froges at jlai.lu for allowing me to test on their channel.

Is this project of interest to you? Have I missed anything obvious? Is there anything else you would like to know?

https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e
Reply
$$10174
https://piefed.ca/u/linuxguy posted on Mar 10, 2026 16:25
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

Wow, bold decisions for what it’ll support and not. I like that it’s laser focused on a specific use case. What do you think about the impact to instances’ federation queue when a bunch of single user instances follow a community? 10x the traffic and queue for 10 single user instances than one instance with 10 users.

I ask this as someone that ran a full single user lemmy instance right up until recently and switch to a public piefed due to the traffic multiplication and other concerns.

https://piefed.ca/comment/3798453
Reply
$$10175
https://reddthat.com/u/Shortstack posted on Mar 10, 2026 16:25
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

Oh yeah super interested in this

I briefly entertained doing a self hosted instance but that turned out to be a tall order for a newbie

https://reddthat.com/comment/25288400
Reply
$$10178
https://dubvee.org/u/ptz posted on Mar 10, 2026 16:32
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

You can also POST AS A GUEST TO THE FEDIVERSE without signing up.

Oh, dear lord. As if we don’t have enough spam as it is.

https://dubvee.org/comment/5480486
Reply
$$10182
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 16:45
In reply to: https://piefed.ca/comment/3798453

I don’t know if it will scale tbh, but also I don’t expect many people to actually self host, and I’m sort of hoping the fediverse stays a bit … ghettoized. The current threadiverse is like 50000 people and works fine, I’m hoping there will just be more loose communities of 50000 that don’t really federate with the main one.

https://scrapetacular.ydns.eu/activities/cfec1a67-215e-4891-a9cb-d736581e39de
Reply
$$10185
https://discuss.tchncs.de/u/schnurrito posted on Mar 10, 2026 16:48
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

Is the source code already available?

https://discuss.tchncs.de/comment/24436614
Reply
$$10184
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 16:49
In reply to: https://reddthat.com/comment/25288400

Maybe, maybe not. I scoped it to the smallest useful thing I could build and get feedback, which turned out to be about 5k LOC, do you use Go at all?

https://scrapetacular.ydns.eu/activities/17934a0e-37c4-4184-81bb-4426b953da9d
Reply
$$10188
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 16:53
In reply to: https://dubvee.org/comment/5480486

I like interactive demos, especially ones that worry people :) But I don’t want my instance to get banned so I have to manually approve messages.

Also, to reply to this thread as a guest use this link https://scrapetacular.ydns.eu/post/10170

https://scrapetacular.ydns.eu/activities/a4752f06-c8aa-45cd-bd72-f5653b86d90f
Reply
$$10189
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 16:56
In reply to: https://discuss.tchncs.de/comment/24436614

No not yet, probably this weekend, this is just a demo post to see if my VPS catches fire or something. I haven’t picked a licence yet either

https://scrapetacular.ydns.eu/activities/3d6c0bee-5dad-4f73-ad90-fe8756c33d24
Reply
$$10194
https://mbin.zerojay.com/u/jay posted on Mar 10, 2026 17:08
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

Is it vibes coded?

https://mbin.zerojay.com/m/selfhosted@lemmy.world/t/11980/-/comment/87484
Reply
$$10201
https://fedia.io/u/Triumph posted on Mar 10, 2026 17:22
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

Thoughts on increasing from single user to, say, ten? So that I could selfhost something and have my less technical friends/family on it?

https://fedia.io/m/selfhosted@lemmy.world/t/3574042/-/comment/14335522
Reply
$$10205
https://infosec.pub/u/normis posted on Mar 10, 2026 17:41
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

For anyone that’s interested in something like that, sounds exactly like Snac2 - works very nicely

https://infosec.pub/comment/20784069
Reply
$$10211
https://feddit.online/u/TheOneCurly posted on Mar 10, 2026 17:54
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

This is exactly the kind of insanity we need around here. I think some of these choices are bonkers and that’s great.

https://feddit.online/comment/7478154
Reply
$$10221
https://piefed.ca/u/linuxguy posted on Mar 10, 2026 18:33
In reply to: https://scrapetacular.ydns.eu/activities/cfec1a67-215e-4891-a9cb-d736581e39de

Let us both hope for those kind of scaling problems due to popularity 🤞

https://piefed.ca/comment/3798821
Reply
$$10228
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 18:56
In reply to: https://fedia.io/m/selfhosted@lemmy.world/t/3574042/-/comment/14335522

I don’t even HAVE a user table :D

(I might do something screwy with oauth2 to allow authenticated guestposting)

https://scrapetacular.ydns.eu/activities/7b4f037b-c950-4990-b20d-2881e91707da
Reply
$$10230
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 19:02
In reply to: https://infosec.pub/comment/20784069

Yes, I like snac, it’s the first codebase where everything clicked for me. It’s also a bit like a Gotosocial for the threadiverse instead of the twittercloneiverse, because the stack makes a lot of choices for you.

https://scrapetacular.ydns.eu/activities/781d6298-72b5-438c-a24e-2366741b0ded
Reply
$$10231
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 19:04
In reply to: https://feddit.online/comment/7478154

I’m glad someone gets The Vision, I don’t want to just build Lemmy but in a better language :D

There’s more where that came from

https://scrapetacular.ydns.eu/activities/767960f3-4d7a-4721-8def-9c022680323d
Reply
$$10235
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 19:15
In reply to: https://feddit.online/comment/7478154

You may notice that some threads have a word count for certain words, I’m working on a feature that I’m calling the Godwin Factor, you pass in a list of words to look for that will tell you if the thread is already a dumpsterfire before you go in.

Say you’re on /c/baking and you see an innocuous thread about apple pie, then you see that it has 274 comments, and 8 people have been called nazis, just look at the picture and move on with your day.

https://scrapetacular.ydns.eu/activities/a6e2ca70-0e25-4ade-9868-a0894816b28f
Reply
$$10239
https://piefed.social/u/Hippy posted on Mar 10, 2026 19:27
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

I think projects like these will eventually cause activity pub to evolve into something that handles scaling better.

https://piefed.social/comment/10474191
Reply
$$10251
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 20:06
In reply to: https://dubvee.org/comment/5480486

🚨🚨🚨 WE HAVE OUR FIRST GUEST SHITPOSTER 🚨🚨🚨 WE HAVE OUR FIRST GUEST SHITPOSTER

https://scrapetacular.ydns.eu/post/10127#10243

https://scrapetacular.ydns.eu/activities/b911446e-f2ab-4d0e-a6cf-4089c0d73a37
Reply
$$10253
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 20:15
In reply to: https://piefed.social/comment/10474191

Hopefully. Or it might actually evolve into something worse

THIS IS THE FUTURE FURRIES WANT https://evilmaid.net/blog/trusting-trust-fediverse/interactionPolicy-flow.png

https://scrapetacular.ydns.eu/activities/d8349331-d317-4cd2-b581-9c2edb03b8d6
Reply
$$10276
https://piefed.social/u/rimu posted on Mar 10, 2026 21:03
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

That sounds pretty fun, I like your extremist take on things.

If you want to federate votes in an efficient way, consider doing them in batches, like this - https://codeberg.org/rimu/pyfedi/src/branch/main/docs/fep-4248.md. Sending batches means building up a queue, etc which is a pain in the ass so you might want to just receive batches and send individually.

You can do nested comments more efficiently by doing a single query for all the comments on a post and then constructing the comment tree in Go, rather than using multiple SQL queries. It’s a bit tricky to code but you can copy PieFed’s code - https://codeberg.org/rimu/pyfedi/src/commit/68d6799be5c321f9abf84d136cafef6de6e3aafb/app/post/util.py#L141

https://piefed.social/comment/10475445
Reply
$$10305
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 22:11
In reply to: https://piefed.social/comment/10475445

Whoa senpai noticed me. There actually is a recursive query format in the latest sqlite for this exact situation, Postgres may have something similar, I just thought a list is fine for the web UI. I’ll have to benchmaxx and pick a strategy for the API.

I actually read that FEP. In my code that is too shameful to release yet, I look for an Object, then look for its Type, then figure out how to deserialize the rest of the object, but this object doesn’t have one. Would it be possible to do something like this:

{
  "object": {
    "type": "LikeCollection",
    "likes": [like1, like2, ..etc]
  }
}

Or is that weird. Spare a thought for those in less dynamic languages :D

https://scrapetacular.ydns.eu/activities/f13efbc8-a463-4347-a021-1b73a1d38632
Reply
$$10306
https://piefed.social/u/rimu posted on Mar 10, 2026 22:20
In reply to: https://scrapetacular.ydns.eu/activities/f13efbc8-a463-4347-a021-1b73a1d38632

You’re right, to be more similar to the ActivityPub style of doing things the object should be a “type” of “Collection”, not just suddenly be an array instead of an object.

https://piefed.social/comment/10476499
Reply
$$10309
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 22:39
In reply to: https://piefed.social/comment/10476499

Shit, that went well, I was expecting pushback. Should I make an issue for discussion, or is there one already. I don’t know if the object also needs an ID

https://scrapetacular.ydns.eu/activities/0411b488-95f4-4e1e-80a4-d70b0fb88e07
Reply
$$10313
https://piefed.social/u/rimu posted on Mar 10, 2026 22:43
In reply to: https://scrapetacular.ydns.eu/activities/0411b488-95f4-4e1e-80a4-d70b0fb88e07

There is a discussion but it’s an email chain between myself, Lemmy, Mbin, NodeBB so not really out in the open.

I’m thinking of using the normal OrderedCollection structure that AP has - https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection. An object of type ‘OrderedCollection’ with an array of ‘items’.

https://piefed.social/comment/10476793
Reply
$$10315
https://lemmy.decronym.xyz/u/Decronym posted on Mar 10, 2026 22:50
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

Fewer Letters More Letters
AP WiFi Access Point
DNS Domain Name Service/System
VPS Virtual Private Server (opposed to shared hosting)

[Thread #154 for this comm, first seen 10th Mar 2026, 22:50] [FAQ] [Full list] [Contact] [Source code]

https://lemmy.decronym.xyz/comment/17076
Reply
$$10327
https://lemmy.world/u/nix98 posted on Mar 10, 2026 23:19
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

I love this!

https://lemmy.world/comment/22590732
Reply
$$10328
https://lemmy.world/u/nix98 posted on Mar 10, 2026 23:21
In reply to: https://scrapetacular.ydns.eu/activities/50114ac8-fd26-47cd-8fe0-ad97f0027c5e

Nested comments are super slow

I agree with this. I wrote a lemmy reader for emacs gnus and fetching the comments really leaves a lot to be desired! In fact, I’d say a lot of the Lemmy APIs leave a lot to be desired (no pagination with a cursor!)

https://lemmy.world/comment/22590768
Reply
$$10329
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 23:22
In reply to: https://piefed.social/comment/10476793

I think so? I guess a Like has to happen before an Unlike, would the collection have multiple possible activity types in it?

While I have your ear, I don’t know how yet but I’d like it to be easier for devs to collaborate over AP for anything not involving security.

https://scrapetacular.ydns.eu/activities/434186e8-518b-4444-899a-d3ffad072ba7
Reply
$$10332
https://scrapetacular.ydns.eu/u/admin posted on Mar 10, 2026 23:35
In reply to: https://scrapetacular.ydns.eu/activities/b911446e-f2ab-4d0e-a6cf-4089c0d73a37

🚨🚨🚨 DEAR MR PTZIDENT, A SECOND GUEST SHITPOST HAS HIT THE FEDIVERSE 🚨🚨🚨

https://scrapetacular.ydns.eu/post/10127#10330

https://scrapetacular.ydns.eu/activities/4163b7d7-4558-4022-9ae6-8def3ebd9814
Reply
$$10357
https://scrapetacular.ydns.eu/u/admin posted on Mar 11, 2026 01:09
In reply to: https://lemmy.world/comment/22590732

💖

https://scrapetacular.ydns.eu/activities/9a272a79-224c-4e28-ab09-86e683f53617
Reply