All Startup Ideas

SlackToDoc: Turn Team Chatter Into Organized Knowledge

SlackToDoc turns messy Slack threads into structured, continuously-updated Notion docs with decisions, action items, and a compliance-ready audit trail.

A product decision gets made at 11:47 p.m. in a thread twelve messages deep, buried under three unrelated conversations and a GIF. Two weeks later, a new hire asks "why did we pick Postgres over Mongo?" and the honest answer is "someone knows, scroll up." Slack is where knowledge-intensive teams actually think out loud, but Slack was never built to be a system of record — it's a stream, and streams don't preserve context once they scroll past the fold.

Built for Developers, Solo Founders, Weekend Builders.

The conversation intelligence software market is projected to grow from $25.3B in 2025 to $55.7B by 2035, an 8.2% CAGR (Future Market Insights), which is the closest direct-comparable category to what SlackToDoc sells.

Suggested stack: Next.js 14 + Vercel, Slack Bolt SDK + Events API, Claude Sonnet (structured output) + GPT-4o fallback, Notion API + Confluence API (v2 later), Supabase (Postgres + Auth), BullMQ + Redis. Weekend scope: about 10 hours.

The Problem

A product decision gets made at 11:47 p.m. in a thread twelve messages deep, buried under three unrelated conversations and a GIF. Two weeks later, a new hire asks "why did we…

The Solution

SlackToDoc sits inside the channels where decisions already happen and turns the useful 10% of the conversation into a living document, without anyone changing how they talk. Tag…

Market Research

The conversation intelligence software market is projected to grow from $25.3B in 2025 to $55.7B by 2035, an 8.2% CAGR (Future Market Insights), which is the closest…

Competitive Landscape

Grain — Best-in-class meeting-intelligence NLP: records calls, surfaces highlights, pushes summaries into Slack and Notion. Strong integrations, easy onboarding, but its whole…

Business Model

Free ($0) — One watched channel, manual @-tag capture only, "powered by SlackToDoc" footer on synced pages — the Slack App Directory discovery wedge

Recommended Tech Stack

Next.js 14 + Vercel — Admin dashboard for connecting workspaces, choosing watched channels, and reviewing flagged content; Edge functions handle the Slack event webhook for…

AI Prompts to Build This

Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.

  1. 1. Project Setup

    Build the weekend MVP of "SlackToDoc": mention the bot in a Slack thread and it reads that thread, pulls out the decisions, action items and open questions and shows them as a page you can accept or edit. It only reads a thread when someone mentions it there.
    
    Stack: Next.js (App Router), TypeScript, Tailwind, Supabase (Postgres, Row Level Security, Auth with email magic link), the Slack Events API with a bot token, the Anthropic API for extraction. Pages live in this app this weekend; sending them to another tool is the next step. Deploy on Vercel.
    
    Tables (Row Level Security on, a user reads only their own workspace's rows):
    - workspaces(id, slack_team_id, bot_token_encrypted, created_by)
    - channels_watched(id, workspace_id, slack_channel_id, mode)
    - extracted_items(id, workspace_id, slack_channel_id, source_message_ts, source_permalink, item_type, content, owner_hint, due_hint, confidence, status, created_at)  item_type is decision, action_item or open_question; status is draft, accepted or rejected; unique on workspace_id, source_message_ts and item_type
    - audit_log(id, workspace_id, item_id, action, actor, before jsonb, after jsonb, occurred_at)
    
    Screens: /login, /workspace (connect the Slack app), /threads (one page per thread), /threads/[id] (decisions, actions and questions with Accept and Edit).
    Env vars (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), SLACK_SIGNING_SECRET, SLACK_BOT_TOKEN, ANTHROPIC_API_KEY, TOKEN_ENCRYPTION_KEY.
    
    Do not build: billing, seats or an enterprise plan, a sync to Notion or Confluence, continuous channel watching, a queue or Redis, compliance policy flagging.
    Done when: npm run dev starts, you can sign in, and the four tables exist with Row Level Security on.
  2. 2. Core Feature

    Build the one feature that proves SlackToDoc: a thread becomes a short, linked page, and nothing is invented.
    1. POST /api/slack/events verifies the request signature and rejects a timestamp older than 5 minutes. For an app_mention it returns 200 at once, then does the work after the response.
    2. Fetch the thread with conversations.replies. Send only that thread's messages to the Anthropic API with a strict JSON schema { items: [{ message_ts, type: "decision" | "action_item" | "open_question" | "noise", summary, owner_user_id, due_date, confidence }] }.
    3. Check in code that every message_ts exists in the thread and that every owner_user_id is a person who posted in it. Drop noise, anything under 0.6 confidence and anything that fails the checks.
    4. Save each item with its permalink from chat.getPermalink. The unique key on the message and the type means running the same thread again updates the item in place and does not duplicate it.
    5. /threads/[id] groups the items into Decisions, Action items and Open questions, each with a link back to the Slack message. Accept and Edit change the status and the text. Reply in the thread with a link to the page.
    6. Write an audit_log row for every create, edit and status change with the before and after.
    Rules: read a thread only when the bot is mentioned in it, and read no other channel. Say in the Slack reply what was read. Never store a message that is not used in an item.
    Empty state: before the first mention, show how to add the bot to a channel and mention it.
    Done when: mentioning the bot in a sample thread creates items whose message links all work, a made-up message id is dropped, running the thread twice creates no duplicates, and each edit appears in the audit log.
  3. 3. Landing Page

    Build a one-page landing site for SlackToDoc, which turns a Slack thread into a page of decisions and actions.
    Hero: "Mention it once. Get the decisions out of the thread." Sub: "SlackToDoc reads only the thread you mention it in and writes the decisions, action items and open questions, each linked to the message it came from." One button: Join the waitlist.
    Sections: a sample thread next to its extracted page, how it works in three steps (mention, review, accept), and an FAQ on what it reads (only the thread you mention it in), what is stored and which document tools it will send pages to next.
    Waitlist: store the email in a waitlist table in Supabase. No other service.
    Style: Geist, an off-white background, near-black type, one violet accent.
    Done when: the page renders on a phone and a submitted email appears in the waitlist table.
  4. 4. Branding Package

    Use a design or image tool for this one. A coding agent cannot draw a logo.
    Brand for SlackToDoc: a wordmark and an icon that suggest a chat bubble folding into a page.
    Colors: off-white, near-black and one violet. Type: Geist.
    Deliverables: wordmark, icon, three item chips (decision, action, question) that differ by shape and letter as well as color, a thread page layout, and one launch graphic.
    Done when: each deliverable is saved in one folder and the item chips are distinguishable without color.