One-stop search across all your services โ declutter and find docs about related topics across different platforms in one organized workspace.
komo is a unified search hub that integrates multiple workspace platforms (Slack, Notion) into a single, intelligent search interface. Instead of jumping between apps and using multiple search bars, komo lets you search everything at once and get AI-powered summaries of your results.
Think of it as cmd-f for your entire workspace โ but smarter.
- Multi-platform search: Search across Slack and Notion simultaneously
- Real-time results: See results as you type, with instant filtering
- Smart highlighting: Search keywords are automatically bolded in results
- Toggle apps: Choose which services to search (Slack, Notion, or both)
- Intelligent categorization: Results are grouped by topic and context
- Concise summaries: Get 10-20 word summaries for each topic
- Reference links: Direct links to original sources
- Multi-source insights: Summaries combine information from all active apps
- Thread support: View full Slack conversation threads with replies
- Page previews: See complete Notion page content with highlighted keywords
- Quick access: Cmd+Click or Cmd+Enter to open original sources in new tabs
- Metadata display: See channel names, authors, dates, and page titles
- Cached searches: Notion pages are cached locally to avoid API rate limits
- In-memory caching: Recent searches are cached for instant results
- Word-based matching: Intelligent search that matches individual words
- Deduplication: Automatic removal of duplicate results
- Express.js server with TypeScript
- Slack API integration for message and thread search
- Notion API integration with local SQLite caching
- Google Gemini AI for intelligent summarization
- Rate limit protection: Smart caching to prevent API throttling
- Next.js 16 with React 19
- Tailwind CSS v4 for styling
- Real-time search: Debounced queries with request cancellation
- Split-view UI: Search results on the left, summary and information on the right
- Responsive design: Beautiful, modern interface with smooth animations
- Node.js >= 20.9.0
- npm or yarn
- Slack API token
- Notion API token
- Google Gemini API key
-
Clone the repository
git clone https://github.com/aircon2/komo.git cd komo -
Backend Setup
cd unified-search/backend npm install -
Create
.envfile inunified-search/backend/:SLACK_ACCESS_TOKEN=your_slack_token_here NOTION_TOKEN=your_notion_token_here GEMINI_API_KEY=your_gemini_key_here PORT=4000
-
Frontend Setup
cd ../frontend npm install -
Create
.env.localfile inunified-search/frontend/:NEXT_PUBLIC_API_URL=http://localhost:4000
-
Start the backend server
cd unified-search/backend npm run devServer will run on
http://localhost:4000 -
Start the frontend (in a new terminal)
cd unified-search/frontend npm run devFrontend will run on
http://localhost:3000 -
Open your browser and navigate to
http://localhost:3000
Live at: searchkomo.tech
For deployment instructions, see:
- QUICK_DEPLOY.md - Fast 15-minute deployment guide
- DEPLOYMENT.md - Detailed deployment documentation
Quick Summary:
- Frontend: Deploy to Vercel (Next.js)
- Backend: Deploy to Railway or Render (Express + SQLite)
- Domain: Configure
searchkomo.techin Vercel dashboard
- Add Apps: Click "new item" to add Slack and/or Notion to your search
- Search: Type your query in the search bar โ results appear in real-time
- View Results:
- Left panel shows all matching results with highlighted keywords
- Right panel shows AI-generated summary and detailed information
- Explore:
- Click any result to see full content (Slack threads or Notion pages)
- Cmd+Click or Cmd+Enter to open the original source in a new tab
- Toggle Apps: Use the app chips to filter which services to search
- Express.js - Web framework
- TypeScript - Type safety
- @slack/web-api - Slack integration
- @notionhq/client - Notion integration
- @google/generative-ai - Gemini AI for summarization
- better-sqlite3 - Local caching for Notion pages
- CORS - Cross-origin support
- Next.js 16 - React framework
- React 19 - UI library
- Tailwind CSS v4 - Styling
- Radix UI - Accessible component primitives
- Lucide React - Icon library
- TypeScript - Type safety
GET /api/search?q={query}- Unified search across all active appsGET /api/summarize?q={query}&sources={slack,notion}- AI-powered summaryPOST /api/cache/build- Manually rebuild Notion cachePOST /api/cache/clear- Clear all cached pages
- Glowing button hints: Visual cues guide users to add apps
- Smooth animations: Fade-in and slide transitions
- Keyboard shortcuts: Cmd+Enter to open links, arrow keys to navigate
- Responsive layout: Adapts to different screen sizes
- Accessible design: Built with Radix UI for screen reader support
.env files for hackathon/demo purposes. For production:
- Implement OAuth flows for Slack and Notion
- Store tokens securely (e.g., encrypted database)
- Never commit
.envfiles to version control
komo/
โโโ unified-search/
โ โโโ backend/
โ โ โโโ src/
โ โ โ โโโ config/ # Environment configuration
โ โ โ โโโ modules/
โ โ โ โ โโโ slack/ # Slack API integration
โ โ โ โ โโโ notion/ # Notion API integration
โ โ โ โโโ routes/ # API endpoints
โ โ โ โโโ shared/ # Shared utilities and services
โ โ โ โโโ local/ # SQLite cache for Notion
โ โ โโโ .env # Backend environment variables
โ โโโ frontend/
โ โโโ app/ # Next.js app directory
โ โโโ src/
โ โ โโโ components/ # React components
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ utils/ # Utility functions
โ โโโ .env.local # Frontend environment variables
โโโ README.md
Built for HackWestern (sponsored by Accenture) with a focus on:
- Speed: Caching strategies to avoid API rate limits
- UI-first: Beautiful, intuitive interface
- Smart defaults: Pre-configured for quick demo
- Performance: In-memory caching and optimized queries
This is a hackathon project. For improvements or bug fixes, please open an issue or submit a pull request.
ISC
Built with โค๏ธ for organized workspaces