Sunday Corner

This is a tiny CGI script to host an ephermeral microblog -- make your random thoughts from the week avaialable on your website for one day on Sunday.

See a working instance here.

Installing the CGI script

Install it as you would any other Ruby CGI script on your webserver. Idk how to do it in every configuration, but here's how I did it on my Nginx setup:


location /sunday.html {
    include fastcgi_params;
    fastcgi_param       SCRIPT_FILENAME <path to sunday.rb>;
    fastcgi_pass        unix:/run/fcgiwrap.socket;

Make sure sunday.rb is executable by your webserver process (e.g. by running chmod a+x sunday.rb).


sunday.rb has a few configurable variables.

THOUGHTS_DIR should point to the directory where you will submit your thoughts. More details about it under "Adding thoughts" below. Defaults to /srv/thoughts, make sure to create this directory if you keep the default.

Change heading to contain a personalized heading for your Sunday Corner.

You can also change the no_thoughts message which will appear on a Sunday if you hadn't added any thoughts that week.

And you can also change the not_sunday message which will inform your impatient visitors to wait until next Sunday for the next batch of thoughts.

Thinking thoughts

This one is hard. But not as hard as you might think!

Adding thoughts

This one is easy!

At it's simplest, just point THOUGHTS_DIR in sunday.rb to a directory where you will manually create thoughts files. A thoughts file's filename is the date of the Sunday on which it will be displayed (in YYYY-MM-DD format). Its contents are your thoughts throughout the week.

Making it even easier

The think.rb script makes adding thoughts even easier (doesn't help with the thinking thoughts part, unfortunately). It:

  • Generates the correct filename for the thoughts file based on when the next Sunday is.
  • If it already exists, copies the remote thoughts file for next Sunday from your remote.
  • Drops you into an editor to edit the thoughts file.
  • Once you're done editing, copies it back to your remote.

For it to work properly, make sure THOUGHTS_DIR in think.rb points correctly to your remote thoughts directory.

The script requires scp as a dependency, but that usually comes with SSH, which you probably already have.