This yet-to-be-named project explores ways to blend websites, social media and collaboration on the Web, by implementing an easy-to-use website engine powered by various open web standards, such as micropub, microformats, webmention, pingback, and (eventually), ActivityPub.
In the long term, it's supposed to replace neopub, and potentially power my blog.
This project is very much an attempt at self-dogfooding.
- Single tenant
- Captioned images
- Short posts
- Captioned code (like gists)
- Replies
- Sending webmentions
- Sending pingbacks
- Receiving webmentions
- Receiving pingbacks
- RSS, Atom & JSON feeds
- Comment section
- IndieAuth
- ActivityPub
- It works
- CLI
I'm also building my own custom CMS to power this website engine. The CMS will be similar to early versions of Blogger, and support a bunch of things:
- Asset management
- Micropub editor
- Moderating webmentions
- Basic statistics
- @mentions
- Email subscriptions (based on Sub API)
- RSS only postings (won't be rendered on listings)
pub < post.txt
pub -i image.png
pub -i graph.png -n
echo "caption" | pub -i another.png
echo "caption" | pub -c main.c
Optional -n flag uploads the image but doesn't include it in the feeds, useful for including images in a post. Optional -c flag copies the url to keyboard. otherwise, write to stdout.
I'm also thinking about other things, but I've shelved them until I have a working site up-and-running:
-
Git integration? I could add an optional git module that would version-manage the data store. I'm not sure whether this is possible using PHP, but it would definitely be cool.
-
#hashtags. The difficulty is that some sort of central service is needed. I'm not sure how ActivityPub handles it, but might be interesting to look into when I build the ActivityPub functionality?
-
Access control? Only allowing certain subscribers to see some posts. This would work by giving each subscriber an unique token, which would be stored in a cookie and appended to the query params of the RSS feed.
-
Drafts and previewing, maybe implemented using the same foundation as access control?
Easy publishing from my phone. Hit icon, type something, attach picture, post.
Easy publishing from my laptop. Writing post in Markdown in Neovim, pasting images (automatically uploading to u.roblog.nl, with -n flag).
Tests. I get it, they're important for ensuring code quality and confidence in codebases in professional settings. But this is a side-project that I'm building in my spare time, for fun. Don't ruin that for me please.
Bookmarks, crossposts, likes. I want to encourage conversation, collaboration and meaningful interaction. Mindlessly double tapping doesn't fit that vision.