Push send, receive post.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Jason J. Gullickson d982933493 Ignore img dimensions. 4 months ago
css Ignore img dimensions. 4 months ago
images Initial import from Github. 4 years ago
.gitignore Initial support for user-specific podcasts. 4 years ago
LICENSE Initial commit 4 years ago
LICENSE.txt Switch to THL. 2 years ago
README.md Various copy and doc updates 4 years ago
favicon.ico Initial import from Github. 4 years ago
foo.txt Testing... 2 years ago
humanhash.py Initial import from Github. 4 years ago
index.html Add podcast link to index head. 4 years ago
multi-col.html Archive old style and add examples of new. 4 years ago
podcast.xml Added author tag to site-wide podcast xml. 4 years ago
podcastrssindextemplate.xml Initial support for user-specific podcasts. 4 years ago
postindextemplate.html Try adding some color to links. 4 years ago
postrssindextemplate.xml Initial import from Github. 4 years ago
posttemplate.html Try adding dates back to posts. 4 years ago
preposter.us.cfg.template Initial import from Github. 4 years ago
preposter.us.py Try to make Post iterable so it works. 4 months ago



When Posterous was created, it was perfect.

Over time it became bloated, but it's heart was still in the right place. Then it died.

Preposter.us is an attempt to ressurect the heart of Posterous, in around 500 lines of Python.


After a long hiatus, this project is being revived, slowly. Once a permanent blog has been established to track progress, a link will be added here.

How it works

To start a new blog, send a post via email to preposter.us's email address. Preposter.us will read the email, create a new blog and post your initial entry. When you want to create a new post, send another email. To edit/update an existing post, send another email with a subject line that is identical to the title of the post you want to update. To delete a post, send an email with an identical title that contains no text in the body.

Preposter.us maintains an index of all bloggers using each server, and generates an index for the posts in each blog as well. Blogs are identified by the email address used to post, so to create additional blogs, just submit a post from a different email address.

Anything that can send an email can publish via Preposter.us.


Preposter.us requires Python (tested with 2.7, but probably works with any 2.x version), and a webserver that can serve static HTML; thats all. No database, no external libraries, nada.


To setup a Preposter.us server, start by setting up an email address that the server will listen to (an address you'll be sending posts to), free gmail addresses work great for this.

Next clone this repository and copy preposter.us.cfg.template to preposter.us.cfg. Using your favorite editor, open preposter.us.cfg, theres a couple configuration variables you'll need to setup for your site.

Once the script is configured, send a post to the email address you setup above and then run the preposter.us.py script. If all goes well it will return silently, and you should have a new directory where you specified the web root to be. If the script returns an error, or doesn't create a new blog directory, review the Issues list here to see if you're experiencing a known issue. If not, and if you don't know what else to do, post a new Issue here with details on your setup and how to recreate the error.

If all goes well the next step is to expose your blog files to the web. The files generated by Preposter.us are simple HTML and can be served using any webserver (or even viewed directly in a browser). Finally, setup a cron job to run preposter.us.py on a scheduled basis to automatically post new blog entries whenever they come into the mailbox.

If you just want to use Preposter.us but don't want to run your own server email your first post to "post at preposter.us".