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:

  1. it seemed simple enough, no super fancy things i had to do.
  2. i could just serve it up with flask
  3. 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.