Ask HN: How to build a website that will last 30 years?
It seems like that the first website http://info.cern.ch/ (made almost 30 years ago) still works in a today's browser, but is it possible to build a website that will really last 30 years without any kind of maintenance (i.e. a website that will stay up for 30 years after the author passes away)?
64 comments
[ 3.5 ms ] story [ 144 ms ] threadIt’s a bit of a lost art but still well in the realm of practicability.
I'd think that storage in Amazon S3 and distribution via a CDN would be low maintenance but I'd think some discontinuity would be inevitable in 30 years. (The worst thing that happened in the last 30 years of the web was the transition from http to https, in another 10 years web browsers might quit supporting http entirely.)
The other question is how to pay for it, and the financial tool for this is a
https://en.wikipedia.org/wiki/Annuity
You need to invest some quantity of money and then spend some fraction of it every year. I used
https://www.bankrate.com/investing/annuity-calculator/
and assumed expenses were $10 a month and the investment gets an 8% yearly growth rate and found I had to put in $1,371.92 for the money to last 30 years.
Enforcing HTTPS was one of the best things to happen to the web, when attacks by tools such as Firesheep and nation states doing dragnet surveillance was (is) rife.
Enforcing HTTPS is bad enough, but refusing to support plain HTTP for trivial sites is just arrogant and user hostile.
Say I don't care about the possibility of some of my magazine subscriptions being tampered with. Sure, put some kind of security in place for things that are delivering me important sensitive information — like official government information? I don't know. Forcing that down my throat for Fishing Weekly though, is just pointless. Oh, did hackers change the weight of that record fish? Oh no!
"But security!" is the new "Think of the children".
If “without any kind of maintenance” is the test, then no.
At a minimum you need to sign a contract with an organization and pre–pay for the term you expect them to maintain the site. And you probably need a third party to monitor that organization to ensure they’re meeting the terms of that contract. And pay them as well.
Systems fail. Systems get hacked. Organizations evolve, change, get bought, get shut down, or just die.
I bet someone, somewhere in Switzerland, is tasked with maintaining info.cern.ch and keeping the systems its on up to date and secure, even if the content is HTML 1.0 and the server is responding with HTTP/0.9. Same with the spacejam site.
Barring Internet Archive going into long term site hosting (and not just archiving content under web.archive.org, but archiving under the original host name) I don't think it's realistic to expect any site to stay up once the author/owner/originator stops maintaining it.
And someone does appear to be doing some sort of maintenance because the links to the 1996 Chess Challenge site appear to have been removed whenever IBM lost interest in keeping that site up.
HTML itself will fair well, it's human readable and trivial to parse.
Your best bet is you or the content being important enough for other people to take care of it for you, copying and sharing it, converting it to their media. Of course cultures change, and by 2050 the planet will be barely habitable, so they will change a lot. A culture that decides to preserve your website might get wiped out, or the infrastructure does. There might not be even an internet anymore.
Websites don't require a domain name.
Websites are shopping windows. Think about what would be required to keep the same shopping window alive for 30 years. It's exactly the same with the web.
[1] https://arwiki.wiki/#/en/main
However, there is a way to make minimal maintenance websites.
Make a static website and upload it to a provider that you believe won’t go away for at least 30 years.
Checkout Astro.js for this purpose, you can then upload it to any CDN. I prefer to use bunnycdn due to costs but there are other providers too.
But I think it is possible for the HTML pages of a website to survive. If this can be done, then the website can survive in its original form even when it may not be available in its original domain name.
Here are some things I have done to increase the odds that my personal website would survive for several decades even if the primary website disappears some day:
- The entire website is a collection of static HTML pages.
- All internal links and path references, are relative. In fact, the paths to CSS files, images, videos, audios, etc. are also relative.
- The HTML pages do not loaded any resource from another domain.
- Since I use MathJax on my website to render mathematical content, MathJax is bundled within the website. Further, MathJax is loaded into the pages that need it using relative links only. (This is an example of the previous two points.)
- Stick to text as much as possible. Most pages are just text marked up with HTML. Use images, videos, audios, etc. only when absolutely necessary. Similarly, load MathJax using a relative link only on those pages that have mathematical content.
- Test that if the website is copied to a directory on the local filesystem, one can still navigate the website locally using a web browser. This is possible due to using relative links/paths (instead of absolute ones).
- While the primary copy of the website is hosted at a personal domain name I have registered, I publish a mirror copy on my GitHub account via GitHub pages. Should the primary domain name disappear someday (which did happen once for a few days due to a sinkhole incident), the mirror would still be available via GitHub pages as long as GitHub continues to maintain their service.
Finally, and I don't do this, but one could consider http://web.archive.org/ as well as IPFS to archive the pages of one's website to ensure that tertiary copies of the website also remain on the web.
In terms of working in future browsers you probably use pretty much any spec-compliant CSS. They pretty much never remove anything.
When I build a project, I want it to be as low maintenance as possible. So that even if it never becomes a big commercial success, I can keep it running indefinitely.
The approach I took for my latest project is that I wrote a new static site generator in Python. I could have used Jekyll or something, but all static site generators I tried are much too complex for my liking.
Some of the characteristics of my generator are:
# File based
The content, templates and assets are stored as files on disk. No database is involved.
# Single script
Turning templates, content and assets into a website is not a complex thing. Basically it just means some templating of the content according to the templates. The python script I wrote for it is around 200 lines of code and offers me all the flexibility I need.
The html files it outputs stand a good chance to still function in 2053, just like info.cern.ch still functions today.
Will the Python script still function in 2053? Maybe not with the Python interpreters that ship with the OS, but it will probably still be possible to get a python 3 interpreter.
And it will probably not take more than a few hours to update it to Python 17 or whatever is the current version then.
Setup a trust or other organization with enough funding and a mandate to keep the site going.
Make sure there are backups of the site available in various archives and libraries where it could be accessed if the technology, or maintenance thereof, were to ever fail.
Prepay for hosting, preferably with a bigco that won't go out of business or pivot.
So a 15-year-old coding a website about library cards so many years ago is wonderful, although not even close to the weirdest example :)
However, you still need to ensure the domain and hosting provider are paid to deliver their services.
Even if you add a credit card and enable auto-renew, the credit card will expire long before 30 years are over.