Sounds (over)complicated. Isn't just a static html webpage on php/js backend with sqlite or even without, just grepping logs via cron, do the trick?
Having Nginx as a front-end, with static file caching enabled, would handle just fine the load from HN front page even on a RPi.
(1) turn on an ec2 host
(2) write a Python script to serve the image (degrading it on every call)
(3) configure nginx to ffi to the script.
https://docs.ycombinator.lol has been running for years without fail. It’ll probably shut off someday and be lost to history, but I’d bet on it lasting a lot longer than that ec2 instance. Free, too.
Vercel looks to be some service that deploys pre-built apps (geared towards nodejs/react, hard pass).
Maybe to someone who only knows "modern web dev" it seems like a parody, most people don't start with "let's learn 10 overcomplex frameworks and use a template generator which only takes one step".
For generating horrible bloated apps as fast as possible you may have something "easy", I will probably never use vercel, I'm much more likely to write a script and expose it on a port somewhere.
Unless I've misgauged vercel and you can feed it a python script or something...
You already have shared code, utils, infrastructure to deploy.
Personally I like to have all projects in the same language.
For instance the distorted image is being loaded as base64 data blob within the html. The size of that page is 401kB, most of which is in that base64 data. The actual jpeg is just 97kB (the non-distorted image is about 300kB). If the image is served separately, browsers will cache it for those who just reload the page (there is no need to update it anyway, since it is updated on the server every 400 requests only).
So with a 100Mbps connection you can easily (assuming unique users, thus no caching in the browsers) serve not just tens requests/s, but over a hundred requests/s. Put image on CDN, pre-degrade it to have many levels, and with the same server just serving html, you can do thousands request/s.
Your way sounds more complicated.