My Website creation
In this article I will present how I created my website.
My goal was to learn, show my learning and present some of my interests.
Domain Name Provider
It took me a bit of time to find the right Domain name provider.
The first ones that are visible usually give you a good price for the first year and then increase their margins.
After a bit of trial and error, i decided to go to
Cloudflare, as their prices were in the lower bracket and they provide some nice functionalities for managing the hosting and the traffic.
Page Hosting
There are a few options there too depending on your context:
- A part of the choice is whether your site has to be static (mainly text) or dynamic (transactions or complex calculations involved). Static is more common and easy to find. dynamic may lead you to consider more tailored providers.
- Another is how tech-savy you are: Do you want to control your code or stay as far away from it as possible.
In my case, my interest was to mostly display texts and be in control of my code.
After a couple of tests with various providers, I decided to continue with Cloudflare since their basic hosting options is free and their worker integration with gitlab is easy to setup.
A mention there to prose.sh that has some very nice ssh deployment features and some interesting looking offers.
Web Development
Again, there are a lot of options / frameworks out there.
- Core Framework: Usual modern web developers use nodejs nowadays to setup the base of their development projects.
- Layout: pure HTML or with a simpler templating "language"? (mention to Pug which I find very neat)
- Javascript frameworks: Angular, React, Vue.js, special mention for the old fashion jQuery.
- Styling Language and framework: Sass or pure css? additional libraries? (tailwind, bootstrap)
As a first approach, I went for a minimalist first approach to keep it simple and reduce the time spend on it.
I might change framework later. But for the sake of agility and simplicity, I went for the following:
- Core Framework: Low tech: Bash script to aggregate files and move into a "distribution" folder. I was against the SPA approach as I was looking into having several pages/article to be referenced.
- Layout: pure HTML.
- Javascript frameworks: None so far, no data manipulation necessary, no complex structure, just text, lists and links
- Styling Language and framework: Minimalist. CSS and pico.css to minimise the amount of code.
Devops
That is a part I wanted to split from the development itself. One thing is the coding, the second is how to deploy (with the goal of automating as much as possible).
That also has an influence on the Core framework mentioned before above. (ie: a node / angular compilation can be quite resource consuming, especially when considering downloading dependencies with npm or yarn).
- Code management: gitlab (is a must. Biggest non-Microsoft, free option for individuals).
- Compilation / Packaging: simple shell script to aggregate common html pieces with specific one for each pages. Script is run upon commit.
- Automated testing: Not there yet...
- Deployment: Hook from Cloudflare to gitlab to deployment content from a distribution folder to its host.
Referencing
I triggered the referencing in google following this documentation: I added a sitemap.txt to my pages and triggered the referencing here.