Skip to content
This repository has been archived by the owner. It is now read-only.
An indieweb micro micro-blogging tool
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Pneumatic Post

A micro micro-blogging tool

"A Series of Tubes", Episode 61 of 99% Invisible

Pneumatic Post is a heap of PHP scripts that amount to something like a flat-file, IndieWeb-compatible content CMS. I'm using it on my own website, feel free to check it out there,


Pneumatic Post aims to be easy to install, maintain, and cheap to host. There is no database, and everything is pretty much just vanilla PHP. Building this, I set out to learn some more PHP, start participating in the IndieWeb community, and hopefully make it a bit easier for other folks to do so, too. Poking around Github before I built this, I noticed that most of the existing IndieWeb tools seem to be more technical than not...e.g., I looked at them and had little to no clue what I was looking at. My goal was to make something for the IndieWeb peripheral, the lay-folks.

This is defo. still a work in progress.

Getting started and installation

First, some quick setting of the stage:

  • Despite aiming to be wicked easy to use, some basic assumptions are made:
    • You have access to a server/computer that runs PHP
    • You have either direct access, SSH access, or FTP access to that machine
  • Pneumatic Post doesn't have a native admin interface. Once setup, you'll be able to post content with something like Quill or Micropublish
    • There is no proper media-endpoint right now, so images can be added manually, or using ownyourgram...but then the actual images them selves will still be served via Instagram's servers (which I realize isn't an ideal set up)
    • Currently, there isn't support for reposts, bookmarks, or likes. This isn't in place because I don't foresee using them. If folks actually adopt this, or I decide to start using them I'll see about adding support for them

The first thing to do is to download Pneumatic Post. Best place to do that is from the releases page.

Before deploying what you just downloaded, open config.php. Follow the comments and add as much information as you can (NOTE that you can fiddle with this info down the road. There are some elements you'll need to add later, e.g. info.). Once you've done so, save your edits and upload all the contents of the file to the publicly accessible directory that is being served at your domain, or wherever else you want to server your site (a subdomain, or child-folder).

Visit your site! You should see your site title and description as well as some sample posts. Once you've verified everything is rocking and rolling feel free to delete the sample posts, they end in .json.

Take a breather — enjoy some fresh air, visit,, and Set up with each. These services do the real heavy lifting. enables you to log in to various IndieWeb tools and services with your domain name, is how Pneumatic Post receives webmentions from other folks' websites, and funnels replies from other places (e.g. twitter, facebook, etc.) back to your website.

Next, verify your indieweb compatibility by visiting If that checks out, you are pretty much good to go at this point!

Sign in to quill, and get posting!

Of note...

Pneumatic Post doesn't have bona fide POSSE support. I currently make up the gap with ifttt. I created an "applet" that posts to twitter whenever a new item is added to my RSS feed.

Because Pneumatic Post isn't currently rocking a legit media endpoint, the best way to post images is to use ownyourgram.

What the heck are all this .json files!?

Every time you make a new post a new .json file is created. If for some reason you ever need to edit a post, or delete one, you just need to find the file associated with that post. Their names look intimidating, but they're actually just the date and time the post was created without any spaces or punctuation. An easy way to find the corresponding file is to visit the post's permalink. The URL will look something like https://your.domain/entry.php?id=20170529001249 the number after .../entry.php/?id= is the name of the file.


The source for Pneumatic Post lives in two places:


  • ⛔ Write better documentation
  • Markup to support microformats
  • Multiple post types
    • Notes
    • Images (partial support, there is no media endpoint)
    • Replies
    • ⛔ Reposts/Bookmarks/Likes (uncertain if I will enable all/any of these)
    • Articles
  • Permalinks
  • JSON Feed
  • Feed pagination (sort of enabled)
  • RSS
  • Receive webmentions
    • ⛔ Display threaded conversations
  • Micropub endpoint (only really supports CREATE right now, no editing or deleting)
  • ⛔ Proper syndication targets
  • IndieAuth and other security stuff
  • Add markdown support
  • ⛔ Pretty urls?
  • ⛔ Sexier CSS?
  • ⛔ Category tagging/filters
  • Support for Open Graph and Twitter cards
  • Indie-config compatibility
  • ⛔ Favicon
  • ⛔ Remove colophon from feed.php ('this is a hack that I'm using to ensure that the final item in the feed doesn't have a trailing ","')

Credit where credit is due

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.