The Grimoire

Selected Work

Every work is a chapter — the problem, the build, the stack, and the outcomes. Products built and operated end to end, plus client work for BitMEX and ROWDY Bags. Open any chapter to read the whole story.

ROWDY Bags — illustrative imagery

CHAPTER IROWDY BAGS

◆ Client · ROWDY

Shopify e-commerce + paid social & search for a leather-goods brand.

Built and maintained nearly all of the brand's websites on Shopify (storefront, campaign and landing pages) and drove its digital marketing: paid campaigns across Facebook, Instagram, and Google Ads, from creative to targeting to budget. Ran the exclusive Norwegian distribution.

ShopifyLiquidFacebook AdsInstagram AdsGoogle Ads
Open the book →
SYSCO / Cegal — illustrative imagery

CHAPTER IISYSCO / CEGAL

◆ Client · SYSCO / Cegal

Frontend consulting in Norway — from a government upskilling portal to Toyota fleet tools.

Shipped a government-funded upskilling portal for immigrants from concept to launch in 14 months. Modernised Toyota Norway's fleet tools and built a facilities IoT dashboard — all with Vue.js and Vuetify, working directly with stakeholders as a consultant.

Vue.jsVuetifyJavaScriptREST APIs
Open the book →
The World Now — preview card

CHAPTER IIITHE WORLD NOW

Live AI news platform on an interactive 3D globe.

A solo, end-to-end product: a Next.js + Mapbox front end on Vercel, an AWS Lambda fleet that scrapes, classifies, and generates articles around the clock, a Catalyst market-prediction engine, MongoDB Atlas, Stripe subscriptions, and a hand-rolled ISR-safe A/B testing layer in ~80 lines of middleware.

Next.jsReactMapboxAWS LambdaMongoDB Atlas
Open the book →
Sitful — preview card

CHAPTER IVSITFUL

Calm, on-device macOS posture coach.

A Tauri 2 app with a Rust core: AVCaptureSession → Apple Vision pose detection → Rust scoring, fused with AirPods head-motion via CoreMotion, SQLite storage, a live 0–100 posture score with adaptive nudges, and a signed, notarized, auto-updating .dmg. Plus a Next.js marketing site with live Stripe checkout and A/B-tested pricing.

Tauri 2RustReact 19TypeScriptApple Vision
Open the book →
staqd.ai — preview card

CHAPTER VSTAQD.AI

Marketplace of AI design skills + buy-once solution templates.

A Next.js 16 (App Router / RSC) marketplace with file-native markdown content, Better Auth + Drizzle/Postgres, Stripe billing, and a live-demo engine that renders ten style-parameterized templates per skill through a Playwright + sharp screenshot pipeline.

Next.js 16React 19Tailwind v4Better AuthDrizzle
Open the book →
UsageOwl — preview card

CHAPTER VIUSAGEOWL

Open-source macOS menu bar app tracking AI subscription limits.

A zero-dependency Swift/SwiftUI menu bar app — five providers (Claude, ChatGPT/Codex, Kimi, Copilot, Moonshot) behind one plugin protocol — with 25/50/75/90% threshold alerts, reset countdowns, a transcript-priced spend engine, an offscreen-WebKit auth transport, and a signed, notarized 1.3 MB universal DMG.

SwiftSwiftUIWebKitSwiftPMNext.js 15
Open the book →
BitMEX Blog — live site

CHAPTER VIIBITMEX BLOG

◆ Client · BitMEX

WordPress → Contentful + Next.js headless migration.

Migrated the entire blog to a headless architecture: Contentful CMS feeding a Next.js front end. Built responsive article and card components, category filtering (Announcements, BitMEX Alpha, Crypto Trader Digest, Research, Resources), a custom image loader with WEBP/AVIF optimization, dynamic article routing, and multi-language routing (EN/CN/ES/RU/VI).

Next.jsReactTypeScriptContentfulWEBP / AVIF
Open the book →
BitMEX Employee Verification — live site

CHAPTER VIIIBITMEX EMPLOYEE VERIFICATION

◆ Client · BitMEX

Anti-impersonation tool to verify genuine BitMEX staff.

A verification page in the BitMEX app (React / Next.js) where a user checks a person's identity against BitMEX's source of truth and gets a clear genuine / not-genuine result — turning 'is this really BitMEX?' into a one-click check.

ReactNext.jsTypeScript
Open the book →