Things I've built.

A grab-bag of products, side projects, and small open-source libraries — from full apps with real users to the tiny utilities that quietly keep things running.

Spanish Bear

Learn and practice Spanish, one bite at a time.

A friendly home for picking up Spanish — short lessons, interactive practice, and just enough structure to keep you coming back. Built for self-taught learners who want to actually speak the language, not just memorize flashcards.

TypeScriptNext.jsReact

Pull Panda

A native-feeling home for code review.

A desktop app that reimagines GitHub code review around the things that actually matter: readable diffs, threaded conversations, and keyboard-driven navigation. Less context-switching, more shipping.

TypeScriptReactElectron

Esix

A really slick MongoDB ORM for TypeScript.

An ergonomic MongoDB ORM that brings ActiveRecord-style ease to TypeScript without giving up MongoDB’s flexibility. Clean APIs for queries, relations, and migrations — with the type-safety you’d expect.

TypeScriptMongoDB

Steam Revenue Calculator

Back-of-the-envelope earnings for any Steam game.

Plug in a store URL and get a quick revenue estimate based on review counts, price, and refund rates. A handy gut-check tool for indie devs and curious analysts trying to size up the market.

TypeScriptReact

Gustavs Kitchen

Approachable recipes for hungry home cooks.

A friendly cooking site with step-by-step guides for food that actually tastes good — minus the cheffy fuss. Built for people who want to enjoy cooking, not perform it.

TypeScriptReact

Blender Batch FBX Exporter

Export every selected object as its own FBX.

A Blender add-on that exports each selected object into its own FBX file, named after the object’s position in the hierarchy. A quiet time-saver for anyone shipping assets to Unity or Unreal.

PythonBlender

Airhorn

Marketing intelligence for indie game studios.

A growing database of content creators paired with marketing tools built specifically for game devs. Find the right streamers and YouTubers for your title, plan campaigns, and ship a launch without needing a full marketing team.

TypeScriptNext.jsReact

PMKIN

A headless CMS that gets out of the writer’s way.

PMKIN makes content creation effortless with an intuitive editor that lets your team focus on writing instead of fighting tooling. Centralize all your content, integrate seamlessly with Next.js, and ship updates without bottlenecks or developer hand-offs.

TypeScriptNext.jsReact

Resume Rocket

AI-built resumes that actually land interviews.

An AI-powered resume builder that drafts personalized, ATS-compliant resumes tuned to the job a candidate is going after. Smart layout and content suggestions help job seekers tell a stronger story — fast.

TypeScriptReactAI

Squeal

A modern SQL workbench for desktop. (WIP)

An in-progress desktop SQL editor and workbench, aiming to do for databases what good code editors did for code: keyboard-driven, fast, and quietly powerful — without the bloat of legacy enterprise tooling.

TypeScriptDesktop

Bitesized

QR menus restaurants can update from their phone.

A digital menu platform that lets restaurants spin up beautiful, mobile-friendly QR menus in minutes — and update them instantly without printing a single thing. Built for kitchens that change specials daily, not yearly.

TypeScriptReactPWA

No Cap Food Rankings

Vote head-to-head on the world’s best cuisines.

Rank the world’s cuisines through head-to-head matchups and watch a 100% scientific leaderboard emerge for which country actually has the best food. A silly, addictive ranking app that quietly tells you something true.

TypeScriptReactNext.js

Web Developer MCP

Give your AI agent a real browser.

An MCP server that lets AI agents drive a real browser — navigate pages, click elements, fill forms, inspect the DOM, and read the console. Closes the loop between code generation and visual verification.

TypeScriptMCPAI

Package Registry MCP

Search npm, PyPI, Cargo & more from your agent.

An MCP server that lets Claude, Cursor, and other AI agents look up package details, versions, and security advisories across npm, PyPI, Cargo, NuGet, and Go — without leaving the editor.

TypeScriptMCPAI

Website to Markdown

Snip any page to clean markdown, instantly.

A Chrome extension that copies any website’s content as clean, readable markdown — perfect for pasting into LLMs, saving to your notes, or feeding into your agents.

TypeScriptChrome

Building Things With JavaScript

Practical lessons from real JavaScript projects.

Tutorials, deep dives, and resources for getting better at JavaScript, TypeScript, and React — drawn from things I’ve actually shipped, not toy examples.

JavaScriptTypeScriptReact

Breeze

Tailwind for Unity’s UI Toolkit.

A Tailwind-style stylesheet tool for Unity’s UI Toolkit — utility-first styling for game UI so you can iterate on layouts as quickly as you would on a website.

C#Unity

Tiny TypeScript Logger

Colorized terminal logs, zero dependencies.

A tiny zero-dependency logger that produces colorized, leveled output in your terminal. Drop it into any TypeScript project for nicer logs without pulling in a heavy library.

TypeScriptCLI

React Shared Storage

Local-storage state, synced across tabs.

A small React hook for persisting state to localStorage and keeping it in sync across components, tabs, and windows. The boring problem you didn’t want to solve again.

ReactTypeScript

Correlations

Pearson coefficients from the command line.

A small CLI utility that computes Pearson correlation coefficients between columns in a dataset. For when you want a quick numerical answer without spinning up a notebook.

RubyCLI

Fuzzy Comparison

Are these two strings basically the same?

A tiny package that compares two strings and tells you whether they’re close enough — useful for typo-tolerant matching, deduplication, and fuzzy search.

JavaScript

React & Koa Template

A batteries-included starter for full-stack apps.

A project template that wires up everything you need to build a React SPA backed by a Koa API — build pipeline, dev server, and sensible defaults included.

TypeScriptReactKoa

Run Occasionally

A friendlier cron, in a single Go binary.

A tiny Go binary for running commands on a schedule — a lightweight alternative to cron when you just want one or two recurring jobs without a system service.

GoCLI
Christoffer Artmann

Hi, I'm Chris!

I'm a Software Engineer and Product Manager living in sunny Barcelona.

If you want to chat, you can find me on all the social platforms.