Tools website updates

Published 2025-11-17

tag(s): #programming #meta

https://tools.sebasmonia.com got a little make over, and one new tool.

The most important change, I guess, is that the Pastebin clone is the only tool that doesn't require a log in. For all others, you need an "account".

Changes to what was already there

Let's start with the account stuff then.
A friend of mine made me notice that the Image Manipulator's ability to fetch an image for you, from any URL, could be abused in many ways.
So I added logins to the site.
And that opened the door to the last new tool (more on that later).

Also, the code got a big makeover, I split things in more packages.[1]
It is interesting how doing that made me realize that I was leaking a bit of behaviour here and there. Functions to save pastes that also returned HTML, display code that accessed internal structures of other things. I was really careful, but still.
The other realization I had with this, is that adding more packages isn't difficult or complicated. Whenever I start another project, I will modularize it from the start. Pinky promise.

With that clean up, I also decided I needed a better way to generate HTML than just concatenating strings. Most of the HTML is still sourced from plain old files, but for things that are generated on the fly, I am using this generator: hsx.
It's easy to use and perfect for the little snippets I add some pages.

A new tool, "stack of links"

Behold!

Screenshot of the SOL website.
(direct link to image)

I guess this will be the last one for a while, because I am out of ideas.
So much out of ideas that I basically created my own clone of a little tool someone else showed me.[2] It is a tool to store links to read later. It isn't "the poorest Instapaper knock off"...well, it is. But it is also a "perfect clone" of the original work. If you look at it that way, it isn't a knock off ;)

The only real difference is that the original uses a table for the list of links, and mine an <article> for each link. So I can claim it is modern, I guess. Semantic 👌
I also used a Common Lisp system for SQLite, so the links are stored in a local database, which is nice.
Taking advantage of this, I modified the auth stuff to use a database too, instead of a text file in the server 👀 and then I figured I could make one more change...

A silly thing: "x-hoagie-key"

I created Peanut Butter thinking it should be easy to use via curl, so I could quickly call it via the CLI or Emacs to store pastes.
And then I made sure IMAN also supported that usage, even though with all the typing, it is just more convenient to go to the webpage.[3]

For "Stack of Links", I though why not make it convenient to add a link to your reading list via CLI (or, via an Emacs wrapper...). Which also required authentication, since you don't want people adding links to your stack. Everyone's stack is sacred, of course.

So, for example, to add a link to your reading list, you use...


  curl -H "x-hoagie-key: the_api_key" --data-urlencode "link=https://example.com" https://tools.sebasmonia.com/sol/add
    

Calling the header x-hoagie-key is juvenile and silly, and I frigging love it. 🤣

Footnotes
  1. Common Lisp equivalent of namespaces, more of less?
  2. Well, Peanut Butter is a Pastebin. There are dozens of pastebin projects. And Image Manipulator is also a (poor) copy of something else I saw online. So I guess nothing in that site is original. 😁
  3. When I wrote a post recently, I resized an image using IMAN. And I was over the moon! Sadly I couldn't share the good news with anyone :( so I am resorting to this footnote to let you, dear reader, know :D

Share your thoughts (via email)

Back to top

Back to homepage