https://github.com/maxhoffmann/100-year-stack
low-maintenance high-performance tech stack
https://github.com/maxhoffmann/100-year-stack
Last synced: about 1 month ago
JSON representation
low-maintenance high-performance tech stack
- Host: GitHub
- URL: https://github.com/maxhoffmann/100-year-stack
- Owner: maxhoffmann
- Created: 2025-06-20T06:59:58.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-08-02T23:05:51.000Z (8 months ago)
- Last Synced: 2025-08-03T01:07:06.785Z (8 months ago)
- Size: 6.84 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 100-year-stack
Inspired by [Alexander Petro’s talk](https://www.youtube.com/watch?v=lASLZ9TgXyc), this repo documents and possibly offers an implementation for a 100 year web service.
## Goals
- prevent breaking changes by choosing very few and stable dependencies
- serve a small to medium size audience
- be fast and reliable by using web standards
- make using web standards convenient without adding custom APIs
## Tech Stack
There are a lot of choices to achieve these goals. Alexander also suggests a tech stack. This is my interpretation in 2025:
- **fastify.js**
There are a lots of router libraries for the JS server ecosystem. While Alexander suggests using `express`. It has a fewer breaking changes than fastify (10 years between v4 and v5). But it’s also 4 to 5 times slower than fastify. Fastify released major versions after about 2 years, which is a good timeframe in my opinion and they have an [LTS commitment](https://fastify.dev/docs/latest/Reference/LTS/).
- **SQLite**
Probably the simplest database that is also battle-tested and has a very strong [LTS commitment](https://sqlite.org/lts.html).
- **CSS**
It might be weird to just list a browser technology, but this is intentional. CSS has evolved and continues to evolve, offering everything needed to build robust and flexible design systems. Every layer on top of it, is an unnecessary liability.
- **HTML**
Whatever can be done with HTML, should be done with HTML. This includes native web components.
- **HTMX/Datastar**
If none of the technologies above suffice, JavaScript may be used. JavaScript on the client side is a tricky subject, as there is an ocean of libraries with frequent breaking changes. [HTMX](https://htmx.org/essays/future/) and [Datastar](https://data-star.dev/essays/the_road_to_v1) are both committed to long term stability.
## Todo
- [ ] add basic fastify server
- [ ] add SQLite database with proper pragmas
- [ ] add example routes with db connection and rendering
- [ ] add CSS structure using its capabilities like @layers, custom properties, view transitions etc
- [ ] add HTMX/Datastar
- [ ] add Dockerfile for easy setup