June 17, 2025
Worked a bit more on the Stats card, for rapid testing & development I made this using UnoCSS. All the values are currently static and hardcoded, but I have already mapped out the way I will make them dynamic (yes, including the commits graph, which btw shows commit count over past 7 weeks)
If you have any ideas on what else I should put here, let me know in comments (for reference, I am aiming to add this SVG into my github profile readme)
I did think of adding my average WPM from monkeytype, but that's the only think i have in mind rn
Uhm, I did not think of making this a SoM project before, hence why 6+ hours of work.
Basically currently only the hero or header section is done, I am still thinking of how I want the next sections to look. I also tinkered with a stats endpoint in Astro.
Basically like github-readme-stats but built from scratch. Previously I thought of using an astro page as the endpoint, but realized that astro adds Doctype HTML and other html specific tags, which simply wouldn't work as I wanted a pure SVG out of it, so I had to use a typescript endpoint, BUT that meant i couldn't use astro in that endpoint.
That gave me a pretty nice excuse to introduce my favorite frontend framework of all time into the project, Svelte!
The stats card is a svelte component that is rendered by the typescript endpoint, which returns an svg, and I can use all the cool svelte tricks in the svg like loops, conditionals and more!
For now the /stats.svg
endpoint returns a simple test svg, which shows the current time on the server (since it's rendered there) and caches the response for 5 minutes, which seems to work pretty fine.
Redesign of my previous portfolio. Made from scratch with Astro and styled with UnoCSS. It is a fully static site (except the /stats.svg endpoint) without any client side Javascript. It contains an `/stats.svg` endpoint, which returns a server rendered SVG to be used in my Github profile README. It uses an Astro endpoint written in typescript to gather details from various sources (github for commit history, hackatime for code time, etc) and then renders them in an `foreignObject` tag inside the SVG, which makes it so that we can use regular HTML and CSS for styling. The SVG is cached by the Vercel CDN for an hour, which prevents over usage of the endpoint Vercel function.
Upgraded to Svelte 5 and removed everything from previous codebase to start from scratch.
Added an experimental status route, which currently returns experimental data with server status.
Test it out by going to https://mc-server-status.zvikasdongre.workers.dev/api/status?host=&port=
(SRV Records do NOT work yet!)
Get current status of any Minecraft server instantly! This is a rewrite of the previous version, with Svelte 5 and my own code to send raw TCP packets to the minecraft server. One of the most special feature that sets this status checker apart is regional latency, as it runs on Cloudflare Workers, it can query the server from one of the nearest Cloudflare datacenter from the user!
This was widely regarded as a great move by everyone.