Work

Expertise

About

Resume

Work

Expertise

About

Resume

Work

Expertise

About

Resume

GHOSTMEET: AI NOTETAKER

Ghostmeet — a native iOS & macOS app. Records meetings, generates AI summaries and action items, respects your privacy. Built solo in Swift. Live on the App Store.

Ghostmeet — a native iOS & macOS app. Records meetings, generates AI summaries and action items, respects your privacy. Built solo in Swift. Live on the App Store.

COMPANY

COMPANY

Ghostmeet

Ghostmeet

ROLE

ROLE

Founder — Design + Code

Founder — Design + Code

PLATFORM

PLATFORM

iOS + macOS (Native Swift)

iOS + macOS (Native Swift)

STATUS

STATUS

Live on App Store

Live on App Store

FOCUS

FOCUS

AI, Privacy, Native UX

AI, Privacy, Native UX

AI

Founding Design

SaaS

B2C

Mobile

MacOs

Overview

Otter, Fireflies, Fathom — they all require a bot in your meeting, upload audio to their servers, and train on your data. For anyone in legal, medical, or hiring conversations, that's a non-starter. I wanted a notetaker that stays invisible, runs natively on Apple, and keeps your data yours. I'm a designer who codes in Swift. Figma in the morning, Xcode by evening.

Zero handoff friction — design intent goes straight to native code. That's why I could ship this solo.

The gap I saw

Every AI notetaker on the market is a web app with a meeting bot. They're intrusive (participants see "Otter.ai is recording"), they're cloud-dependent (your conversations live on someone else's server), and they don't feel like native tools — they feel like browser tabs. I wanted to build something different: an AI notetaker that feels like it's part of your Mac and iPhone, runs privately, and stays invisible.

Why I built it myself

I'm a product designer who also codes in Swift. That's a rare combination, and it gave me a superpower: I could design a feature in Figma in the morning and ship it in Xcode by evening. No handoff friction, no "that's not technically possible" — just direct translation from design intent to native code. I used this to iterate faster than any team could.

Problem 1

A bot joins your call. Everyone sees it. Kills trust in sensitive conversations.

Problem 2

Audio uploaded to third-party servers. No control over your data. Compliance nightmare for enterprise.

Problem 3

Most tools are web apps or Electron wrappers. Heavy, slow, don't integrate with macOS natively.

The Solution

A native macOS app that nobody knows is running.

Ghostmeet lives in the menu bar. One click to record. Captures system audio + mic. Transcribes in real-time. When the meeting ends — AI summary with action items. Everything stays on your Mac.

  • Record Effortlessly

    Never miss a detail again.

  • AI Summary

    Understand what really matters.

  • Tasks & Insights

    Get outcomes, not just notes.

  • Smart Search

    Find any moment in seconds.

  • Privacy First

    Your recordings stay on your device. Always.

  • Works Everywhere

    Any meeting. Any platform. 50+ languages.

Tech Stack & Why

Every technical choice was a design decision.

I'm a designer who codes in Swift. That means I don't just pick a stack — I pick the stack that lets me build the UX I designed, with no compromises.

I'm a designer who codes in Swift. That means I don't just pick a stack — I pick the stack that lets me build the UX I designed, with no compromises.

Every technical choice was a design decision.

Native SwiftUI + AVFoundation + ScreenCaptureKit

Native SwiftUI + AVFoundation + ScreenCaptureKit

~40MB RAM. System audio capture without virtual drivers. Keyboard shortcuts, Spotlight integration, native notifications. Feels like Apple built it.

~40MB RAM. System audio capture without virtual drivers. Keyboard shortcuts, Spotlight integration, native notifications. Feels like Apple built it.

One-tap recording

One-tap recording

Record on Mac, review on iPhone. iCloud sync keeps your meetings, transcripts, and summaries available across all your Apple devices — no account needed beyond your Apple ID.

Record on Mac, review on iPhone. iCloud sync keeps your meetings, transcripts, and summaries available across all your Apple devices — no account needed beyond your Apple ID.

Platform conventions

Platform conventions

Native navigation, standard gestures, system fonts, SF Symbols, Dark Mode support, Dynamic Type. It feels like Apple built it — that's intentional.

Native navigation, standard gestures, system fonts, SF Symbols, Dark Mode support, Dynamic Type. It feels like Apple built it — that's intentional.

Deep Dive: AI-Powered Features

The AI doesn't just transcribe. It understands.

The AI doesn't just transcribe. It understands.

Transcription is table stakes. What makes Ghostmeet useful is what happens after: automatic summaries, extracted action items, key decisions highlighted, and the ability to search across all your meetings by meaning — not just keywords.

Transcription is table stakes. What makes Ghostmeet useful is what happens after: automatic summaries, extracted action items, key decisions highlighted, and the ability to search across all your meetings by meaning — not just keywords.

The features

Real-time transcription

Real-time transcription

Live speech-to-text as the meeting happens. Speaker diarization identifies who said what. Supports multiple languages.

Live speech-to-text as the meeting happens. Speaker diarization identifies who said what. Supports multiple languages.

AI summary generation

AI summary generation

When the meeting ends, AI processes the transcript and generates a structured summary within seconds. No waiting, no manual trigger.

When the meeting ends, AI processes the transcript and generates a structured summary within seconds. No waiting, no manual trigger.

Action item extraction

Action item extraction

AI identifies commitments and tasks from the conversation. Each action item links back to the moment it was discussed, so there's never ambiguity about context.

AI identifies commitments and tasks from the conversation. Each action item links back to the moment it was discussed, so there's never ambiguity about context.

Zoom & Google Meet integration

Zoom & Google Meet integration

Connects to your calendar, detects upcoming meetings, and auto-starts recording when calls begin. No bot joins the call — Ghostmeet captures audio natively from your device.

Connects to your calendar, detects upcoming meetings, and auto-starts recording when calls begin. No bot joins the call — Ghostmeet captures audio natively from your device.

Design Process

WIREFRAMES

Wireframes → Prototypes → Code → Test. Solo.

Wireframes → Prototypes → Code → Test. Solo.

No handoff to engineers. I design in Figma, then build it myself in Xcode. That means every wireframe is grounded in what's technically possible on macOS — and every line of code serves a design decision.

No handoff to engineers. I design in Figma, then build it myself in Xcode. That means every wireframe is grounded in what's technically possible on macOS — and every line of code serves a design decision.

Discovery

Discovery

Stakeholder interviews, field visits to construction sites, competitive analysis, and data audit of existing telemetry systems

Stakeholder interviews, field visits to construction sites, competitive analysis, and data audit of existing telemetry systems

Define

Define

User personas, journey maps, information architecture, and feature prioritization with product and engineering leads

User personas, journey maps, information architecture, and feature prioritization with product and engineering leads

Design

Design

Wireframes, user flows, high-fidelity mockups in Figma, interactive prototypes, and design system components

Wireframes, user flows, high-fidelity mockups in Figma, interactive prototypes, and design system components

Coding: SwiftUI + AVFoundation + CoreML

Coding: SwiftUI + AVFoundation + CoreML

Usability testing with site managers, stakeholder review sessions, engineering feasibility check, and iteration cycles

Usability testing with site managers, stakeholder review sessions, engineering feasibility check, and iteration cycles

Testing: TestFlight → real users → App Store

Testing: TestFlight → real users → App Store

Distributed V1 via TestFlight to 20 beta testers (US-based professionals). Collected feedback over 3 weeks. Key findings: onboarding was too complex (3 permissions upfront → 60% drop-off), transcript-first view was ignored, paywall was in the wrong place. All of this fed directly into the iteration cycle.

Distributed V1 via TestFlight to 20 beta testers (US-based professionals). Collected feedback over 3 weeks. Key findings: onboarding was too complex (3 permissions upfront → 60% drop-off), transcript-first view was ignored, paywall was in the wrong place. All of this fed directly into the iteration cycle.

Iteration

Three versions. Each one fixed what the last one got wrong.

Three versions. Each one fixed what the last one got wrong.

First release on the US App Store. Basic recording, basic transcription, basic summary. I shipped fast to get real data — and the data was brutal.

First release on the US App Store. Basic recording, basic transcription, basic summary. I shipped fast to get real data — and the data was brutal.

1

1

3 permissions upfront

3 permissions upfront

Mic, screen recording, calendar — all at once. ~60% dropped before their first meeting.

Mic, screen recording, calendar — all at once. ~60% dropped before their first meeting.

2

2

Paywall before the "aha" moment

Paywall before the "aha" moment

Transcript was free, but summary was paid. Users never saw the value before being asked to pay.

Transcript was free, but summary was paid. Users never saw the value before being asked to pay.

3

3

One summary format for all meetings

One summary format for all meetings

Standups, sales calls, hiring — same generic output. "Doesn't feel useful for my type of meetings."

Standups, sales calls, hiring — same generic output. "Doesn't feel useful for my type of meetings."

Impact & Results

Ghostmeet isn't a concept or a prototype

30%

Transcription accuracy gain

Transcription accuracy gain

Cloud
Cloud
Cloud
02468
01235
%

Onboarding completion (V3)

02468
01235
%

Onboarding completion (V3)

00112
00000
00000
00000

App Store downloads

00112
00000
00000
00000

App Store downloads

00001
00000
+

Meetings processed

00001
00000
+

Meetings processed

Privacy-First Architecture

Your meetings are yours. Not mine. Not a cloud's.

Your meetings are yours. Not mine. Not a cloud's.

Privacy isn't a feature I bolted on — it's a foundational design decision that shaped the entire product architecture. Every UX choice was filtered through: "Does this require sending conversation data to a server?"

Privacy isn't a feature I bolted on — it's a foundational design decision that shaped the entire product architecture. Every UX choice was filtered through: "Does this require sending conversation data to a server?"

Landing page

Landing page

The landing page leads with the privacy angle — it's the sharpest differentiator. "Your meetings, your data." The hero shows the product in context (a Mac with Zoom and Ghostmeet running side by side), and the feature breakdown emphasizes what's different vs. competitors, not what's similar. I A/B tested two positioning approaches: "AI notetaker" (category) vs. "Private meeting assistant" (differentiator). The privacy-led positioning converted [XX]% better.

The landing page leads with the privacy angle — it's the sharpest differentiator. "Your meetings, your data." The hero shows the product in context (a Mac with Zoom and Ghostmeet running side by side), and the feature breakdown emphasizes what's different vs. competitors, not what's similar. I A/B tested two positioning approaches: "AI notetaker" (category) vs. "Private meeting assistant" (differentiator). The privacy-led positioning converted [XX]% better.

Subscription model

Subscription model

I designed a freemium model with a clear upgrade trigger. Free users get [X] meetings per month with transcription. Paid subscribers get unlimited meetings, AI summaries, action items, and integrations.

I designed a freemium model with a clear upgrade trigger. Free users get [X] meetings per month with transcription. Paid subscribers get unlimited meetings, AI summaries, action items, and integrations.

Go-to-Market

From idea to App Store — built, designed, and shipped solo

From idea to App Store — built, designed, and shipped solo

Ghostmeet isn't a concept or a prototype. It's a live product with real users, real revenue, and real reviews.

Ghostmeet isn't a concept or a prototype. It's a live product with real users, real revenue, and real reviews.

Data-driven iteration in production

Data-driven iteration in production

Three major versions, each driven by real usage data. I tracked onboarding completion, paywall conversion, summary engagement, and transcription quality — then redesigned and retrained models based on what the data showed. This isn't a case study about a design; it's a case study about a product that evolved through real feedback loops.

Three major versions, each driven by real usage data. I tracked onboarding completion, paywall conversion, summary engagement, and transcription quality — then redesigned and retrained models based on what the data showed. This isn't a case study about a design; it's a case study about a product that evolved through real feedback loops.

Full-stack product ownership

Full-stack product ownership

I did it all: user research, UX design, visual design, SwiftUI development, AI model training, App Store optimization, landing page, pricing strategy, and customer support. This project demonstrates that I don't just design screens — I build, train models, and ship complete products.

I did it all: user research, UX design, visual design, SwiftUI development, AI model training, App Store optimization, landing page, pricing strategy, and customer support. This project demonstrates that I don't just design screens — I build, train models, and ship complete products.

Full-stack product ownership

Full-stack product ownership

I did it all: user research, UX design, visual design, SwiftUI development, AI model training, App Store optimization, landing page, pricing strategy, and customer support. This project demonstrates that I don't just design screens — I build, train models, and ship complete products.

I did it all: user research, UX design, visual design, SwiftUI development, AI model training, App Store optimization, landing page, pricing strategy, and customer support. This project demonstrates that I don't just design screens — I build, train models, and ship complete products.

Reflection

Results

What building Ghostmeet taught me

What building Ghostmeet taught me

Live on the US App Store. Real users. Built by one person.

When I design a feature at a company, I hand off specs and hope the implementation matches. When I design a feature for Ghostmeet, I open Xcode and make it real. This has fundamentally changed how I design — I think in terms of real constraints, real performance, real platform APIs. I design less and ship more, and the quality is higher because there's zero translation loss.

When I design a feature at a company, I hand off specs and hope the implementation matches. When I design a feature for Ghostmeet, I open Xcode and make it real. This has fundamentally changed how I design — I think in terms of real constraints, real performance, real platform APIs. I design less and ship more, and the quality is higher because there's zero translation loss.

Privacy as a product moat, not a limitation

Privacy as a product moat, not a limitation

I initially worried that privacy constraints would make the product worse — slower, less powerful, fewer features. Instead, privacy became the reason people chose Ghostmeet. The constraint forced creative solutions (on-device processing, iCloud sync, no-bot architecture) that ended up being better UX, not just more private UX. The best products come from constraints, not from unlimited options.

I initially worried that privacy constraints would make the product worse — slower, less powerful, fewer features. Instead, privacy became the reason people chose Ghostmeet. The constraint forced creative solutions (on-device processing, iCloud sync, no-bot architecture) that ended up being better UX, not just more private UX. The best products come from constraints, not from unlimited options.

AI trust is earned, not assumed

AI trust is earned, not assumed

When I launched with transcript-first output, nobody read the notes. When I switched to summary-first with linked action items, usage jumped. The lesson: AI output needs to match the user's mental model of the task. People don't want transcripts — they want to know "what do I need to do after this meeting?" Design the output around the job to be done, not the technical capability.

When I launched with transcript-first output, nobody read the notes. When I switched to summary-first with linked action items, usage jumped. The lesson: AI output needs to match the user's mental model of the task. People don't want transcripts — they want to know "what do I need to do after this meeting?" Design the output around the job to be done, not the technical capability.

Native > cross-platform, always

Native > cross-platform, always

I could have shipped faster with React Native or Electron. But the menu bar experience, the iCloud sync, the system audio capture, the haptics — none of that works cross-platform. Going native meant slower initial development but a product that feels fundamentally better to use. Users notice. The App Store reviews consistently mention how "smooth" and "natural" the app feels. That's the native advantage.

I could have shipped faster with React Native or Electron. But the menu bar experience, the iCloud sync, the system audio capture, the haptics — none of that works cross-platform. Going native meant slower initial development but a product that feels fundamentally better to use. Users notice. The App Store reviews consistently mention how "smooth" and "natural" the app feels. That's the native advantage.

Takeaways from building a product solo

Zero translation loss

Zero translation loss

When I design at a company, I hand off specs. At Ghostmeet, I open Xcode. No gap between intent and implementation. This changed how I think about design permanently — I design in real constraints, not ideal conditions.

When I design at a company, I hand off specs. At Ghostmeet, I open Xcode. No gap between intent and implementation. This changed how I think about design permanently — I design in real constraints, not ideal conditions.

Constraints make better products

Constraints make better products

Privacy became the competitive moat

Privacy wasn't a limitation — it became the moat. On-device processing, no bot, iCloud sync — these constraints forced better UX, not worse. The App Store reviews prove it: users consistently mention how "smooth" and "natural" it feels.

Privacy wasn't a limitation — it became the moat. On-device processing, no bot, iCloud sync — these constraints forced better UX, not worse. The App Store reviews prove it: users consistently mention how "smooth" and "natural" it feels.

On-device processing wasn't a limitation — it became the product's defining feature. US enterprise users in legal, HR, and healthcare chose Ghostmeet specifically because of this. The App Store reviews prove it: "smooth", "natural", "finally a notetaker I can trust."

Next Project