Inkwell - a multi-tenant long-form writing platform for the fediverse (open source, FEP-b2b8)
Inkwell - a multi-tenant long-form writing platform for the fediverse (open source, FEP-b2b8)
Beware this app was written using AI.
For example, Mastodon does not implement FEP b2b8. So that’s bullshit.
The whole thing was ‘written’ in 3 weeks.

Steps to reproduce the problem Search for https://bookwyrm.social/user/fabiscafe/review/4317797 on your mastodon instance¹. Open the post you found ¹ if nothing shows up, your instance doesnt feder...
Fair points to address, and I appreciate the directness.
On AI: yes, I use Claude Code as a development tool and I’m transparent about it. There’s a CLAUDE.md in the repo that says so explicitly. I’m doing this solo with a day job and a passion for building, and AI tooling lets me ship faster than I could alone. I get the skepticism given the slop AI is generating. I think the distinction that matters is whether someone is engaged, iterating on real feedback, and building something they actually use and maintain. I’m trying to be that.
On FEP-b2b8: my wording was unclear, and I can see how it read that way. Inkwell publishes Article objects per FEP-b2b8 and also sends a preview Note so the content renders cleanly in Mastodon and other microblogging clients that don’t handle Article objects. Saiwal read it right. I should have separated those two ideas more clearly in the post. That’s on me.
On the timeline: three weeks of full-time-equivalent effort from a solo dev using modern tooling. The code’s all on GitHub if anyone wants to look at it, break it, or tell me what’s wrong with it. Happy to take feedback on the implementation. I’m not trying to sell anything here. I had an idea, I’m over big tech and social media, and I’m learning and trying to be part of the fediverse community. The platform is free to use and open source. If it’s not useful to this community, that’s fine. But I’d rather get roasted on specifics than dismissed as another bot project.
You even wrote this comment using AI. Do you have any idea how that makes people feel?
https://distantprovince.by/posts/its-rude-to-show-ai-output-to-people/
No, I didn’t, but I appreciate you telling me.
I can write on my own and could have struggled to find the words that likely wouldn’t have changed any opinions. I was an early adopter of AI and use it to move fast. Or when dealing with challenging circumstances. However, I do appreciate the feedback and will be more mindful. I could not keep up doing something like this on my own. My main goal is to learn as I’m a product manager by day. I build and ship things for corporate america. I am doing this for myself and trying to find a community of like-minded individuals to collaborate with. I figured I would eventually run into pushback about using but I was prepared. I could not do this if I did not have the experience to allow me to do so.
I admit I’m not an expert coder but I’ve always been interested in programming and have taken several college classes.
So bottom line, I will make mistakes and will own them. I apologize for not understanding the community or upsetting anyone. I’m testing the boundaries of what people can do with AI. It’s going to be used whether we like it or not, and I want to use it responsibly and openly.
Ok, fair enough. The lure of AI-boosted ‘productivity’ would be irresistible to people in your position.
What grinds my gears is people show up and share their project, without disclosing how it was made, riding on the assumption we all have from the past that you put a certain amount of effort into it and that you did so as a reasonably well-practiced expert in your craft. There’s some gravitas to that and a respect that is earned by giving something of value to us. In this scenario people may value the project and choose to help you by contributing their expertise and time and perhaps a kind of community will form around the project.
Some noob vibe coding a brain fart they had is not on the same level. Noobs are welcome to spit out some slop and give it away, if they don’t pretend it’s something more than it is. And when they share their output in this manner, they shouldn’t expect people to read code that they never read themselves and can’t expect any community to form.
An open source project is not just a bunch of code. It’s also people. When you replace the people with AI, it dies. Yours is stillborn.
I don't buy it. I can't in good conscience interact with "Inkwell", there needs to be a real name and identity attached to the work.
If you're not willing to step up then what business do you have sharing your work openly?
@[email protected] the replies continue to be AI generated. The ones to you (possibly), the ones to me (definitely). Maybe an assumption is AI agents can't lie. I think maybe this one is proving that assumption wrong.
From ‘his’ github profile pic:
sigh
From ‘his’ github profile pic
Do you know how zerogpt.com detects a Trained #MOLE? output By using a Trained MOLE!
we employ a comprehensive deep learning methodology, trained on extensive text collections from the internet, educational datasets, and our proprietary synthetic AI datasets produced using various language models
Which means that like all the output a Trained MOLE vomits up, there’s absolutely no way to know how accurate this is (whatever the truth of whether there’s a human behind these texts of not). Maybe this is a real photo of Stanton. Maybe it’s been heavily altered by automated filters in GIMP. Maybe it’s been auto-generated, because like many of us, Stanton likes his privacy and doesn’t want to doxx himself (a privilege reversed for middle class people in the middle of the social diversity bell curve). The Trained MOLE you just weaponized against him doesn’t know, and neither do you.
You know who now deserves exactly the same dogpile from you that Stanton got for using a Trained MOLE to prove a concept? I’ll give you 3 guesses ; )
@[email protected] At least the Inkwell software consistently fulfills the promises its interface makes. I’ve tried to edit both my posts in this topic with PieFed, this one to clarify that I meant; detects a Trained MOLE *output. The interface reloaded with a slightly different version of the OP and the comment I was replying to, no sign of the comment that I wanted to edit nor an edit box.
Can I respectfully suggest you redirect the time and energy you’re putting into dogpiling other AP implementors into fixing some bugs, and testing your interface in non-Chromium-based browsers on non-grApple OS (I’m using LibreWolf)?
Thanks @[email protected], I appreciate the openness you've shown.
I'm sorry I got defensive. It is important to me that the colleagues I hope to work with are on the same page when it comes to standing behind their work.
It's truly surprising how much Inkwell can (supposedly) do at launch, and so I really hope you're able to find traction.
Can you (as yourself!) share more about why you decided to pursue a long-form content writing app communicating over ActivityPub? For reference, write.as has a free plan, so there already is a player in the space providing this kind of experience.
Not saying there only can be one, the more the merrier.
Hey Julian! No worries at all. I made an obvious mistake and I’m not afraid to admit that and learn better. I’ve done a lot of refection and do realized I have moved very fast. I originally started with a much smaller set of features but I posted on Reddit requesting feedback and people wanted writing features I wasn’t expecting. I ended up shaping it by what people told me they wanted.
I’ve always wanted to build apps or work in development. The last three years I’ve been working in product adjacent roles and I recently moved into my first product management role. However, I want to break free of working for others so I’ve been starting ideas and dropping them before they got anywhere for as long as I can remember. I wanted to build my own thing and I was trying to figure out what I could do on my own with AI being where it is now. I grew up in the mid 2000s so I naturally spent way too much time on Myspace and Livejournal. I missed the feel and community of the early internet. So I started brainstorming a journaling app and how to differentiate it (I used AI to help). I had also joked about starting my own social media app because I hated when I posted stuff on FB etc the algorithms punishes me and no one sees it. So AI (Claude) actually pointed out the fediverse to me. That is why I was able to say stupid stuff like Article objects would show on Mastodon with preview notes (I hadn’t realized Mastodon hadn’t implemented changes on their side.) I found out about FEP-b2b8 through a Mastodon subreddit when I posted asking for feedback. I was moving too fast to fully understand the fediverse and the new parts of this. And it was painfully obvious to everyone but me haha.
Well, the good news is that you don't have to face it all alone.
The AP developer community is here and happy to explain the difference between the theory (the spec, the protocol, the FEPs), and the reality (for most FEPs implementation is limited in scope).
b2b8, for example, was championed by @evan, and I pushed for broader support alongside Ghost, WordPress, and WriteFreely. It is largely well supported except for the preview piece, which only BridgyFed supports.
Claude will tell you lots of right things, and I'm sure it'll confidently tell you some wrong things too. If you ever need to double check something, ask on the fediverse subreddits or @technical-discussion — you should be able to reach it from your Piefed account.

He/him. Board member at CoSocial.ca. Research Director, Social Web Foundation. Director of Open Technology at Open Earth Foundation (OEF). Author of "ActivityPub: Programming for the Social Web" from O'Reilly Media. Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai. Creator of pump.io. Co-creator of GNU social. Co-chair of the Social Web Working Group at W3C. Co-author of ActivityStreams 2.0. Co-author of ActivityPub. Co-author of OStatus. Grad student in CS at Georgia Tech. In Montreal, from San Francisco. Greek, Arab, American, Canadian, cook, gardener, runner, dad, husband.
@julian It's been a great multi-implementer effort, both from the long-form text producers and the microblogging services.
@[email protected] one warning about doing ActivityPub development with LLMs: codeberg.org blocks a lot of LLMs for training and for RAG/MCP. Since FEPs are hosted there, I've found that searching for information on FEPs will result in incorrect information.