Back to projects

Small claims. Big feelings.

Petty Court

A playful court of public opinion for everyday disputes. File a case, present evidence, invite a jury, and share the verdict.

ReactTypeScriptNext.jsPostgreSQL
A tiny disagreement deserves an unnecessarily beautiful hearing.

01

Problem

Give friends a playful, structured way to settle low-stakes disagreements while making evidence and both sides of the story easy to understand.

02

Role

Product design, visual identity, responsive frontend, case and voting APIs, data persistence, and validation.

03

Constraints

Keep filing and voting account-free, preserve shared case state, prevent duplicate votes within a browser, and handle deadlines and owner-only case closure.

04

Process

Built a searchable docket, a three-step filing flow, evidence exhibits, jury voting, and verdict cards. Local development uses persistent files; the PostgreSQL adapter serializes hosted writes with row locks.

05

Result

A standalone app with public case links, image and text evidence, timed voting, case-owner controls, and exportable verdict cards. Deployment requires a PostgreSQL connection.

Experience highlights

  • Searchable and filterable case docket with clearly labeled fictional examples
  • Three-step filing with up to three image or text exhibits
  • Browser-based voting, jury deadlines, and owner-only early closure
  • Shareable case links and downloadable verdict cards

Engineering & performance

  • Next.js and React with TypeScript and a custom responsive visual system
  • Atomic local persistence and a PostgreSQL-backed deployment adapter
  • Server-side validation, request-size limits, origin checks, and protected ownership
  • Tests for verdicts, deadlines, concurrent transactions, and HTTP workflows

Kitty Kio

Thoughtful code can be useful, expressive, and a little bit magical.

Kitty Kio cat logo wearing a bucket hat

© 2026 Kitty Kio. Code is MIT licensed; content and branding are all rights reserved.