Website Stack


I thought it could be potentially useful to give a rundown of how this website works. I believe the solution I've found to build and host this website is quite practical, easy to tweak, and fun! For me at least.

Firstly, how I build the website: raw html and css. I have a template file /template.html that I duplicate whenever I want to make a new webpage. I use a customized version of skeleton.css for styling, and for some conveience layout classes. Besides that, everything is boring straightforward html. No static site generation or server-side rendering, just simple hosting of static html pages. Feel free to view the source to view some of the good ol' handcrafted html! Html is really not bad at all to work with once a solid template and css are in place!

There is a header.html file which is embedded as an iframe in every webpage. This way if I want to change the navigation I only need to tweak one place. Otherwise, I'm not too worried about keeping consistency across the website; it hasn't been an issue yet, and if it does happen it can give the website a feeling of depth, history, and evolution through time. :)

All webpages are written in index.html files which are stored in a directories which corresponds to the url. This works automatically with most http servers, so e.g. dmitrivolkov.com/index.html can be accessed at dmitrivolkov.com, and dmitrivolkov.com/projects/index.html can be accessed at dmitrivolkov.com/projects. This also makes it incredibly easy to add subpages: I just add a subdirectory with an index.html. Furthermore, all resource files (images, audio files, etc.) are stored in the same directory as the webpage. This keeps things nice and organized, and therefore easy to maintain!

To host the website for development, I just run python3 -m http.server in the root directory. The published website is hosted with Netlify, using their free tier. I have Netlify set up to host the website from a GitHub repo, so making the latest changes public is as simple as a git push! I do keep seperate main and deploy branches, so there is an additional merge step, but it goes very quickly and easily. So a tiny bit more complicated than just a push, but not by much! :)

That's about it! Not terribly interesting, but I have found it to be simple and effective! The end.

updated 2022-03-26
All content copyright (c) Dmitri Volkov 2022 unless otherwise noted.