Projects
Apps, games, websites and open-source tools I've designed, built and shipped.
Browse by tag
iOS11Games9Web7Productivity6Cloudflare4C#4Design4Docker4dotnet-script4GameDev4Svelte4.Net3Jekyll3JavaScript3HTML2iPadOS2Learning2macOS2Testing2AI1Analytics1ASP.Net Core1Astro1Blogging1C++1CSS1GitHub Pages1Health1Navnedag1Privacy1Python1Stoic Focus1Swift1SwiftUI1Visual Studio Code1Workflow1Xamarin1Xamarin Forms1

Pantelapp - hold orden på pant
Skann, lagre og bruk i kassen
A Norwegian app that keeps bottle deposit slips safe on your phone. Scan a slip and the barcode, amount, and store are read for you, ready to show at checkout, add to Apple Wallet, or share with whoever is doing the shopping.

Scratch a Saying
Daily inspiration to share
Scratch away the foil to reveal one of more than 2,600 sayings. Save favorites, choose which categories go into the deck, and share each saying as a clean image card.

Olsen - Crazy Eights Card Game
Cozy Norwegian offline classic
A Norwegian card game in the crazy eights family, with AI opponents that have real personality. Play with one hand, no wifi needed. The same game on every screen.

ISBN Book Scanner & Library
Catalog shelves, track reading
Scan a book's barcode and it lands in your library. Shelf Check catches the books you already own before you buy them twice, and everything exports to Goodreads.

SinceTag: Release Dashboard
Track unshipped work in git
A release dashboard for local git repositories. The projects with the most unreleased work rise to the top, each card carries its GitHub Actions or Cloudflare build status, and Next and Launch lists hold what is left before and after a tag.

Stoic Focus: Daily Quotes
Notifications and favorites
A daily Stoic companion with over 450 quotes from 12 sources, daily notifications, favourites, and browsing by philosopher and source work.
Simplest Workout Tracker
Calm log, reads Apple Health
A calm exercise log. Tap the day, note what you did, and watch the streaks build toward a yearly goal. Workouts from Apple Health and your Apple Watch can show up on their own.

Golden Ratio Calculator Pro
Aspect Ratio for Layouts
Know one side of a rectangle and want the other without doing the math? Type a width or height, pick from 12 ratios or save your own, and get the value right away. Or enter both sides to detect the ratio.

Birthday Reminder++ Calendar
Countdown & ages from contacts
Birthdays straight from your contacts, with today's celebrations on top and the rest sorted by days left. A notification at 9 in the morning tells you who has a birthday, and a tap sends a prefilled greeting.

Name Days Norway & Calendar
Reminders for your contacts
A calendar for the old Norwegian tradition of name days, 961 names across 363 days, with today's names on top. It also finds the name days in your contacts, can remind you at 9 in the morning when one of them celebrates, and opens a greeting ready to send in one tap.


Norske barneleker →
A Norwegian activity bank for children aged 2 to 12, with step-by-step games and activities filterable by age, place, time and equipment, for parents, kindergartens and after-school clubs. Built with Astro.
Norske kortspill →
A Norwegian catalogue of known and lesser-known card games. Read the rules, and play the best ones right in the browser or with a companion app. Built with Svelte.
Norske terningspill →
A Norwegian catalogue of dice games with simple, clear rules for games you can play with ordinary six-sided dice, filterable by players, length and age. Built with SvelteKit.
Norske eventyr →
A digital collection of classic Norwegian folk tales by Asbjørnsen and Moe, organised in thematic collections and presented with inspiration from traditional folk art. Built with SvelteKit.
Nordic Card Games →
An English-language catalogue of traditional Nordic card games, with simple rules for classics like Cucumber, Hearts and Amerikaner, filterable by players, length and age. Built with SvelteKit.
Eurovision Song Contest Drinking Game
A celebration of cliché: a small drink for every Eurovision cliché, a large one each time a cliché is broken. The rules for an unforgettable evening.
Pappaperm →
A Norwegian site documenting my paternity leave. It turns out being a father and food blogger is a full-time job. Built with Jekyll.
Veibelysning i Vanvikbakkan →
A small Norwegian site detailing the choice of roadside lighting for a specific road in a small town.


Klondike →
The timeless solitaire classic. Build the foundations, solve the tableau, and chase that satisfying final cascade. Clean, fast and relaxing.



Command line Tic Tac Toe →
One of my first games in C++, and the first with AI. A command-line Tic Tac Toe whose garage-level AI should win or draw when it moves first.

umami-swift
A small Swift package that sends app analytics to a self-hosted Umami backend, privacy-first with no IDFA and no App Tracking Transparency prompt. Built for iOS, macOS and watchOS, with no third-party dependencies.
NotifyPropertyChanged.Verifier
A fluent xUnit extension for testing INotifyPropertyChanged implementations in view models. A .NET Standard 2.0 library for .NET Core and the full framework.
Jekyll YAML front matter validator
A dotnet script that validates Jekyll YAML front matter so a blog builds correctly, checking categories, layout, title, description, date, image and tags.

Open a folder in Visual Studio Code
A macOS service that opens any folder as a project in Visual Studio Code straight from Finder's context menu.
dotnet-script Docker image →
Run C# scripts with nothing but Docker installed. This image makes running dotnet-script easier than ever.
Xamarin Forms birthday workshop
A workshop where participants build an iOS and Android birthday reminder app with C# and Xamarin Forms. No prior mobile experience needed, with step-by-step instructions.
Transparent PNG script
Create a transparent PNG of any size from the terminal. No Python? Use the Docker image instead.
Cloudflare Cache Purger
A dotnet script that purges the relevant pages from Cloudflare's cache when a new post is added to a Jekyll repository.
Comics Downloader
A dotnet script that downloads comics from comics.io, from a chosen strip until the end, and can combine them into a .cbz archive.
ASP.NET Core workshop →
A workshop where participants build an ASP.NET Core web app and API, then orchestrate it with Docker Compose. A branch per step keeps everyone on track.
FermiContainer
A small C# IoC container. Register interfaces and implementations, and let constructor injection resolve dependencies. No attributes or XML configuration.

Async Method Caller
Call methods asynchronously and continue afterwards when you cannot use async and await. Easy to understand and test, and useful in view models.

Workday Countdown
A countdown panel for Panic's Status Board on iOS that filters out weekends and public holidays for a realistic work countdown.
No projects match your search.