Introduction Documentation Philosophy Updates Contact


Blot is actively maintained. The lists below give you a idea of what I'm working on. I sometimes post news on Twitter. Please don't hesitate to contact me if you have any questions.

To do

Improve documentation:

  • Fix broken links in the documentation
  • Fully document all variables as currently true
  • Fix guides and resources page

Improve the selection of templates then let these people know:

  • Chris
  • Nash P
  • Chris S
  • John P

Record a new demo video:

  • Show sites I run using Blot
  • Blot's developer blog: a conventional blog, show using different text editors
  • My visual scrapbook: shows tag folders, photo blog
  • My link blog: shows the webloc feature, shows IFFFT, perhaps from favourited tweets?
  • My personal site: simple landing page, edit with a doc file?

Increase price to $30 a year for new subscribers. This will not affect existing subscribers.


Buy .com

Fix bug when you have two blogs in the same app folder, then unlink one of them, then relink it.

Fix bug when you try to restart a cancelled Blot subscription

Fix bug with catching dropbox file renames

  • False positives are really annoying. You'll publish a new post and it won't show up on your blog because it'll be buried in the archives. Renames need to be right next to each other in the dropbox delta queue.
  • Use a string-difference algorithm to improve rename recognition? Something with a funny name like Jaro–Winkler distance.
  • This has plagued nash for the last few months so let him know when it's better

Fix bug with pandoc's video embed feature which automatically adds the autoplay attribute when turning a raw url to a video into a video player then tell Wesley

Fix bug with accents in image paths then tell Wesley

Fix bug with strange windows notepad encoding and tell Osvaldo

Fix bug with how the date parser handles a space (or lack of space) between the date and the time

  • 2017-08-27 18:16:59 works
  • 2017-08-27-18:16:59 doesn't work

Fix bug with katex latex rendering described by Peter

Fix bug with case sensitivity for tag folders

Public site improvements

  • Experiment with new layout ideas
  • Turn the gif on the contact page into a gradient that changes based on the time of day wherever I am.
  • Consolidate all the urls ('/changes' -> '/updates') and set up redirects
  • Log 404s on the public site to identify neccessary redirects
  • Personalize the documentation for logged in users
  • Make the site responsive and looks good on phones
  • Add a permanent floating link to Blot's support page at the bottom right of the dashboard, like basecamp

Redesign template system to make it easy to customize and create them.

  • Make templates file or folder based
  • Move www/blogs/* to /blogs/{{id}}/assets ? Or maybe some obscure folder?
  • Disable re-rendering for template locals
  • Local template editing does not clear cache
  • Use Hogan for precompiling and rendering templates?
  • Let Aurynn know when it's possible to set routes locally
  • Add way to allow all entry lists to access {{#months}} sorting options just like the archives page.
  • Fix Frank's strange template bug
  • Warn users that underscore will not work for hidden pages
  • Fix _ entries to true public files, tell john & other folks who depend on the menu: yes, page: no side effect
  • Tell Rodrigo don't write previews for _ posts
  • Add support for fetching only some properties of an entry (ideally only those that are used). prevent some properties from being fetched in some lists (html, for example in all_entries). Would be a good candidate for hgetall or hget?

Sync improvements

  • Re-implement folder verification feature and make use of the local content hash computation script to verify we have the correct version of a given file – Re-instate feature to check if a rogue sync took down the server and run sync on a seperate process
  • Add method to pause syncing and prevent future syncs then use this method with the create/remove blog migration too.
  • Ensure sync script is run by less priveledged user (just access to /tmp ? /blogs/{{ID}})?

Full folder access improvements

  • Try to use the same app folder when you upgrade from app folder to full site folder
  • Let these people know I added support for 'full Dropbox' permission

Help Larry set up his themes

Offer to design the blot site for:

Add support for entry property with escaped double quotes, tell Jay

Improve nginx error pages

Removing Date metadata from a post should reset its date to the file's creation date

  • Currently nothing changes.

New post support

  • Refactor code so it's possible to register new file converters easily.
  • Video posts (.mp4 for now?)
  • Basic audio posts (.mp3 for now?)
  • Add a file dependency / dependents list to each entry then use this to rebuild dependent entries when, for example, a public image is updated.
  • Multi-file posts from inside one folder? (Album)
  • Multi-file posts with the same name but different extension (image.txt and image.jpg)

New payment methods

  • BTC, ETH etc..
  • PayPal, and let these people guy know.

Migrate code from require('mime') to require('mime-types') since it doesn't use a global default type. Remove the mime node module.

Migrate code from require('../../../') to shortcuts in node_modules.

Remove the dirToModule code and hard link the require references.

Add support for github style checkboxes and tell Christian

Refactor app/index.js

  • Ensure the routing serves requests to blogs fastest, then the dashboard, and finally the marketing site.
  • Merge all the weird vhost lines into one glob.

Use \ optgroup on timezone select dropdown to subdivide zones by current time, and steal the presentation format used by basecamp.

Use NGINX to send all Blot's static files

Add hourly local redis rdb dumps

Add script to roll back into hourly local db dumps and remote backups

Install nginx fail2ban & http2

Work out why blotcdn is so slow for

Backup s3 buckets every day? delete those older than a month?

Delete backups older than a month from s3 automatically

Add daemon for zero-downtime node restart

Set up AWS autorecovery

Test with instance reboot on live site

Test monit with nginx going down

Test monit with blot going down

New sync clients

Move to pretty IDs for everything

Re-do url redirector to use route-parser and properly support regular expressions

handle queries properly too

Mass deletion of files did not remove the blog posts until verify tool was run on blog.

Allow users who are restarting an account with multiple blogs to disable some before restarting.

Giphy url support

Catch rename failed to find a match for scrapboox/patch_bunny_slippers.jpg -> /patch_bunny_slippers.png

Can rename tolerate a minor file size change?

Add filtering by date to 404 log

Make the folder in Dropbox rename automatically when the user changes the username for one of their multiple blogs?

Move daily update generator from scripts to app folder?

If entries share publish date, sort them by blot creation date?

Consider what to do for footnote links in a teaser -> rewrite links to {{permalink}}#frag?

Add plugin for inline popover footnotes

Enable hyphenation again then tell rodericus

generate gif / svg thumbs if possible?

Find cause of fontconfig error / warning?

Password protection for blogs

Create an API for Blot

  • Add webhooks and tell Aurynn

Add option to enable hard line breaks

Investigate performance improvements to type() forEach


  • Install time mover library
  • add proper error handling to email
  • make it easier to pass in variables


  • check each id has an entry and each entry has an id
  • check menu is right (pages exist, non deleted etc...)
  • generate fake entries for id clash
  • why does it not print lines in production?
  • must check each blog folder exists...

Add neat interface to customize blog level variables?

simplify video plugin HTML OUTPUT?

Move queues in entry/rename /remove to doEach

fix image caption plugin to be semantic

Devise nice way to declare unit tests for a file which don't need to be run on server start but can be run programmatically

Consider adding date format localization with Moment

Add button to remove avatar from settings page

Handle noscript on dashboard / signup gracefully (remove all dashboard js?)

Incorporate typographic features from textile

add supoprt for dynamic partials to make collections possible e.g. {{> /{{tag}}.html}} ?

move to line by line reading for as much as possible

queue scheduled entries in redis this makes each server less stateful

renderLocals needs to inherit context so entries can refer to their own title etc...?

Why does pandoc \ become .com ?

Add a cool bookmarklet which drafts a post a la

Move from preview files -> webloc / .url files ?

Create webloc to live version for each entry? I LIKE

Merge www/blog/id and blogs/id folders into one, with a dotfile directory? create .assets inside this for doc posts?

Move to hogan for main renderer?

Move to new api file ids for renames?

Move from 'archives' to 'archive'?

Noindex blog search results pages

Write a pandoc compatible markdown converter in javascript to resolve some of the performance issues with pandoc

Re-enable CSP on blot site in a way that works in Safari

Popular entry list

Related entry list

Expose list of rendering errors to callback

Prevent uploads will still pipe large files on the server

Add rewrite feature, e.g. rewrite /randomColor to /public/randomColor

Menu needs concurrency

Push archives feature

extend cacher to save repsonse status too? --> this allows us to cache 404 pages...

prevent hotlinking of static assets in assets.js .header('Access-Control-Allow-Origin', '*') // TO DO REMOVE ME TO PREVENT HOTLINKING

banned permalinks are possible when page:yes

Incorporate disk space monitor to alert for low space

Archive logfiles with backups

Generate list of external api dependencies and follow changes for each

Make drafts preview file identical (construct iframe based on window.location.href) and use copyref

Undo option for form changes

Store metadata for each file (type, size, mtime)

Add an explanation for the folder migrator...

Seperate the settings for blog and user & billing

Implement custom CSS for syntax highlight plugin

Wrap each pre tag in .hljs so other themes work too

Ensure Youtube plugin still functions if apis fails

Prevent image zoom plugin from zooming emojies

CJK auto spacing plugin

Embed plugin

Move to some SQL for storing each entry's input and output...

Add passwords for accounts

Create export to markdown mini-site which exporter/importer

New plugin ideas

Use pandoc for katex instead of seperate function

Add transactional emails notifying user of changes to their email or password.

Download the webpage for bookmark files and try to extract title + summary

Consider storing blog files in s3 bucket instead of ebs?

  • Bandwidth to-and-from is free, no? So we'd have to transfer everything when the blog was reloaded.
  • Would reduce storage costs by 80% vs EBS
  • How would it affect performance? Would it improve security?

Add native comments plug in

Add email list plugin for readers?


Updated homepage
3 days ago

Updated documentation
3 days ago

Moved scripts around
4 days ago

Removed case sensitivity requirement for email addresses
4 days ago

Updated log in
4 days ago

Updated log in route
4 days ago

Add indication if user has set password
4 days ago

Updated account page
4 days ago

Added module for sending password reset emails
4 days ago

Moved set password route
4 days ago

Moved change password route
4 days ago

Fixed reset password script
4 days ago

Updated notes
5 days ago

Included support for ODT files
15 days ago

ODT support
15 days ago

Updated feed template
15 days ago

Updated help wrapper
a month ago

Updated public site
a month ago

Updated build file
a month ago

Updated public site
a month ago

Updated documentation
a month ago

Allow path in permalink format
a month ago

Updated public site
a month ago

Create required directories on server start
a month ago

Updated documentation
a month ago

Updated Changes page
a month ago

Updated Documentation
a month ago

New homepage ideas
a month ago

Updated docs styling
a month ago

Updated documentation
a month ago

Removed stray template file
a month ago

Removed stray template file
a month ago

Improve documentation
a month ago

Added Roger's new site
a month ago

Updated development pandoc location
a month ago

Tweaked development nginx server
a month ago

Updated development SSL guide
a month ago

Moved user scripts to new API
a month ago

Improved the documentation
a month ago

Removed bad title
a month ago

Moved docs folder
a month ago

Re-ordered homepage mockup folder
a month ago

Added dev nginx conf
a month ago

Added thumbnail detail
a month ago

Replaced primes with apostrophes in the privacy policy
a month ago

Updated homepage
a month ago

Tweaked homepage copy
a month ago

Tweaked video location
a month ago

Re-ordered gallery sites
a month ago

Updated homepage sites
a month ago

Updated script for listing blogs
a month ago

Updated public site
a month ago

New image for homepage
a month ago

Moved help docs around
a month ago

Added build script for help page
a month ago

Added new web fonts
a month ago

Added new mockup
a month ago

Mockup ideas
a month ago

New homepage mockups
a month ago

Git client
2 months ago

Tweaked new theme
2 months ago

Added new index template
2 months ago

Autofocus on second sign up page
2 months ago

Added new shortcuts
2 months ago

2 months ago

Added new mockups
2 months ago

Added new template creation guide
2 months ago

Added link to account deleter
2 months ago

Add plural property to archives page
2 months ago

Fix caching of static assets
2 months ago

Remove hidden pages from search index
2 months ago

Added experimental local folder client
2 months ago

Refactored clients
2 months ago

Refactored clients folder
2 months ago

Updated README
2 months ago

Moved server.js to app folder
2 months ago

Removed title and trailing whitespace
2 months ago

Updated a few scripts
2 months ago

Tidied up notes folder
2 months ago

Tweaked git ignore styling
2 months ago

Restructured notes folder
2 months ago

Update homepage links because Blot now supports HTTPS!
2 months ago

Update notes
2 months ago

Updated ssl vhost guide
2 months ago

Added guide for changing blot's domain
2 months ago

Update server conf
2 months ago