Neonblog

Neonblog is a PHP blog developed by and running on notenoughneon.com until July 2015. It is no longer maintained. Neonblog uses html+microformats as its native data store.

Features

 * Post articles, notes, photos, replies, likes, reposts
 * Send/receive webmentions
 * RelMeAuth based login (using indieauth.com)
 * Micropub endpoint and embedded micropub client
 * oEmbedded Youtube and Soundcloud players in notes
 * Experimental h-feed reader
 * Search

Code
github.com/notenoughneon/neonblog

Neonblog isn't recommended for general use, but if you want to try it, there are relatively few dependencies:


 * PHP 5.4 (json, curl, openssl, imagick)
 * Apache mod_rewrite
 * write access to the filesystem (CGI/FCGI should work, mod_php may be problematic)

All configuration is in the file config.json.

Architecture
Neonblog uses PURR to use published HTML as its native data store. Posts are written to html files and served as static content by Apache. When posts need to be updated, such as adding replies, the h-entries are parsed to an intermediate representation before being transformed back to html using a set of Mf2-aware templates.

The home page feed is generated with the help of an index that stores url, local filename, date and post type. This is persisted in a json file, with the intent to upgrade to SQLite if performance becomes an issue. The index is used to quickly locate the relevant posts to load, which are parsed for microformats and redisplayed in a feed format.

Received webmentions are queued for either manual approval via UI or a bulk auto-accept running on a cron job. The index is used to determine if the target url is a valid post.

OAuth tokens and queued webmentions are also stored using json.

Screenshots