Intro

Over the years, I have rebuilt this site with different languages. I started out with Python/Django, then Ruby/Rails, then Node/11ty. Last time, I rolled my own static site generator in Rust, and that was going to be the last time. BUT! ... I couldn't help myself and I rebuilt it again, this time with ... even more Rust. In this post, I will cover the process and technologies I used to build and host https://codingpackets.com

Theme

The sites colour theme (both light and dark) is inspired by the glorious catppuccin. I seriously love this theme so much.

I use this page to test out the look and feel of the site and test how the various snippets I use throughout the site look.

CSS

Once again, I am using tailwindcss for page styling. Tailwind has been really nice to use and I'll continue to use it in the future. It's really great when you use snippets and components to unify the sites style. I have also upgraded to the latest version 4.x.

Font

The beautiful Recursive font is used for the site fonts. Recursive is a variable font, not just in size, it also has both Sans and Mono variants build in. Additionally, I use a 3rd custom variant for the Serif font. Score 3 fonts for the price of 1.

Icons

Icons are stll provided by Font Awesome. It's served me well for many years and I have not felt the need to find another font library yet. I also upgraded to version 6.x

Syntax Highlight

Code blocks use the gorgeous Gigavolt colour theme, thanks once again to the marvelous highlight.js library.

Web Framework

The Axum web framework has been a staple for some of my recent projects. It's very versitile and integrates well with rest of the Tokio ecosystem. A bonus is, it includes a high performance web server, so no need for Apache or NGINX.

HTML

As a fun experiment, I created a HTML rendering engine HTMLatron. It creates HTML markup from Rust code and is inspired by FastHTML.

This allows me to build the site pages in plain old Rust code. No Template language required. The nice thing about this, is you have access to all the language features and keep the benfits of type safety and compile time validation.

Hosting

I am self hosting the site now. Cloudflare sits in the frontend providing TLS, CDN and other nice features. Which is rather amazing considering it's all available in the free tier. The site itself is running in a Docker container on the backend and connected to Cloudflare, via Cloudflare Tunnels. To read more about how this is setup, check out this post.

It's Dynamic

In the last couple of iterations, the site was built as a static site. Pages were all built and written to disk and served when requested. I wanted to implement some dynamic content into the site, so it made sense move back to a dynamic generation model. Now when a page is requested, it's dynamically built as part of the request.

Outro

And that's the story of how I met your mother 😂

✌️ Peace out nerds. Stay weird! ✌️