Skip to content

kevinzhxng/SlashSpend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SlashSpend

HackNC Hackathon (Best Personal Finance Hack Track)

Inspiration

SlashSpend was born at HackNC after realizing how many friends signed up for "free" trials that quietly turned into recurring charges. We wanted a browser-side co-pilot that could flag those dark patterns before a user hits "Submit," and then dig deeper to reveal pricing history, arbitration clauses, and other gotchas hiding in fine print.

What it does

When you open a suspicious checkout page, the Chrome extension scans the DOM for subscription keywords plus billing forms, warns you in real time, and then calls our Deno service. The backend runs a Gemini-powered research loop, validates the structured output, and sends back the site’s name, company, pricing timeline, arbitration status, intro-offer flags, and more, so you see a quick brief instead of marketing hype.

How we built it

  • Chrome extension with service worker + content script watching for signals (content.js, background.js, popup/) and caching scan results per URL.
  • Backend in Deno + Oak (backend/Server.ts) orchestrating a ResearchPipeline that composes prompts, calls Google Gemini with web-search, and converts results into a strict zod schema (DataValidator.ts).
  • KV cache (ResearchPipeline.urlToInfoPayload) to reuse structured research and selectively refresh entries.
  • Coordinated UI states in the popup to surface the validated payload with retro pixel art, keeping everything fast enough to feel native.

Challenges we ran into

  • Prompt engineering to keep Gemini focused on subscriptions while still extracting arbitration and price histories.
  • Enforcing schema integrity; we hit malformed JSON until we wrapped the model response in a conversion prompt plus zod parsing.
  • Managing Chrome extension messaging so reloading tabs reopens warnings without spamming.
  • Running research quickly enough during a hackathon demo without burning through rate limits.

Accomplishments that we're proud of

  • Seamless extension ↔ backend loop that feels instantaneous to the user.
  • Reliable structured output thanks to the validator pipeline.
  • Vintage-styled UI that keeps the warning playful while delivering serious info.
  • Winning Best Personal Finance Hack at HackNC with a project people immediately wanted to install.

What we learned

  • How to couple LLM search tools with strict validation so hallucinations never reach the user.
  • Chrome extension architecture nuances (service worker lifetimes, storage caching, message routing).
  • Practical prompt iteration and scoring heuristics (we score payload completeness to decide cache refreshes).
  • The power of presenting financial decisions with context; users respond to history charts more than warnings alone.

What’s next for SlashSpend

  • Expand research signals beyond subscriptions, e.g. hidden fees or cancellation hurdles.
  • Integrate opt-in crowdsourced verifications so people can flag inaccurate or outdated info.
  • Package the backend for easy self-hosting and ship to the Chrome Web Store with automatic updates.

About

HackNC Hackathon (Retro Track Winner!!)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •