neopub

From IndieWeb

neopub is a blogging software developed by Robin Boers that supports indieweb building blocks Micropub and Webmention. It runs micro.geheimesite.nl and is written in PHP. neopub is inspired by neofeed, publog and aaronparecki.com.

A microblog running neopub can also be called a neolog.

IndieWeb Examples

Robin Boers

Robin Boers on https://micro.geheimesite.nl/ since ????-??-??

Add yourself!

Add yourself here… (see this for more details)

Features

neopub has a built-in micropub endpoint that supports the following post-types:

Images are uploaded to a GitHub repository by default, but you can change what hosting solution you want to use in uploader.php (in the utils directory).

It sends webmentions for all of the above-mentioned post-types. It also supports filtering:

  • per year
  • per tag
  • per post-type

Design

neopub uses a set of JSON files in the content directory to save posts. These also double as JSON feeds (although I'm not sure whether they are valid). These JSON files are categorized per year. This means every year a new JSON file will be created.

The RSS feed is dynamically built using the current year's JSON file, as are the homepage and other feed pages. Accessing previous years' posts is possible by using their permalink or using example.com/posts/2022.

neopub sends webmentions using mention-client-php after a post is published. It receives webmentions using webmention.io and displays them using a modified version of webmention.js that can be found in the assets directory. It also has a form to allow users to send manual webmentions.

Getting started

You may self-host neopub for your own microblog. These are the requirements:

  • PHP 7.4.3
  • Apache (with support for .htaccess)

To self-host neopub:

  • Get the source code
  • Edit the main config in config.php
  • Copy utils/token_example.php to utils/token.php and enter a GitHub API token. This step is only necessary if you want to upload images to your microblog.
  • Install a theme
  • Optionally install neoblog, a simple dashboard for managing settings, themes, and writing notes. Keep in mind that it is still a WIP. Use at own risk.
Default neopub theme: inspired by the Twitter webapp

Themes

neopub supports theming to some extent. Meaning: you can swap out the main.css file in the assets directory. I made some themes just to experiment. You can browse available themes here: https://neopublished.github.io/themes.

License

neopub is open-source and available on GitHub. It is released under the Apache 2.0 License, but php-markdown and webmention.js are released under the MIT license, while mention-client-php is released under both.