Geizhals
- Role —
- Senior Frontend Engineer
- Date —
- 2019 – Present
- Stack —
- Svelte, SvelteKit, TypeScript, Vite, Playwright, Claude Code
TL;DR: Leading the incremental, in-place migration of Geizhals’ frontend from Preact to Svelte 5 and SvelteKit — Vite, Playwright, and Claude Code as a daily driver.
Geizhals compares prices across millions of products and serves a large share of Austria’s online shoppers. The frontend was a Preact and Less codebase that had grown for years — fast enough, but expensive to change and increasingly hard to hire for.
Rather than a rewrite, we’re replacing it in place as a team. Svelte 5 and SvelteKit ship alongside the existing app, route by route, so every step is releasable and reversible.
What that involved
- Moving the build from Webpack to Vite, which cut local feedback loops from tens of seconds to near-instant and made the incremental migration practical in the first place
- Establishing the automated testing setup — Playwright for end-to-end flows and visual regression — so a shared component can be swapped without waiting on manual QA
- Defining the component boundaries between old and new, so a Preact page and a Svelte page can coexist without duplicating state or styling
- Working with Claude Code as a daily driver on the codebase, with our conventions packaged as reusable Skills so the migration doesn’t depend on any one person’s prompting
Beyond the main platform, I build internal tools with React, Vue and Sass, and the transactional e-mail templates with Maizzle and Tailwind.