# How to Vibe Code Your Own Notin (and Stop Paying for It)

> AI-powered medical documentation and clinical workflow assistant

- Site: https://notin.com
- Category: Vertical AI / HealthTech
- Platforms: Web app
- Verdict: **Solid side project** (75/100 vibecodeable)
- Estimated effort: 2-3 weekends

## Verdict

You can build a fully functional personal medical transcription and note-structuring web tool over a couple of weekends, but compliance requirements like HIPAA and EHR integrations make public commercialization a heavy lift.

The core workflow of recording audio, piping it to Whisper, and prompting an LLM to output a structured JSON SOAP note is straightforward with modern toolings. The primary friction points are managing microphone permissions and stream stability in the browser, and designing strict JSON schemas so the LLM never invents medication dosages or patient symptoms.

### What you can't replicate

- Integrated electronic health record (EHR) connectors for Epic or Cerner
- Signed Business Associate Agreements (BAAs) for real patient data

## What it does

Securely captures patient encounters, transcribes and structures clinical data into medical charts, and automates medical coding insights.

### Core features

- Audio recording and streaming interface in browser
- Speech-to-text transcription integration
- Medical entity extraction and structured clinical JSON parsing
- SOAP note generation template renderer
- ICD/CPT medical billing code suggestions
- Patient encounter history management

## The business

### Pricing

- Provider Plan: Unknown — Custom demo or enterprise onboarding-gated pricing model for healthcare providers.

## The hard parts

- Noise cancellation and reliable audio capture in clinical environments
- Preventing LLM hallucinations in structured medical terminologies
- Enforcing strict JSON output schemata for clinical fields
- Managing PHI securely if deployed beyond local personal use

## How to vibe code Notin

### Prerequisites

- Node.js (Free): Runtime environment for building and running the Next.js web application.
- OpenAI API Key (Pay-per-use): Required to access Whisper for audio transcription and GPT models for medical summarization.

### Recommended AI tools

- Cursor: Ideal AI code editor for iterating rapidly on React UI components and API route structures.

### Stack

- Frontend: Next.js with Tailwind CSS and shadcn/ui components
- Backend: Next.js API routes / Server Actions
- Database: Turso (SQLite at the edge for storing encounter transcripts and notes)
- Auth: better-auth for self-hosted simple single-user or multi-provider authentication
- Payments: None (personal use clone)
- Other: OpenAI Whisper API for audio transcription, OpenAI GPT-4o / Anthropic Claude for clinical JSON extraction

### Hosting

- Cloudflare (Hosting the Next.js frontend and edge API routes with Turso database bindings): $0-5/mo

### Build guide

1. **Project Scaffolding and Database Schema** — Initialize a Next.js project with Tailwind CSS and configure Turso SQLite to manage patient encounters and generated notes.

```
Create a new Next.js application using App Router, TypeScript, and Tailwind CSS. Install better-sqlite3 or Turso client libraries for local database interactions. Design a database schema with tables for 'encounters' (id, patient_name, audio_url, raw_transcript, soap_note_json, billing_codes, created_at). Set up basic layout wrappers with a clean clinical dashboard aesthetic using dark/light slate styling.
```

2. **Audio Capture and Recording UI** — Implement browser-based MediaRecorder API hooks to capture high-fidelity voice notes directly in the web app.

```
Build a React component for audio capture using the browser MediaRecorder API. Include start, pause, resume, and stop controls with a live waveform or timer indicator. Ensure the recorded audio blob can be previewed locally and submitted via FormData to our backend API endpoints. Handle microphone permission error states gracefully.
```

3. **Transcription Integration** — Connect the recorded audio endpoint to the OpenAI Whisper API to transcribe clinical dictation accurately.

```
Implement a Next.js API route that accepts an uploaded audio file (WebM or MP4), saves it temporarily, and calls the OpenAI Whisper transcription API. Include medical terminology prompting or instructions to ensure accurate spelling of clinical drugs and anatomical terms. Return the resulting text string to the frontend UI.
```

4. **Clinical NLP and Structured Extraction** — Pass raw transcripts through an LLM using strict JSON schema validation to extract SOAP notes and medical codes.

```
Build a backend processing function that takes the raw transcript text and sends it to an LLM with a strict system prompt and Zod schema validation. The output must parse into a structured JSON object containing: subjective, objective, assessment, plan, and suggested ICD/CPT billing codes. Handle cases where the LLM response fails validation by implementing automated retry logic.
```

5. **Encounter Review and Export Dashboard** — Create an interactive editor view for physicians to inspect, tweak, and export generated medical notes.

```
Create a dashboard interface in Next.js that lists past encounters and opens a detailed review view. The view should display editable text boxes for each section of the SOAP note (Subjective, Objective, Assessment, Plan) and a badge list of suggested billing codes. Add a copy-to-clipboard button and a PDF download export utility for clinical documentation convenience.
```

### Cost vs paying

**Starting costs (one-time):**

- Cursor Pro subscription: $20
- OpenAI API credits: $10
- Total: ~$30 one-time

**Ongoing costs (monthly):**

- Cloudflare & Turso free tiers: $0
- OpenAI Whisper & LLM API usage: ~$5-15/mo depending on usage
- Total: ~$5-15/mo

- Paying for the SaaS instead: ~$100-300+/mo (estimated enterprise/per-provider tier)
- Build time: 12-18 hours
- AI tool credits: $20 (Cursor Pro)
- Break-even: Immediate if used personally

## Sources

- [Notin Official Website](https://notin.com)