Projects

Affiliate content site
Swedish buying guide for robot lawn mowers, living on the internationalized domain bästarobotgräsklippare.se. Server-rendered comparison content built for organic search.
- Next.js
- TypeScript
- Tailwind CSS

Affiliate content site
Swedish comparison site for robot vacuum cleaners — reviews and buying guides, part of the same family of SEO-driven guide sites.
- Next.js
- TypeScript
- Tailwind CSS

Affiliate content site
Swedish buying guide for air purifiers — the third of the SEO-focused comparison sites, sharing the same server-rendered Next.js setup.
- Next.js
- TypeScript
- Tailwind CSS

Esports tournament platform
Full-stack tournament platform: React front end, Express API on Supabase, Stripe payments, a Discord bot for match operations, plus a Strapi CMS and a separate stats backend.
- React
- TypeScript
- Vite
- Express
- Supabase
- Stripe
- Discord.js
- Strapi
Productized service site
A service selling custom-built Discord bots, with Stripe checkout and transactional email through Resend.
- Next.js
- TypeScript
- Tailwind CSS
- Stripe
- Resend

Company website
Brand site for the esports broadcast and production company PXB Media, with content managed headlessly in Contentful.
- Next.js
- TypeScript
- Tailwind CSS
- Contentful

Web app
Turns your recipes into a print-ready cookbook — PDF generation in the browser, Supabase for storage, and Stripe-powered checkout.
- React
- TypeScript
- Vite
- Tailwind CSS
- Supabase
- Stripe

Company website
Website for a Swedish business advisory and consulting firm — a clean, fast, SEO-optimized Next.js build.
- Next.js
- TypeScript
- Tailwind CSS
AI web app
AI-powered book report generator — pick a template, let the AI draft the report, pay through Stripe.
- React
- TypeScript
- Vite
- shadcn/ui
- Stripe
Agency website
Swedish web agency that builds, maintains and optimizes websites for small businesses.
- React
- TypeScript
- Vite
- Tailwind CSS
- Supabase
Travel content site
Curated weekend itineraries for Paris — statically generated, with the guides written in MDX.
- Next.js
- TypeScript
- Tailwind CSS
- MDX

Federation website + custom CMS
Official site of the Swedish Esports Federation, built as a freelance project with a headless Strapi CMS so the federation can publish news and content themselves.
- Next.js
- TypeScript
- Tailwind CSS
- Strapi
- Resend

Community site
Community hub for the Swedish Age of Empires II scene, with community data backed by Supabase.
- React
- TypeScript
- Vite
- Tailwind CSS
- Supabase

Web app / directory
A Swedish library of AI prompts — browse, search and share prompts, all stored in Supabase.
- React
- TypeScript
- Vite
- Tailwind CSS
- Supabase

Fintech web app
Helps Swedish crypto traders sort out their taxes — a Next.js app with Supabase for data and Stripe for payments.
- Next.js
- TypeScript
- Tailwind CSS
- Supabase
- Stripe

Content site / blog
Statically generated blog about all things remote work, with posts written in Markdown.
- Next.js
- TypeScript
- Tailwind CSS
- Markdown

AI web app — in progress
An AI travel companion for planning the best route between destinations. Currently in development.
- React
- Vite
- Tailwind CSS
- Framer Motion

Personal site
This site — including a walkable 3D village version of my CV built with React Three Fiber.
- Next.js
- React
- Tailwind CSS
- Three.js
- React Three Fiber

Esports platform — professional work
G-Loot's esports platform, now part of Challengermode. Not a personal project — I worked on it professionally as QA Developer and later Frontend Developer.
- TypeScript
- React
- Next.js

Esports organization
Non-profit esports organization where I've served on the board since 2017 and helped create the Phoenix Blue Event Series.
- WordPress
