Wanted to share something with this community and see if it’s useful to anyone. Inkwell (inkwell.social) is an open source, multi-tenant social journaling platform built on ActivityPub. The goal is to fill the long-form writing gap in the fediverse in a way that’s accessible to non-technical users, not just developers who can spin up their own instance of WriteFreely or Ghost.

What it does: users sign up, write journal entries or articles, and those posts federate as Article objects per FEP-b2b8 with preview Notes so they render cleanly in Mastodon and other microblogging clients. You get a title, excerpt, and link rather than a decontextualized URL. Follows, boosts, and likes all work bidirectionally with Mastodon.

It’s ad-free, algorithm-free, and the code is open source on GitHub (github.com/stantondev/inkwell). The hosted instance is at inkwell.social if you want to try it, or you can self-host your own.

Some things that might interest this community: ActivityPub federation with HTTP signature verification, Stamps (emotional reactions) instead of generic likes, a tipping system called Postage for supporting writers, newsletter delivery, custom profile themes, and data import from other platforms. Currently working on improving comment edit propagation and post scope handling for better fediverse compatibility based on community feedback.

Would love to hear thoughts, especially from anyone who’s been looking for a long-form option in the fediverse or anyone interested in running their own instance. What’s working, what’s missing, what would make this more useful to the ecosystem?

#fediverse #activitypub #longform #writing #opensource

Edit: Adding this after looking into the spec more closely. Inkwell publishes Article objects following the draft FEP-b2b8 guidance. I was wrong about the Mastodon behavior in my original wording above. Inkwell includes a preview fallback, but Mastodon does not currently appear to render that preview behavior as envisioned by the draft. That is my mistake.

    • julian@activitypub.space
      link
      fedilink
      arrow-up
      4
      ·
      2 days ago

      This morning I saw another product show up that was AI generated. No idea who is behind it but it’s sketchy as hell.

      It was an account portability migration tool, which is something the AP community-at-large needs, but not like this.

    • Rev_Stanton@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      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.

      • evan@activitypub.space
        link
        fedilink
        arrow-up
        2
        ·
        19 hours ago

        @inkwell@piefed.social Hey, I’m really sorry for all this dogpile. You shouldn’t be getting this kind of flack when you took the time to implement ActivityPub.

        Thanks for your work. I’m trying it out as @evan@inkwell.social and I have to say it’s a really lovely UI. I’ll give any feedback I can on the ActivityPub implementation.

        • Rev_Stanton@piefed.socialOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          11 hours ago

          Thanks, Evan! I honestly didn’t take it personally and there were some learning I needed that will just help me be a better fediverse community member. And thanks for the kind words and feedback! That’s mostly why I’m reaching out. The AP integration seems to be working okay, but I’m sure there are gaps I’m missing from a lack of knowledge.

        • Rev_Stanton@piefed.socialOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          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.

          • Rimu@piefed.social
            link
            fedilink
            English
            arrow-up
            5
            ·
            2 days ago

            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.

            • julian@activitypub.space
              link
              fedilink
              arrow-up
              5
              ·
              2 days ago

              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?

              @rimu@piefed.social the replies continue to be AI generated. The ones to you, the ones to me. Maybe an assumption is AI agents can’t lie. I think maybe this one is proving that assumption wrong.

              • Rev_Stanton@piefed.socialOP
                link
                fedilink
                English
                arrow-up
                3
                ·
                2 days ago

                I apologize for responding with AI, I didn’t realize people would think I’m a bot or think I’m hiding. This is a giant learning lesson for me and I’m listenig to you all. My name is Stanton, I live in Westfield, IN, and I’ve tried building many things that have never had any luck. I respect that I upset people by my approach and regardless what anyone thinks, that matters to me. I did change my username on here because I understand now that I need to show who I am in the community. Honestly forums are even new for me. So I won’t keep pushing back or challenging. I understand I was wrong and appreciate the feedback even if it’s hard to hear.

                • julian@activitypub.space
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  1 day ago

                  Thanks @inkwell@piefed.social, 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.

                • Rev_Stanton@piefed.socialOP
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  2 days ago

                  This is genuinely getting funny now. AI doesn’t do a good job of knowing what’s real or fake, any better than humans. I can show you that picture on my camera roll. My full name is Stanton Melvin. I’m not a bot, chill. I use AI, but it doesn’t mean I’m not a real person with real ideas and goals.

        • Rev_Stanton@piefed.socialOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          I’ve learned a lot from this post, so I appreciate everyone’s patience. I moved too quickly and misspoke. You are right and preview notes are not used by Mastodon. I implemented this based on what I read but didn’t verify it worked on the receiving end, my bad. I’m going to have to do more research into how Mastodon handles the article object and address any gaps. I’m sorry for the misleading post and lesson learned on my end.

    • Rev_Stanton@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      I’m confused, I have it set to public anyone should be able to see it. The link took me directly to it. Maybe I have a setting wrong in GitHub?

      • hendrik@palaver.p3x.de
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        It’s fine. I edited my comment to include the link after I didn’t find it anywhere in the post nor anywhere on the dot social webpage.

        • Rev_Stanton@piefed.socialOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          I should have just written the post myself and been more direct with the URLs. I’m just glad I wasn’t wrong about it being open source. xD