A static site is a website that serves pages directly from files on the web server, which have often been previously generated by static site generator software only when created or updated, instead of for every request.
“All I know about Paul Graham is he uses static HTML pages instead of Wordpress and that makes him smarter than most of us.” SecuriTay @SwiftOnSecurity
If you’re looking for software to make a static site, see:
A static site is much simpler to keep up and running than a dynamic website that executes custom code for every page that is requested, or worse, depends on a database which itself may independently go down.
The services below can be used to send Webmentions for a static website.
Telegraph is an open source project and hosted service for sending Webmentions and pingbacks. You can use it to send mentions to all links on a page, or send a webmention with specific source and target.
stapibas is an application that sends linkbacks for all links in an atom feed, and receive incoming linkbacks.
lazymention is a server that, when pinged, will crawl an h-feed and send Webmentions for any new content it sees. There may be a hosted version eventually, but AJ Jordan has to work out some security things first.
github-to-webmention is a self-hostable server that can receives a GitHub webhook notifying it of changes to a static site. It then finds links in new posts and sends webmentions to those targets from the new page.
The services and software below can be used to receive webmentions for a static website.
Morris is a self-hosted PHP service for storing Webmentions from webmention.io in a JSON format that static sites can use to render them without querying webmention.io on each build.
Log HTTP POST data
If you're self-hosting and control the web server you can have it log HTTP POST requests sent to your webmention endpoint URL in a log file. Then you look at the log file with your a text editor and respond manually, or script it, or whatever you like. An example of how to do this with nginx is at "A static, manual system for *receiving* webmentions (and pingback) with nginx" http://superkuh.com/blog/2020-01-10-1.html
go-jamming is a Jamstack/Webmention microservice written by Wouter Groeneveld and the code is available on GitHub. He wrote it originally for use on his Hugo website and describes it at Host your own webmention receiver. Go-jamming makes it possible to service multiple websites with one installation.
Static sites that wish to support Micropub will need to run a Micropub endpoint somewhere that has access to the file storage used by the static site or static site generator.
- nanopub - for Hugo
- webpage-micropub-to-github - for Jekyll sites hosted on GitHub Pages
- Sitewriter - for anything that builds from a GitHub repository
- Jamie Tanna's Micropub endpoint commits to the GitLab API and rebuilds his site https://www.jvt.me/posts/2019/08/26/setting-up-micropub/
- Indiekit - has presets for Jekyll and Hugo and supports several options for repository hosting
There don’t seem to be well-accepted or a documented pattern of best practices for static sites, so it seems reasonable to brainstorm a bit until we have documented real-world examples and exemplars.
Mostly static content
One particular use-case for a static site is a site where literally most of the content is / will be static, infrequently updated, certainly nothing like a stream of posts. Pages may be added, yet rarely updated. Perhaps like a very slowly/minimally edited wiki. Certainly not worth the effort of installing / updating / maintaining an SSG or any other custom software.
What setup would work best for a mostly static content site like that?
Static sites should still have good URL design, e.g.
- pathnames of words / phrases that are
- easily readable, shareable, memorable, typeable
- well indexed by web search
- lacking extra cruft like filename extensions like .html
- static site generator (includes a list of projects)
- Static domain hosting
- minimal python static site generator https://l4ur3n.github.io/blog/simple-blogging-engine.html
- Why / use-cases, see thread: https://twitter.com/drewm/status/983634762433810432
- "What do you think the best use cases are for a static site generator?" @drewm April 10, 2018
- https://qubyte.codes/blog/automatic-announcement-of-new-blog-entries POSSE to Twitter using Glitch
- Implementing the Indieweb on a static website
- How to POSSE from a static site: https://mxb.at/blog/syndicating-content-to-twitter-with-netlify-functions/
- “ years ago websites were made of files; now they are made of dependencies.” https://onezero.medium.com/the-death-of-the-computer-file-doc-43cb028c0506
- Static Gen: A List of Static Site Generators for JAMstack Sites
- 2019-11-08 Max Böck IndieWeb Link Sharing for bookmarks on Eleventy and Netlify
- Waving a thankful goodbye to: static-websites and more.