Skip to content

Case study

CssHub

CssHub is an open-source Chrome extension that automatically saves CSSBattle solutions directly to a GitHub repository you control. It removes the copy-paste step, keeps your progress backed up, and is available on the Chrome Web Store.

  • Chrome Extension
  • TypeScript
  • GitHub API
  • OAuth
  • Manifest V3
chromewebstore.google.com
CssHub preview

Status

Published on Chrome Web Store

Ownership

Solo, end to end

Audience

CSSBattle players

Problem

CSSBattle players who wanted a GitHub history of their solutions had to copy CSS manually after every pass. The flow was slow, error-prone, and easy to skip once the streak broke.

Solution

CSSHub automatically detects submitted CSSBattle solutions and commits them to GitHub, turning each completed challenge into versioned source history without extra copy-paste work.

My role

Solo builder across extension architecture, GitHub integration, popup UX, store listing, privacy disclosures, and release management.

Stack

8 tools

  • Chrome Extension MV3
  • React
  • TypeScript
  • Vite
  • Zod
  • GitHub API
  • Vercel
  • Upstash Redis

Architecture

A Manifest V3 extension scoped to CSSBattle play pages, paired with a Vercel backend for GitHub web OAuth so the client secret stays off-device.

  • Content script detects submitted challenge solutions on cssbattle.dev
  • Service worker coordinates automatic GitHub API commits
  • Backend handles OAuth callbacks and token exchange for GitHub sign-in
  • OAuth via a small helper, with the token kept in session storage on device
  • Settings and activity log in local extension storage
  • TypeScript throughout, open source on GitHub

Challenges

  • GitHub OAuth inside an extension without exposing tokens
  • Reliable DOM hooks as CSSBattle pages evolve
  • Chrome Web Store review, including permissions, privacy policy, and limited-use disclosure
  • Shipping polished UX in a tiny popup surface

Outcomes

  • Published on the Chrome Web Store (v1.0.1)
  • Privacy-first, with no analytics and no CssHub-side battle storage
  • Demonstrates extension architecture, API integration, and store submission

Next case study

Dracania Archives

Archived web app for Drakensang Online, item database, build tools, and community features used by active players.

View case study