Upload Discord exports. Dedupe, classify, ship to Notion. Built for people drowning in community signal.
Built on
Discord is where your users actually talk. It’s also where that signal goes to die.
0
files ingested in test
0
servers supported
0
char min for LLM eligibility
How the pipeline works
Upload .txt
Drag and drop Discord export files. One file per channel.
Tinkerer Club - ai - ai-av-generation [1468719053190463638].txtParse filename
Extract server, category, channel, and discord_channel_id from the filename convention.
Server - Category - Channel [ID].txtThree-pass categorize
Links (rule-based), Popular (reaction_score ≥ 3), Products (GPT-4.1 Mini, batched 20).
categories: ["links", "popular", "products"]Filter + export
Cascading filters, full-text search, then export to Notion, CSV, or JSON.
POST /api/export-notion { messageIds, notionDbId }What you get
Content-hash dedup
Unique index on (server, category, channel, author, timestamp, content_hash). MD5 of content, first 16 chars. No false duplicates even for same-minute messages.
CREATE UNIQUE INDEX ON messages
(server, category, channel,
author, timestamp, content_hash);Auto-loop classification
Loops until all messages are classified. Progress bar, cancel button. GPT-4.1 Mini in batches of 20, 0.5s between batches.
Cookie auth
30-day cookie set on first visit with ?secret=. Edge middleware for cookie check, service role server-side only.
Saved filter presets
Save any combination of filters to localStorage. Pill UI for quick recall. Delete presets you no longer need.
Cross-page select
Gmail-style "Select all N matching" banner. Works across pages — fetches from API when selections span pagination.
Cascade delete
Delete an upload and all its messages go with it. Orphaned messages (uploaded before tracking) can be bulk-deleted from the UI.
Upload
Filters
Classification
Architecture
- Next.js 16 + App Router + TypeScript strict
- Supabase Postgres with RLS, RPC, FTS
- GPT-4.1 Mini for product classification
- Notion API export with retry/backoff
- Edge middleware for auth
- Content-hash dedup (MD5, 16 chars)
- Batched classification (20/batch, 100/request)
- CSV + JSON + Notion export paths
Free. Self-hosted. Your data, your keys.
- Supabase free tier
- OpenAI pay-as-you-go (~$0.15/1M tokens)
- Vercel free tier
- Notion API free
Want it built for you?
Need a custom deployment, extra integrations, or help wiring it into your stack — get in touch.