What I've learnt about Websites
You can create cool static websites with these SSG frameworks.
And also with Remix.
Which frameworks?
I mean, with: HUGO, Astro, NodeJS, jekyll…
And if you are new to Websites, do it (The Web Deployment) with Github Pages to get a free subdomain with it.
If you come from a Data Analytics domain and this sounds too far out of reach. You are wrong.
I discovered static sites thanks to using first Flexdashboards in R language.
These dashboards are consolidated into “just” html information, like static sites.
And you bet, they are cool and functional.
Features for Webs
Features that most likely, you will want on your Website:
- Pre-Requisites: Fast and Secure (SSL, https)
- Search: Pagefind, FuseJS,…
- Scheduled Posts
- Internationalization (i18n)
- A CDN?
- APIs: Forms, Newsletters, email marketing…
How to get OpenGraph - OGImage right 📌
- As seen in Web3Templates - Stablo Theme or in AstroVerse/VisVRS
- For HUGO, HUGO Theme Gallery has OG done right
How to Include Search to SSGs 📌
Description | Link |
---|---|
PageFind with Astro | VisVRS/AstroVerse Example |
FuseJS with Astro | AstroEngineeringBlog Example |
FuseJS with HUGO | AstroEngineeringBlog Example |
Ghost | Compose Overview |
And some add-ons:
- Calendar meetings: see cal.com
- Newsletters: see mailerlite.com
- Payments? Try stripe which links with paypal, bank accounts, CC’s
- Web Analytics - Id go for GDPR compliant and cookieless, like: umami, tianji
- Uptime Monitoring
- Chatbot with AI?
- Optional: Social Contacts,…
Deployments
Select a SSG
Choose the SSG (Hugo, Astro,…) And find/create a theme you like
Tweak the Theme and Build
Tweak the theme so that it looks even better
Make sure that the preview works!
Local build and last check
#option1
cd public
python3 -m http.server 8099 #8000
#option2
npm install -g http-server
http-server -p 8000
Select the Deployment Method
There are few alternatives to host a static website:
- Firebase
- Github Pages or Gitlab Pages
- Cloudflare: CLI or CF connected to a GH Repo
- AWS S3 Buckets - https://blog.cavelab.dev/2021/08/deploying-hugo-blog-to-s3/
- Others: Vercel, Netlify,…
- SelfHosting Static Websites!
Free SSG Deployment - Firebase CLI, Cloudflare Wrangler CLI…📌
- With Firebase, the Free Tier allows for up to 10GB for ppl to download your content.
Per month, and at least at the time of writing. This might (or not) change.
#npm install -g firebase-tools
#firebase login
firebase init #configure files for firebase hosting / public directory is normall public for HUGO and dist for Astro/nodes
firebase deploy #you will get something like -> https://jalcocertech.web.app/
- You can also try with Cloudflare Workers and Pages or Github Pages.
Get Better at Webs
- An overview of JS and CSS is always good!
<a class=“hextra-card group flex flex-col justify-start overflow-hidden rounded-lg border border-gray-200 text-current no-underline dark:shadow-none hover:shadow-gray-100 dark:hover:shadow-none shadow-gray-100 active:shadow-sm active:shadow-gray-200 transition-all duration-200 hover:border-gray-300 bg-transparent shadow-sm dark:border-neutral-800 hover:bg-slate-50 hover:shadow-md dark:hover:border-neutral-700 dark:hover:bg-neutral-900"href=“https://roadmap.sh/frontend" target="_blank” rel=“noreferrer”>Front End RoadMap
<a class=“hextra-card group flex flex-col justify-start overflow-hidden rounded-lg border border-gray-200 text-current no-underline dark:shadow-none hover:shadow-gray-100 dark:hover:shadow-none shadow-gray-100 active:shadow-sm active:shadow-gray-200 transition-all duration-200 hover:border-gray-300 bg-transparent shadow-sm dark:border-neutral-800 hover:bg-slate-50 hover:shadow-md dark:hover:border-neutral-700 dark:hover:bg-neutral-900"href=“https://roadmap.sh/backend" target="_blank” rel=“noreferrer”>Back End RoadMap
- Web Analytics: you have several options, with Umami or Tianji as alternatives to Google Analytics.
Setup a Static CMS
There are many alternatives! /blog/cms-for-static-websites
FAQ
Enhancing a Website - Comments, CDN and Videos… 📌
CDN and Videos for your Website: https://github.com/orthdron/subatic - Extremely simple video hosting Site that scales with you
How to Optimize Web Images - WebP 📌
Better Colors for your website 📌
How to get the HEX colors of websites - SmartColorPicker extension
Explore HEX colors with Color Picker Chrome extension
snap install rickrack
Generate harmonious colors freely on your desktop
https://github.com/adobe/leonardo?ref=fossengineer.com -
Apache v2 | Generate colors based on a desired contrast ratio
- See more here
You need markdown for these SSGs. And there are cool markdown tools:
docker run --rm -dp 3030:3030 cveinnt/letsMarkdown
MIT | The last Markdown editor, ever.
Icons and FavIcons
For regular ICONS:
- Iconify is a great place to start.
MIT | Universal icon framework. One syntax for FontAwesome, Material Design Icons, DashIcons, Feather Icons, EmojiOne, Noto Emoji and many other open source icon sets (over 150 icon sets and 200k icons). SVG framework, React, Vue and Svelte components!
MIT | beautifully crafted animated icons
ISC | Beautiful & consistent icon toolkit made by the community. Open-source project and a fork of Feather Icons.
- Images for Web:
At the moment when you will need proper FAVICONS:
About favicons 📌
- FavYcon - https://github.com/ruisaraiva19/favycon
MIT | Favycon - A favicon generator tool. Discovered thanks to this Hextra theme!
Real Fav Icon Generator 😍 and place in the the proper folder (where the default icons are on your Theme).
Cool FavIcon with: https://favicon.io/favicon-converter/ - You can upload an image, then you will get the
favicon.ico
and other artifacts to make the web icons look amazing in any device.
How to add favicons to your SSG?
- Go to the theme folder
- Add a
./static
folder - Add the files generated with the website
Is my website performing well?
See also https://search.google.com/search-console/
Check that the SiteMap Works 📌
#curl -s https://example.com/sitemap.xml -o /dev/null -w "%{http_code}\n"
curl -s https://jalcocertech.xyz/sitemap.xml -o /dev/null -w "%{http_code}\n" #200 means its there!
curl -s https://cyclingthere.com/sitemap.xml -o /dev/null -w "%{http_code}\n"
curl -s https://cyclingthere.com/sitemap-index.xml -o /dev/null -w "%{http_code}\n" #its here!
curl -s https://iotechcrafts.com/sitemap.xml -o /dev/null -w "%{http_code}\n"
curl -s https://fossengineer.com/sitemap.xml -o /dev/null -w "%{http_code}\n" #hugo paper mod has it
#optional - check robots.txt
curl -s https://jalcocertech.xyz/robots.txt | grep -i sitemap #look for sitemap direction
curl -s https://iotechcrafts.com/robots.txt | head -n 10 #see the first 10 lines
#example of path with robots
curl -s https://bachatafests.com/sitemap.xml -o /dev/null -w "%{http_code}\n"
curl -s https://bachatafests.com/robots.txt | head -n 10 #see the first 10 lines
curl -s https://bachatafests.com/robots.txt | grep -i sitemap #look for sitemap direction
curl -s https://bachatafests.com/sitemap_index.xml -o /dev/null -w "%{http_code}\n"
Search for any references to a sitemap URL within the
robots.txt
file.
If found sth, you can use that URL to check for the sitemap instead!
Notify Google/Bing about your Website Changes based on the sitemap 📌
There are some Interesting Search Engines available:
- Ecosia.org / qwant.com / Brave / DuckDuckGo / …
- Whoogle/SearXNG
- Bing
And for you to get traffic, you need SE to be aware of your awsomeness:
- To ping Google’s engine to review your site’s sitemap:
curl "https://www.google.com/ping?sitemap=https://www.example.com/sitemap.xml"
- Don’t forget about Bing Search as well:
curl "https://www.bing.com/ping?sitemap=https://www.example.com/sitemap.xml"
It’s worth to try few of them.
Not all the content is indexed in the same way across engines and you can miss valuable info.
MIT | 🕵️♂️ All-in-one OSINT tool for analysing any website
See how a linkshortener see your site: https://dub.co/
Does the site have Broken Links?
#podman run --rm -it ghcr.io/linkchecker/linkchecker:latest --verbose https://jalcocert.github.io/JAlcocerT/ > linkchecker_output.txt
docker run --rm -it -u $(id -u):$(id -g) ghcr.io/linkchecker/linkchecker:latest --verbose https://www.example.com
You will get a summary in the end of the file with:
Statistics:
Downloaded: 26.0MB.
Content types: 234 image, 202 text, 0 video, 0 audio, 8 application, 0 mail and 2209 other.
URL lengths: min=14, max=880, avg=58.
That's it. 2653 links in 2653 URLs checked. [1;33m20 warnings found[0m. [1;31m24 errors found[0m.
Stopped checking at 2025-03-05 10:43:17+000 (3 minutes, 9 seconds)
You can use LinkChecker within a GHA workflow
Other Software to Create a Web Pages
Does all of this sounds too complex for the first website?
Then, Try with:
GPL3.o | Create, Copy, Modify landing pages for all your needs
- Writefreely (but does not provide a docker container for a quick spin)
aGPL3 | A clean, Markdown-based publishing platform made for writers. Write together and build a community. Does NOT provide a clear container for SelfHost.
- Other ways to get a personal blog
The Small Web
A very interesting concept, for minimalistic sites: