Skip to content
View FabianKoder's full-sized avatar
  • Austria
  • 13:00 (UTC +02:00)

Block or report FabianKoder

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
FabianKoder/README.md
Fabian Koder – header card with live Vienna time, weather and view counter, rendered by a Cloudflare Worker

Servus! 👋 I build things for the web from Austria – TypeScript first: React/Next.js and Vue/Nuxt on the front, Node.js and C#/.NET on the back, and an unreasonable amount of Cloudflare (Workers, KV, R2, Durable Objects, …) in between.

The header above isn’t a screenshot or a video: it’s an SVG rendered on every page view by a Cloudflare Worker – live local time, current Vienna weather, my probable state of consciousness, and a view counter backed by a Durable Object. Refresh and watch the render number climb.

Currently

  • 🛠️ Day job: improving durchblicker. TypeScript, Next.js, Node.js
  • 🌙 On the side: Gallows Road. A social deduction game in the browser with an upcoming mobile app.
  • 📚 Poking at: Perfumery (creating fragrances and exploring scent combinations)
My latest public GitHub activity, rendered live at the edge A year of GitHub contributions as a warm amber heatmap, with today's cell selected Figma-style
⚙️ How this README works

GitHub READMEs allow no JavaScript – but images are fetched fresh through GitHub’s camo proxy. So the “live” parts of this page are SVGs, rendered per request at Cloudflare’s edge:

flowchart LR
    V["Profile visitor"] --> C["GitHub camo proxy"]
    C -->|"Cache-Control: no-cache"| W["Cloudflare Worker"]
    W --> S["Satori – HTML to SVG"]
    W --> K[("Workers KV<br>fonts · weather · github")]
    W --> D[("Durable Object<br>view counter")]
    K -.->|"cache miss"| O["Open-Meteo API"]
    K -.->|"cache miss"| G["GitHub<br>events API · profile graph"]
Loading

Weather comes from Open-Meteo, activity from the GitHub Events API, the contribution heatmap straight from the profile page's own graph – same numbers you see on github.com (all cached in KV) – fonts are baked into the SVG as paths, and the animations are plain SMIL – no client-side code anywhere.

🐇🥚 fabian --help
USAGE: fabian [OPTIONS]

OPTIONS:
  --stack      ts, node, react, next, vue, nuxt, csharp, dotnet, cloudflare
  --location   Austria (UTC+1/+2, complains about both)
  --coffee     required – do not run without it
  --deploy     preferably on a Friday. What could go wrong.
  --contact    linkedin.com/in/fabian-koder

Want to talk shop – Workers, TypeScript, or why the heatmap is amber? Find me on LinkedIn.


Served by Cloudflare Workers · Rendered with Satori · Made in Austria 🇦🇹

Popular repositories Loading

  1. kysely-d1 kysely-d1 Public

    Forked from aidenwallis/kysely-d1

    D1 dialect for Kysely

    TypeScript

  2. testing testing Public

  3. curl-generator curl-generator Public

    Forked from albertodeago/curl-generator

    A small, dependency free library to get curl snippets

    TypeScript

  4. storyblok-react storyblok-react Public

    Forked from storyblok/storyblok-react

    React SDK for Storyblok CMS

    TypeScript

  5. nextjs-turbo-redis-cache nextjs-turbo-redis-cache Public

    Forked from trieb-work/nextjs-turbo-redis-cache

    Designed for speed, scalability, and optimized performance, nextjs-turbo-redis-cache is your go-to solution Next.js cache handler for demanding production environments. If you use the app router an…

    TypeScript

  6. FabianKoder FabianKoder Public