Overview
Technical communications are important for exchanging information among scientists and engineers, broadly disseminating information to the general public, and providing easily accessible lesson materials. To make these communications easier to create, I have developed a static site generator called TealSite. TealSite helps to address some of the social issues inherent in sustainable computing, particularly with respect to accessibility of information and reduced energy use. Static sites tend to be less reliant upon JavaScript and similar technologies that can be difficult to support in alternative user agents. At the same time, they only require processing when updates are needed, so they consume far fewer CPU cycles than a dynamic site using a content management system.
As a static site generator, TealSite works by taking a set of input files and generating a website that can be deployed on a minimal HTTP server that does not require any server-side scripting (PHP, Node.js, etc.). Servers configured to host static sites have smaller attack surfaces compared to servers that host dynamically generated content, making them far less likely to be compromised by cybersecurity threats. As an added bonus, sites generated via a static site generator can be distributed without even requiring a server at all. In the simplest case, a generated site can be put into a ZIP file or a directory and copied onto a computer. More specialized formats, such as EPUB or ZIM, can be used to put entire sites into single files for ease of copying between computers, tablets, phones, and e-readers.
Another major objective of TealSite is to produce materials that are accessible to anyone, including people with disabilities. TealSite is designed to create sites that conform to the World Wide Web Consortium's Web Content Accessibility Guidelines, which define baseline standards for accessibility.
The base functionality of TealSite is already implemented, as this site you are currently viewing has been produced with it. However, there are a number of potential additional features and capabilities that can be added, resulting in related projects.