ezBadge v2: Now in Stunning Javascript HD

| programming | software | javascript |

If you have ever wondered what it looked like to convert an application from Python to Javascript, you are in luck. After finishing ezbadgeyesterday, I came to the realization that the entire thing could and should have been written in Javascript. There is absolutely no reason for this thing to send any requests to a server in order to process the URL and render the markdown.

So, I did just that. Introducing, ezBadge v2 After removing all of the Flask, I was able to create two Javascript functions that essentially did the same thing as the Flask app was doing for me.  The added benefit is that other than serving the initial HTTP request, I do not have to handle any additional requests and the entire thing now runs in the browser.

This was a fun little exercise, and I think the Javascript version of this application is a bit more elegant. Rather than appending the template with Jinja as I was doing before, I am now spawning a modal (after doing some form validation) and then using the Marked library to render the preview of the badge markdown. I could have done all of the UI stuff with Flask without any issues, but the fact that the entire thing now runs in the browser saves bandwidth, computing resources, and time.

You can see the transformation for yourself in the ezBadge GitHub repo. In the next iteration of ezBadge I plan on adding more choices for the types of badges that you can make. If you have any suggestions please feel free to leave a comment here or open up a github issue.

Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.

Check out some more stuff to read down below.

Most popular posts this month

Recent Favorite Blog Posts

This is a collection of the last 8 posts that I bookmarked.

Articles from blogs I follow around the net

Sharing group_var variables across Ansible inventories

The problem Some time ago I worked with a customer that used Ansible to deploy a multitude of applications across their individual TAP1 environments. Unfortunately the Ansible inventory was setup in such a way that group_vars variables for a specific applic…

via Louwrentius December 20, 2025

Thoughts on MCP

I was listening to a recent Vergecast episode the other day, and in there, there was a whole segment about MCP servers and AI-powered shopping. I’ll be honest, I’ve never been more confused about something tech-related. The more I read and listen …

via Manuel Moreale — Everything Feed December 20, 2025

2025 LLM Year in Review

2025 Year in Review of LLM paradigm changes

via karpathy December 19, 2025

Generated by openring