Effortless Web Publishing with Emacs
Tools I use for this:
Emacs, Org Mode, S3, GitHub Actions, Git
What I will cover
How I use the same tools I use to create software for publishing notes and documents. This will involve some brief discussions on:
S3 Website Hosting
Why?
I have been publishing content on the Internet since I first started using a computer as a teenager in the 90s. Suffice to say, I have seen quite a few ways of doing this. The last way that I attempted came at about the time it was fashionable to learn web development using Ruby on Rails. I learned from this that I didn't value anything I had to say enough to:
- Make a trivial blog web application
- Host this application on a VPS
- Install security patches on the VPS
- Ensure the VPS would withstand daily cyber attacks
- Ensure the front end is responsive and adheres to some accessibility standards
How?
Enter S3 Web hosting. By the time I learned you could host static content on an S3 bucket I was beyond ready to move away from my half-hearted foray into "blogging". By just granting public access to the S3 bucket, I was already well on my way to solving quite a few of the above problems.
I used this guide to setup my domain and the s3 bucket.
Web Publishing with Emacs and Org Mode
Why?
At around the time I discovered hosting static content on S3, AWS Lambda functions were becoming a thing. I wanted to hop on the Lambda band wagon so desperately that I concocted a scheme to update my static content "dynamically" using a Lambda. It worked, but I have doubts about whether or not the results are worth discussing.
After all, shouldn't there be a way to organize and publish web content without all the trappings of a CMS or a "blog" or a Substack (or a Lambda!)? Don't computers already allow people to store and organize content via these things called files and directories?
How?
I used this guide from System Crafters for creating the site. Also, I would be remiss if I didn't mention that System Crafters provide a wealth of a great material for learning and getting your work done with Emacs.
All in all, I think it took roughly an hour to follow along and customize some aspects of it to my liking.
Publishing the Site to S3 with GitHub Actions
I want publishing content to be as easy clicking some sort of publish button in a CMS. The developer's equivalent of that is pushing my content to a GitHub repository. I can setup a GitHub Action to detect that my content has been updated and then publish it to S3.