DEV Community

Jack Green
Jack Green

Posted on Originally published at tools.jackgreen.top

I Built a Free AI Meeting Notes Summarizer (Because Otter.ai Charges $10/month)

The problem with Otter.ai

Every meeting notes tool I've tried asks for a credit card, demands a signup, or quietly ships your conversations to a cloud server. Otter.ai is great — if you're okay paying $10/month and handing over your meeting data.

I wanted something simpler: paste a transcript or hit record, get a summary, and know that nothing was sent anywhere.

Building it client-side

The whole tool is two HTML files and a JavaScript file. No build step, no framework, no API key.

Voice recording with Web Speech API

const recognition = new SpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.onresult = (event) => {
  liveTranscript = Array.from(event.results)
    .map(r => r[0].transcript)
    .join(' ');
};
Enter fullscreen mode Exit fullscreen mode

The browser handles the audio. No server call. No microphone permission for a third party.

Extractive summarization in pure JS

No LLM needed. I used a classic approach: score each sentence by word frequency (excluding stop words), give bonus points to the first and last sentences, then pick the top 30%.

// ponytail: simple extractive summarizer — no external dependencies
const stopWords = new Set(['the','a','an','is','are','was','were','of','at','by','for',
  'with','about','to','from','in','on','and','or','but','it','this','that','they','their']);

function summarize(text) {
  const sentences = text.split(/[.!?]\s+/).filter(s => s.trim().length > 10);
  // Score each sentence by keyword frequency…
  // Pick top 30%, reorder by original position
}
Enter fullscreen mode Exit fullscreen mode

That's it. The summary is generated entirely in the user's browser. Zero latency, zero cost, zero data leaving the machine.

What runs on the server?

Nothing. Two static HTML files served from nginx. The same files work from file:// or any static host. There is no backend, no database, no API endpoint.

The tradeoffs

  • Good: zero latency, zero cost to operate, fully offline after first load, privacy-preserving by architecture
  • Okay: the summarizer is extractive (picks key sentences), not abstractive (no LLM rewriting). For most meetings, it's more than enough.
  • Known: Web Speech API isn't supported in Safari. Paste mode works everywhere.

Try it

https://tools.jackgreen.top/ai-meeting-notes-summarizer/

Free forever. No signup. No watermark.

Top comments (0)