why this site
well, i know what I want to be working on, and i am not doing that. my current job revolves around plunking json api’s/data for users to work with. not the most exciting thing in the world, but it is far from where i was three years ago. (grinding away on helpdesk tickets, and turning computers on and off again).
tedi0.us
don’t ask me how I got my nickname, it’s a tedious subject.
but a few years ago now, i purchased the domain, and now it’s my main domain where my services run.
it wasn’t until 2025 that i actually stood up the main site, although i’ve had multiple services running in sub domains therein for a couple of years.
after watching the primeagen preach the gospel of htmx, i had the hankering to try it out.
i am no web dev by any means, just a junior dev looking to do something more, but htmx peaked my interest. specifically for a site like this.
the three things I really enjoyed about the idea of htmx:
- it seemed simple enough, no super fancy things i had to do.
- i could just serve it up with flask
- no javascript
i have no true hatred for javascript, i’ve only watched others complaining about it. i just simply didn’t want learn javascript, it doesn’t interest me.
but anywho, it was actually stupidly easy to get the first couple of ideas going.
i know i wanted a simple design. and i know i wanted to try my hand at pre-loading.
since this is almost all html, the only thing i needed for the htmx side, was the pre-loading. so i import that on whatever page–<script src="https://unpkg.com/[email protected]/preload.js"></script>.
then i call it on the nav partial.
<nav hx-ext="preload">
<a href="/" preload="mouseover">home</a>
<a href="/about" preload="mouseover">about</a>
<a href="/blog" preload="mouseover">blog</a>
</nav>
boom. so now i have pre-loading. you can see it in the console when navigating the pages.
the most tedious of times, or i should say the most boring, was just creating the routes.
since we’re pre-loading, i wanted to remove the cache after a period of time.
@app.route('/blog')
def blog():
posts = get_posts()
response = make_response(render_template('blog.html', posts=posts))
response.headers['Cache-Control'] = 'private, max-age=60'
return response
where the max-age is 60 seconds, and we just return the template i have in the templates directory. and basically just did that for the other routes.