<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Isaiah Kim</title>
    <description>The latest articles on DEV Community by Isaiah Kim (@kyisaiah47).</description>
    <link>https://dev.to/kyisaiah47</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3981339%2F7515e39c-98fe-4819-bcc5-d59ace01fc25.jpeg</url>
      <title>DEV Community: Isaiah Kim</title>
      <link>https://dev.to/kyisaiah47</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kyisaiah47"/>
    <language>en</language>
    <item>
      <title>Interview Tree: Turning User Interview Transcripts into Structured Opportunity Trees with Claude</title>
      <dc:creator>Isaiah Kim</dc:creator>
      <pubDate>Sat, 13 Jun 2026 19:17:43 +0000</pubDate>
      <link>https://dev.to/kyisaiah47/interview-tree-turning-user-interview-transcripts-into-structured-opportunity-trees-with-claude-4bcm</link>
      <guid>https://dev.to/kyisaiah47/interview-tree-turning-user-interview-transcripts-into-structured-opportunity-trees-with-claude-4bcm</guid>
      <description>&lt;p&gt;I built Interview Tree because synthesizing user interview transcripts by hand is slow and error-prone. Reading through long conversations to find recurring problems, group themes, and pull supporting quotes takes hours. I wanted to see if Claude could do that extraction reliably enough to be useful in a real research workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Paste any user interview transcript into the editor, hit analyze, and the app returns a structured opportunity tree: a hierarchy of problems, themes nested under each problem, and verbatim quotes from the participant anchored to each theme. The output renders as a collapsible, depth-indented, color-coded tree you can explore at every level.&lt;/p&gt;

&lt;p&gt;Every theme is backed by exact quotes — not summaries or paraphrases — so you can see what the participant actually said rather than what the model inferred. There's also a sample transcript preloaded if you want to explore the output immediately without any data of your own.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The app is a Next.js 16 / React 19 frontend with a server-side API route that handles the Claude call. When you submit a transcript, the route sends it to &lt;code&gt;claude-sonnet-4-6&lt;/code&gt; via the Anthropic SDK with a prompt that asks for a specific typed JSON structure. Claude returns that structure — problems, themes, quotes — and the frontend renders it recursively into the tree UI.&lt;/p&gt;

&lt;p&gt;Using typed, validated JSON as the intermediate format means the tree renders consistently every time. There's no brittle parsing of prose output.&lt;/p&gt;

&lt;p&gt;The UI is built with Tailwind CSS, shadcn/ui components, and Novus by Pendo. The whole thing deploys on Vercel.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;This was a hackathon project. I used Claude Code — Anthropic's agentic coding tool — to generate and iterate on the codebase throughout the build. Claude Code handled the Next.js scaffold, the API route logic, the recursive tree rendering, and the Tailwind styling. The in-product AI is a separate Claude API call (&lt;code&gt;claude-sonnet-4-6&lt;/code&gt;) running server-side — distinct from the tooling used to write the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://interview-tree.vercel.app" rel="noopener noreferrer"&gt;interview-tree.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo video:&lt;/strong&gt; &lt;a href="https://www.youtube.com/watch?v=VxH1GkPYi2w" rel="noopener noreferrer"&gt;youtube.com/watch?v=VxH1GkPYi2w&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://github.com/kyisaiah47/interview-tree" rel="noopener noreferrer"&gt;github.com/kyisaiah47/interview-tree&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stack: Claude API · Next.js 16 · React 19 · Tailwind CSS · shadcn/ui · Novus by Pendo · Vercel&lt;/p&gt;

</description>
      <category>claude</category>
      <category>nextjs</category>
      <category>ux</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Level Up: an anime RPG habit tracker for the web</title>
      <dc:creator>Isaiah Kim</dc:creator>
      <pubDate>Sat, 13 Jun 2026 13:19:14 +0000</pubDate>
      <link>https://dev.to/kyisaiah47/level-up-an-anime-rpg-habit-tracker-for-the-web-86g</link>
      <guid>https://dev.to/kyisaiah47/level-up-an-anime-rpg-habit-tracker-for-the-web-86g</guid>
      <description>&lt;p&gt;Live: &lt;a href="https://leveluprpg.vercel.app" rel="noopener noreferrer"&gt;leveluprpg.vercel.app&lt;/a&gt; | Demo: &lt;a href="https://youtu.be/QtctTt3l8Fo" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; | Repo: &lt;a href="https://github.com/kyisaiah47/level-up-web" rel="noopener noreferrer"&gt;github.com/kyisaiah47/level-up-web&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;Level Up is a fullscreen browser game built around habit tracking. You create quests (your habits), log them like journal entries, earn XP, and climb a 100-floor Tower of Growth. As you accumulate entries, your character evolves through 20 classes — from Novice to Legend — across 7 disciplines, with 8 hybrid classes like Battlemage and Paladin that unlock by logging across two disciplines. Each class grants an XP multiplier.&lt;/p&gt;

&lt;p&gt;There are also 24 rotating daily system quests alongside your own custom ones.&lt;/p&gt;

&lt;p&gt;The UI is fullscreen: anime backdrops, an HUD player plate, and a game-style nav dock. No dashboards, no scrollbars.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;Most habit trackers treat missing a day as a failure state. They show streak counts, reset progress, and flag missed days. I wanted something where the question was never "did you fail today?" but "what did you accomplish?"&lt;/p&gt;

&lt;p&gt;In Level Up, progression is cumulative completion counts. Miss a week and your character is exactly where you left it — no streaks to break, no penalties. You just pick up where you stopped.&lt;/p&gt;

&lt;p&gt;This is also a web rebuild of an earlier React Native/Expo project. I wanted to bring the core loop to the browser with a more mature stack. Some features from the mobile version (guilds, potions, cosmetics, seasonal worlds) stayed in the mobile repo intentionally — this version focuses on the core loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 16&lt;/strong&gt; (App Router, Turbopack) + React 19&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS 4&lt;/strong&gt; + shadcn/ui for the game UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; for auth (Google OAuth via &lt;code&gt;@supabase/ssr&lt;/code&gt;) and Postgres&lt;/li&gt;
&lt;li&gt;Game logic in pure TypeScript under &lt;code&gt;src/lib/game&lt;/code&gt; — XP math, milestone checks, tower progression, and class evolution all live there&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The database initializes from a single idempotent SQL file that seeds 12 classes (more unlock through play), 100 tower floors, rewards, and the 24 system quests. Supabase access uses service-role only, keeping client-side exposure minimal.&lt;/p&gt;

&lt;p&gt;Backdrops load per-tab from &lt;code&gt;public/images/&lt;/code&gt; with silent fallbacks, so missing art never breaks the UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's free
&lt;/h2&gt;

&lt;p&gt;No ads, no paywalls. Sign in with Google, create your quests, and play.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>nextjs</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Portable: A Financial Platform for Gig Workers (HackNomics 2025)</title>
      <dc:creator>Isaiah Kim</dc:creator>
      <pubDate>Sat, 13 Jun 2026 01:15:31 +0000</pubDate>
      <link>https://dev.to/kyisaiah47/portable-a-financial-platform-for-gig-workers-hacknomics-2025-3nlm</link>
      <guid>https://dev.to/kyisaiah47/portable-a-financial-platform-for-gig-workers-hacknomics-2025-3nlm</guid>
      <description>&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;Portable is a financial platform I built for HackNomics 2025, aimed at the 70 million Americans working in the gig economy. The core idea: upload one bank statement and the app handles the financial bookkeeping that gig workers typically do manually — or skip entirely, often at real cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;Most financial tools are built around a W-2 and a single employer. For someone driving for Uber in the morning, doing Upwork contracts in the afternoon, and collecting Patreon income on the side, that model breaks down. The tax situation alone is complicated — self-employment tax runs 15.3% on top of federal and state income tax, and quarterly deadlines catch people off guard.&lt;/p&gt;

&lt;p&gt;The README notes gig workers leave $3,000–$5,000 in deductions unclaimed each year because tracking them is tedious. That was the motivation behind the expense categorization work.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Income detection&lt;/strong&gt;: Portable parses an uploaded bank statement and recognizes income from 50+ platforms — Uber, Lyft, DoorDash, Instacart, Upwork, Fiverr, YouTube, Patreon, and more — broken down by platform, week, and month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expense categorization&lt;/strong&gt;: Every transaction is matched against IRS-approved deduction categories automatically — gas, phone bills, subscriptions — with no manual tagging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tax calculator&lt;/strong&gt;: Computes self-employment tax (15.3%), federal income tax, and state estimates. Surfaces quarterly deadlines and a full-year projection based on current earnings pace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Income Stability Score&lt;/strong&gt;: Variable gig income is hard for landlords and lenders to evaluate — no pay stub, no employer letter. This score runs an algorithm over the income history and outputs a consistency rating in a format those stakeholders can work with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits hub&lt;/strong&gt;: Surfaces health insurance, retirement accounts, and financial products designed for self-employed workers — the portable benefits piece the project is named after.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 15&lt;/strong&gt; (App Router) + TypeScript&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind CSS v4&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; — PostgreSQL + Realtime for database and auth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shadcn UI + Radix&lt;/strong&gt; for components&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recharts&lt;/strong&gt; for income and tax visualization&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Live app: &lt;a href="https://portable-buwubjqtb-kyisaiah47s-projects.vercel.app" rel="noopener noreferrer"&gt;portable-buwubjqtb-kyisaiah47s-projects.vercel.app&lt;/a&gt; — demo credentials: &lt;code&gt;sarah.driver@email.com&lt;/code&gt; / &lt;code&gt;demo123&lt;/code&gt;, or upload the &lt;code&gt;sample-bank-statement.csv&lt;/code&gt; from the repo&lt;/li&gt;
&lt;li&gt;Demo video: &lt;a href="https://www.youtube.com/watch?v=9AjgeyStgtI" rel="noopener noreferrer"&gt;youtube.com/watch?v=9AjgeyStgtI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/kyisaiah47/stub" rel="noopener noreferrer"&gt;github.com/kyisaiah47/stub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>nextjs</category>
      <category>typescript</category>
      <category>hackathon</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Playbooks: a community feed where Claude builds structured plans for life's biggest moments</title>
      <dc:creator>Isaiah Kim</dc:creator>
      <pubDate>Sat, 13 Jun 2026 01:15:29 +0000</pubDate>
      <link>https://dev.to/kyisaiah47/playbooks-a-community-feed-where-claude-builds-structured-plans-for-lifes-biggest-moments-1ce6</link>
      <guid>https://dev.to/kyisaiah47/playbooks-a-community-feed-where-claude-builds-structured-plans-for-lifes-biggest-moments-1ce6</guid>
      <description>&lt;p&gt;I built Playbooks because I kept running into the same problem: Notion is too blank, and ChatGPT gives you walls of text. Neither gives you a structured, actionable plan you can actually work through.&lt;/p&gt;

&lt;p&gt;Playbooks works differently. Describe what you're planning in one sentence — "I want to start freelancing as a designer" or "planning a cross-country move" — and Claude generates a full structured playbook: phases, checkable tasks, reflection questions, and resources, all tailored to your specific situation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes it a social feed
&lt;/h2&gt;

&lt;p&gt;The homepage isn't a dashboard. It's a community feed of real playbooks — you can see what other people are planning, with task previews, category tags, and progress indicators. If someone's playbook fits your situation, you can fork it. Claude then re-tailors the entire thing around your context, so you're not starting from scratch but also not following a plan built for someone else.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inline AI feedback
&lt;/h2&gt;

&lt;p&gt;The questions in each playbook aren't just prompts to journal into. When you answer one, Claude reads your response and gives you situation-specific guidance — saved inline so it's there when you come back. The feedback is generated fresh from your actual answer, not a canned response.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it's built
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; Next.js 16 (App Router) + React 19, TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; Claude API via &lt;code&gt;@anthropic-ai/sdk&lt;/code&gt; — model &lt;code&gt;claude-sonnet-4-6&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth &amp;amp; database:&lt;/strong&gt; Supabase (magic link auth — no passwords)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments:&lt;/strong&gt; Stripe (checkout + webhooks)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; Tailwind CSS v4, shadcn/ui, Framer Motion&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Vercel&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Usage tiers
&lt;/h2&gt;

&lt;p&gt;Free tier: 2 playbooks and 5 AI insights per month. Pro is $9/month for unlimited playbooks and 100 insights per month.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;Most AI tools feel like a conversation that ends when you close the tab. I wanted something persistent — a plan you can return to, check off tasks on, and get feedback on over days or weeks. The community feed came from noticing that when you're planning something big, seeing how other people structured the same problem is genuinely useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/kyisaiah47/playbooks" rel="noopener noreferrer"&gt;https://github.com/kyisaiah47/playbooks&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clone it, add your Supabase and Anthropic API keys, run the five SQL migrations, and &lt;code&gt;npm run dev&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>nextjs</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built an AI Symptom Tracker That Generates Doctor-Ready Reports</title>
      <dc:creator>Isaiah Kim</dc:creator>
      <pubDate>Fri, 12 Jun 2026 19:22:51 +0000</pubDate>
      <link>https://dev.to/kyisaiah47/i-built-an-ai-symptom-tracker-that-generates-doctor-ready-reports-3o26</link>
      <guid>https://dev.to/kyisaiah47/i-built-an-ai-symptom-tracker-that-generates-doctor-ready-reports-3o26</guid>
      <description>&lt;h2&gt;
  
  
  What It Is
&lt;/h2&gt;

&lt;p&gt;AI Wellness Journal is a symptom tracking app built with Next.js, Supabase, and Google Gemini. You log daily symptoms with severity ratings and freeform notes; Gemini analyzes your history and surfaces patterns; the app generates a structured report you can bring to a doctor's appointment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;I kept arriving at appointments unable to clearly describe when symptoms started or whether they followed any pattern. Most symptom trackers just store data -- I wanted one that could reason about it and package the results in a format a doctor could actually use.&lt;/p&gt;

&lt;p&gt;The goal is to shift healthcare toward the preventive side. If you walk in with a clear timeline and AI-summarized patterns, the appointment is more productive for both you and your doctor.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;You record symptoms daily with a severity level and freeform notes. Everything is stored in Supabase and rendered as a health timeline so you can review trends visually.&lt;/p&gt;

&lt;p&gt;When you request an analysis, Google Gemini processes your logs and returns a personalized health summary -- recurring patterns, notable trends, anything worth flagging. The doctor report feature takes that history and formats it into a structured, shareable document.&lt;/p&gt;

&lt;p&gt;There's also a quick stats dashboard showing recent activity and recurring patterns at a glance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; Next.js (App Router) with TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database &amp;amp; Auth:&lt;/strong&gt; Supabase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; Google Gemini API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; Tailwind CSS + Lucide Icons&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/kyisaiah47/charted.git
&lt;span class="nb"&gt;cd &lt;/span&gt;charted
npm &lt;span class="nb"&gt;install
cp&lt;/span&gt; .env.local.example .env.local
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll need a Supabase project and a Google Gemini API key. The &lt;code&gt;.env.local.example&lt;/code&gt; lists the three required variables.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Demo: &lt;a href="https://www.youtube.com/watch?v=myZLzRm9C4Q" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=myZLzRm9C4Q&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/kyisaiah47/charted" rel="noopener noreferrer"&gt;https://github.com/kyisaiah47/charted&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;AI insights are for informational purposes only and do not replace professional medical advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>healthtech</category>
      <category>nextjs</category>
      <category>typescript</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Mutuals: a taste-based social discovery app built with Next.js and Claude</title>
      <dc:creator>Isaiah Kim</dc:creator>
      <pubDate>Fri, 12 Jun 2026 19:22:49 +0000</pubDate>
      <link>https://dev.to/kyisaiah47/mutuals-a-taste-based-social-discovery-app-built-with-nextjs-and-claude-49cj</link>
      <guid>https://dev.to/kyisaiah47/mutuals-a-taste-based-social-discovery-app-built-with-nextjs-and-claude-49cj</guid>
      <description>&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;Mutuals is a social discovery app. You tell it 8–10 things you love — bands, films, books, games, places — and it matches you with people who share your cultural taste.&lt;/p&gt;

&lt;p&gt;The README describes it as "culture-centered reddit, with AI taste profiles for individuality." Each user has a public page, and every thing they list gets its own room: a small forum auto-populated by everyone who listed that same thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onboarding
&lt;/h2&gt;

&lt;p&gt;You type your things one at a time during a wizard; they appear as colorful chips. Claude (haiku) sorts them into categories. You claim a username at &lt;code&gt;mutuals/u/yourname&lt;/code&gt;, pick a face from DiceBear's Open Peeps collection, and you're in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your page
&lt;/h2&gt;

&lt;p&gt;Public and shareable. It has an AI-written headline, description, and taste traits — all generated from what you listed. Your things appear as chips, your top 8 mutuals are shown, and there's a wall where other users can leave notes. Links to your profile unfurl with a generated OG card.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rooms
&lt;/h2&gt;

&lt;p&gt;Every thing becomes a room: &lt;code&gt;m/radiohead&lt;/code&gt;, &lt;code&gt;m/twinpeaks&lt;/code&gt;, etc. Threads have titles and comments. The room auto-populates with everyone who listed that thing. If a room is completely empty when the first person enters, Claude writes a starter thread to give it somewhere to begin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Matching
&lt;/h2&gt;

&lt;p&gt;Matching runs on weighted Jaccard similarity across listed things. The wrinkle: I had Claude expand each thing into a "taste fingerprint" — loving Radiohead also implies Portishead, Thom Yorke, and a few others. That expanded set feeds the similarity score, so matches surface people who share broader taste territory, not just exact overlaps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Waves
&lt;/h2&gt;

&lt;p&gt;You can wave at someone. If they wave back, you both see each other's contact info. Nothing is exposed unilaterally — contact info only unlocks on a mutual wave.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 15&lt;/strong&gt; (App Router) + &lt;strong&gt;TypeScript&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind 4&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; for Postgres + Auth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic API&lt;/strong&gt; (Claude haiku) for taste profiles, category sorting, fingerprint expansion, and starter threads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DiceBear Open Peeps&lt;/strong&gt; for avatars&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;Most discovery tools recommend things; I wanted one that surfaced people. I also wanted a place where fans of very specific things — a particular film, a niche band — could find each other and talk without needing the scale to justify a subreddit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/kyisaiah47/mutuals" rel="noopener noreferrer"&gt;https://github.com/kyisaiah47/mutuals&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>nextjs</category>
      <category>typescript</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Deep Cut: a real-time multiplayer party game where a GPT-4o ghost host generates personalized prompts for every player</title>
      <dc:creator>Isaiah Kim</dc:creator>
      <pubDate>Fri, 12 Jun 2026 13:46:36 +0000</pubDate>
      <link>https://dev.to/kyisaiah47/deep-cut-a-real-time-multiplayer-party-game-where-a-gpt-4o-ghost-host-generates-personalized-17a6</link>
      <guid>https://dev.to/kyisaiah47/deep-cut-a-real-time-multiplayer-party-game-where-a-gpt-4o-ghost-host-generates-personalized-17a6</guid>
      <description>&lt;p&gt;I built Deep Cut — a real-time multiplayer party game where an AI ghost named Kiro runs each session. Every prompt, every player's choices, and every group insight is generated live by GPT-4o. Nothing repeats.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;Deep Cut is inspired by Cards Against Humanity and Jackbox, but built around the idea that a party game could actually know who you are. Rather than drawing from a static deck, every player gets a uniquely generated set of choices each round — tailored to them specifically. The host, Kiro, narrates and judges throughout, adapting to the group's energy as the session progresses.&lt;/p&gt;

&lt;p&gt;Sessions have themes — from "Cottagecore Rage" to "Deli-Sliced Trauma" — and every session is unrepeatable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;I wanted to see what a party game felt like if the host was genuinely responsive to the group. Static card games are fun, but the content never changes based on who's actually in the room. With GPT-4o, Kiro can generate prompts that feel personal and a ritual structure that evolves based on how the group is playing.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;Each round, Kiro uses GPT-4o to generate a prompt and a unique set of choices for every individual player — not generic card draws. Players vote, Kiro judges, and every 3 rounds Kiro evaluates the group's "vibe." If the energy holds, the ritual deepens; if it falters, Kiro prescribes a new theme entirely.&lt;/p&gt;

&lt;p&gt;Real-time multiplayer is handled by Supabase — room state, votes, and round progression sync live across every player's browser simultaneously.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GPT-4o&lt;/strong&gt; — prompt generation, personalized choices, and group insights per round&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js + React&lt;/strong&gt; — frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; — real-time multiplayer room state and synchronization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS + Framer Motion&lt;/strong&gt; — UI and animations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=4Ne8__wL-pQ" rel="noopener noreferrer"&gt;Watch on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/kyisaiah47/deep-cut" rel="noopener noreferrer"&gt;https://github.com/kyisaiah47/deep-cut&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Requires Node 18+. Clone the repo, copy &lt;code&gt;.env.local.example&lt;/code&gt; to &lt;code&gt;.env.local&lt;/code&gt;, add your Supabase and OpenAI keys, then run &lt;code&gt;npm run dev&lt;/code&gt;. Open two browser windows at &lt;code&gt;http://localhost:3000&lt;/code&gt; to test the multiplayer flow locally.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>nextjs</category>
      <category>ai</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Remi: AI receptionist for local service businesses on WhatsApp</title>
      <dc:creator>Isaiah Kim</dc:creator>
      <pubDate>Fri, 12 Jun 2026 13:29:03 +0000</pubDate>
      <link>https://dev.to/kyisaiah47/remi-ai-receptionist-for-local-service-businesses-on-whatsapp-2p34</link>
      <guid>https://dev.to/kyisaiah47/remi-ai-receptionist-for-local-service-businesses-on-whatsapp-2p34</guid>
      <description>&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;Remi is an AI receptionist for local service businesses — salons, barbers, cleaners, trades — that handles the full customer lifecycle over WhatsApp, 24/7, without human involvement.&lt;/p&gt;

&lt;p&gt;Built for the Build with Gemini XPRIZE Hackathon.&lt;/p&gt;

&lt;p&gt;Live: &lt;a href="https://remiai.vercel.app" rel="noopener noreferrer"&gt;https://remiai.vercel.app&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://www.youtube.com/watch?v=lo2M5RJ5I5Q" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=lo2M5RJ5I5Q&lt;/a&gt;&lt;br&gt;
Repo: &lt;a href="https://github.com/kyisaiah47/remi" rel="noopener noreferrer"&gt;https://github.com/kyisaiah47/remi&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;Local service businesses lose customers to missed messages every day. A customer texts at 9pm asking to book a haircut — they might get a reply the next morning, if at all. Remi handles that conversation automatically: answering instantly, booking through natural conversation, and following up without anyone on staff doing anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;A customer sends a WhatsApp message to the business's Twilio number.&lt;/li&gt;
&lt;li&gt;Twilio fires a webhook to &lt;code&gt;/api/webhook/sms&lt;/code&gt; on a Next.js server running on Vercel.&lt;/li&gt;
&lt;li&gt;Gemini 2.5 Flash processes the message with full conversation history and business context (name, hours, services, FAQs, today's date). When it detects booking intent, it emits a &lt;code&gt;BOOKING_JSON&lt;/code&gt; object.&lt;/li&gt;
&lt;li&gt;The booking and conversation thread are saved to Firebase Firestore.&lt;/li&gt;
&lt;li&gt;A reply goes back to the customer via Twilio.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For reminders: a cron job via cron-job.org hits &lt;code&gt;/api/reminders&lt;/code&gt; every 15 minutes (Vercel Hobby doesn't support sub-daily crons) and sends WhatsApp messages 24h and 1h before each confirmed appointment. After a visit, Remi follows up automatically and prompts the customer for a review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Instant replies, 24/7&lt;/strong&gt; — answers every inbound message: hours, pricing, availability&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic booking&lt;/strong&gt; — collects name, service, and time through natural conversation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reminder sequences&lt;/strong&gt; — 24h and 1h reminders before each appointment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review collection&lt;/strong&gt; — automated follow-up after each visit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full dashboard&lt;/strong&gt; — every conversation, booking, and interaction in one place&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stripe subscriptions&lt;/strong&gt; — $149/month with a 7-day free trial&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;Google Gemini 2.5 Flash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Messaging&lt;/td&gt;
&lt;td&gt;Twilio + WhatsApp Business API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Next.js 16 API Routes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;Firebase Firestore&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth&lt;/td&gt;
&lt;td&gt;NextAuth + Google OAuth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payments&lt;/td&gt;
&lt;td&gt;Stripe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;Code is MIT licensed: &lt;a href="https://github.com/kyisaiah47/remi" rel="noopener noreferrer"&gt;https://github.com/kyisaiah47/remi&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gemini</category>
      <category>nextjs</category>
      <category>hackathon</category>
      <category>twilio</category>
    </item>
  </channel>
</rss>
