Portfolio

I like building things on nights and weekends. Here are the products I've designed and built myselfβ€”real tools solving real problems.

Solo projectLiveReal paying users

CourtLK

Less admin. More coaching.

Academy management for Sri Lankan coaches, with students, attendance, payments, and player progress in one place.

Visit product β†’
CourtLK homepage showing its academy dashboard for classes and attendance
Read the full case study

The problem

Sports academies often manage registration, class attendance, payments, and player records across paper registers, spreadsheets, and message threads. That creates repetitive admin for coaches and makes it harder for players and parents to find reliable information.

The solution

CourtLK brings the everyday work of a sports academy into one clear system. Coaches can set up classes, share a registration link or QR code, record attendance and payments, and follow player progress, while players and parents get access to their own permitted records.

Capabilities

  • Academy setup with classes, timetables, and guided onboarding
  • Self-registration for players and parents through a link or QR code
  • Class registers, attendance history, and reporting
  • Payment records, practice matches, and player progress tracking
  • Player and parent portal with a digital student card
  • Verified contacts, controlled access, and daily backups

Tech stack

Next.js 16React 19TypeScriptTailwind CSS 4SupabaseVercel Edge ConfigResendVitest
Solo projectLive

Nidra

Your money works while you sleep

A live, currency-aware view of property wealth for diaspora owners.

Visit product β†’
Nidra live property portfolio dashboard showing current value, earnings, and currency-adjusted growth
Read the full case study

The problem

Property is wealth you can't watch grow. Unlike stocks or savings, there's no ticker, no balance to check β€” just a plot of land or a flat back home that quietly gains value while its owner, often living abroad, has no way to see it. Currency depreciation makes it worse: a rising rupee value can mask a real loss once converted to hard currency.

The solution

Nidra gives diaspora property owners a live, compounding view of what their real estate is worth right now β€” today's earnings, growth over time, and real (currency-adjusted) value, updated to the second. A weekly digest email brings users back every Monday to see how their portfolio moved.

Capabilities

  • Live compounding valuation engine (per-second/day/year growth from an anchor value + rate)
  • Multi-currency portfolios with automatic FX-adjusted "real value" calculations
  • Weekly digest emails summarizing portfolio growth
  • No-signup demo mode for instant try-before-you-buy
  • PWA install support (iOS/Android home screen)

Tech stack

Next.js 16React 19TypeScriptTailwind CSSSupabaseRechartsResendVercel

Nidra on mobile

Nidra mobile landing page introducing β€œYour money works while you sleep”
Nidra mobile portfolio dashboard showing live compounding property value
Nidra mobile form for adding a property purchase price and current value
Solo projectLive

FakePip

A private runway calculator for people facing a PIP or layoff

Shows how long your money lasts, how that compares to your deadline, and what to do next.

Visit product β†’
FakePip homepage explaining its private PIP and layoff financial runway calculator
Read the full case study

The problem

Being placed on a PIP is a financially stressful, high-stakes moment β€” often the first sign of an impending layoff. People need to quickly understand their financial runway (and, for visa holders, their legal runway), but doing that math under stress, or trusting a random web tool with sensitive salary and savings data, is hard.

The solution

FakePip is a free, no-signup calculator that walks users through a 7-step flow β€” country, visa status, take-home pay, savings, itemized expenses, PIP length/severance, dependents β€” and produces a results view with worst-case and realistic runway estimates, a 5-tier runway health meter, a visa-clock warning for work-visa holders, and a week-by-week action plan sized to their PIP timeline (with a PDF export and a clear not-legal-advice disclaimer). Everything runs client-side: no accounts, no database, no analytics, no server calls with user data β€” nothing is ever stored.

Tech stack

Next.js 14TypeScriptTailwind CSSVercel

Your runway and action plan

FakePip mobile results screen showing worst-case and realistic runway estimates
FakePip mobile PDF export of the runway summary
FakePip mobile inflation-adjusted runway comparison table
Solo projectMVP done

Foreman

An AI Software Developer in Your Engineering Workflow

Turns a Jira requirement into tested code, a reviewed pull request, and synchronized project updates.

Foreman architecture diagram showing how its AI roles work together across Jira, GitHub, and Slack
Read the full case study

The problem

Small backlog tickets (bug fixes, minor features) still require a human to read the ticket, write the code, test it, open a PR, get it reviewed, and update status everywhere. And before any of that, someone has to manually turn a product spec into a well-scoped set of tickets for design, dev, and QA β€” repetitive coordination on both ends of the pipeline.

The solution

Foreman is a set of AI roles that work inside your existing tools like real teammates. Assign it a Jira ticket and it writes the code, runs the real test suite, opens a pull request, gets it reviewed by a second AI role against your team's own written rules, and keeps Jira/Slack in sync. Or hand it a product spec, and a third AI role turns it straight into a Jira epic with tickets ready for the whole team to pick up.

Capabilities

  • Polls Jira for labeled tickets, respects blocking dependencies, and skips/resumes automatically
  • Writes code and tests with Claude, guided by per-service convention "skill" files
  • Self-corrects failing tests (up to 3 attempts) before giving up gracefully β€” never opens a broken PR
  • Auto-reviews every PR (its own or a human's) against versioned rule checklists, commenting inline
  • Posts progress to Slack and moves Jira tickets through In Progress β†’ In Review β†’ Done automatically
  • Turns a Confluence spec into a Jira epic plus role-based tickets β€” design, dev, QA/test automation, rollout β€” created directly in Jira and announced in Slack, with the breakdown itself editable per team
  • Live dashboard to watch execution logs, pause the agent, switch models, or have it "enrich" a vague ticket into a full spec before assigning
  • Takes human feedback via Jira comments and pushes fixes to the same PR

Tech stack

Node.jsTypeScriptClaude API (Sonnet)Next.jsSupabase (Postgres)JavaSpring BootJira APIGitHub APISlack API

See it in action

Watch demo β†’
Solo projectLive

Matchly

A just-for-fun, clearly fictional swipe-dating experience

A playful swipe-and-chat experience with fictional AI characters, no accounts, and no real people.

Visit product β†’
Matchly welcome screen explaining its fictional AI character experience
Read the full case study

The problem

Dating apps are stressful and high-stakes β€” profiles are real people, matches carry social weight, and there's no room to just enjoy the feeling of the format without the pressure.

The solution

Matchly strips out everything real. Every profile is an AI character with a pre-written personality and a scripted five-date story arc β€” you get the swipe-and-chat experience as a game, with zero accounts, zero real people, and zero stakes.

Capabilities

  • 16 fully scripted characters, each with a branching 33–39 node dialogue graph spanning five escalating dates
  • Deliberately rare matches (~25% like-to-match rate, with a pity guarantee) for authentic swipe-app tension
  • Slow-burn pacing β€” timestamp-based β€œtyping” delays that hold across refreshes, so a full arc plays out over 10+ minutes
  • Self-sustaining deck that recycles unmatched profiles so you never run out
  • Installable PWA with offline shell caching
  • No backend/accounts β€” all state lives in localStorage

Tech stack

Next.js 16React 19TypeScriptTailwind CSS 4Vercel AnalyticsDiceBear API

The Matchly experience

Matchly mobile onboarding screen welcoming the user
Matchly mobile swipe card showing a fictional character profile
Matchly mobile β€œIt’s a Match!” screen after a mutual like