A modern, AI-powered task and knowledge management application built with React and TypeScript. Focus Hub helps you organize your work items, projects, and ideas with universal AI assistant integration supporting ChatGPT, Google Gemini, Claude, and more.
- Multi-Platform Support: Works with ChatGPT, Google Gemini, Claude, and any REST API
- Natural Language Interface: Query and manage tasks using conversational AI
- Intelligent Processing: AI Gateway understands context and intent
- Real-time Sync: Automatic synchronization between AI and app
- Offline Support: Queue operations when offline, sync when reconnected
- Grouped View: Hierarchical organization by categories and subcategories
- Table View: Flat list with sortable columns and quick overview
- Clean, minimalist design inspired by Excalidraw
- Dark mode support with automatic system detection
- Smooth animations and transitions
- Responsive layout for all screen sizes
- API sync status indicator
- Categories: Top-level organization (Personal, Work, Project, etc.)
- Subcategories: Second-level grouping within categories
- Items: Individual tasks or knowledge items
- Tags: Cross-cutting labels for flexible organization
- Reorder items within categories
- Move items between categories and subcategories
- Visual feedback during dragging
- Different behavior for Grouped vs Table view
- Local browser storage using IndexedDB (Dexie)
- Import/Export functionality with compression
- Automatic saving
- No server required - fully client-side
- Progress tracking (0-100%)
- External links
- Notes and descriptions
- Comments system
- Tags with autocomplete
- Real-time search
- Notes view for free-form documentation
- Category management (add, rename, recolor)
- Subcategory creation
- Context menus for quick actions
- Keyboard shortcuts (ESC to close modals)
- Node.js 18+ (for native fetch support)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/focus-hub.git
cd focus-hub- Install dependencies:
# Main app
npm install
# API server dependencies
cd server
npm install
# MCP server dependencies (for Claude)
cd ../mcp-server
npm install- Start the services:
Terminal 1 - React App:
npm start
# Runs on http://localhost:3000Terminal 2 - API Server (optional, for AI features):
cd server
node index.js
# Runs on http://localhost:3001Terminal 3 - AI Gateway (optional, for AI features):
cd server
node ai-gateway.js
# Runs on http://localhost:3002- Open http://localhost:3000 in your browser
npm run buildThis creates an optimized production build in the build/ folder.
- React 18 - UI framework
- TypeScript - Type safety
- Tailwind CSS - Styling (custom theme system)
- Dexie.js - IndexedDB wrapper
- @dnd-kit - Drag and drop
- @tanstack/react-table - Table management
- Lucide React - Icons
- LZ-String - Data compression
- Express.js - REST API server
- SQLite3 - Database for API server
- MCP SDK - Claude Desktop integration
- OpenAPI 3.0 - API specification
- Natural Language Processing - Custom query parser
focus-hub/
βββ src/
β βββ components/
β β βββ WorkTable/ # Main table component
β β βββ Modals/ # All modal dialogs
β β βββ Notes/ # Notes view
β β βββ ApiSync/ # API synchronization UI
β β βββ SettingsMenu/ # Settings dropdown
β βββ hooks/ # Custom React hooks
β βββ services/
β β βββ database.ts # IndexedDB operations
β β βββ apiClient.ts # API client with offline support
β βββ contexts/ # React contexts (Theme)
β βββ theme/
β β βββ styles.ts # Centralized styling system
β βββ types/ # TypeScript definitions
β βββ utils/ # Helper functions
βββ server/
β βββ index.js # REST API server
β βββ ai-gateway.js # Universal AI gateway
β βββ openapi.yaml # OpenAPI specification
β βββ focushub.db # SQLite database
βββ mcp-server/
β βββ index.js # Claude MCP server
βββ integrations/
β βββ chatgpt-action.json # ChatGPT configuration
β βββ gemini-extension.json # Gemini configuration
βββ docs/
βββ USER_GUIDE.md # Comprehensive user guide
βββ AI_AGENT_SETUP.md # AI setup instructions
βββ UNIVERSAL_AI_INTEGRATION.md # Universal AI guide
- Click "Add Item" button or use category menu
- Fill in item details (name, category, tags, etc.)
- Items added from a category auto-select that category
- Click settings menu β "Manage Categories"
- Add, rename, or change category colors
- Categories persist across sessions
- Grouped View: Drag items between categories/subcategories
- Table View: Reorder items in the list
- Drag handle appears on hover
- Global search across all item fields
- Filters work in both view modes
- Real-time results as you type
- Export: Settings β Export Data
- Import: Settings β Import Data
- Data is compressed for smaller file sizes
ChatGPT:
- Start servers:
node server/index.jsandnode server/ai-gateway.js - Use ngrok:
ngrok http 3002 - Import OpenAPI spec in ChatGPT Actions
- Query: "Show me all tasks in Work category"
Google Gemini:
- Upload
integrations/gemini-extension.jsonto AI Studio - Point to
http://localhost:3002/api/ai/gemini - Use natural language to manage tasks
Claude Desktop:
- Add MCP server to
claude_desktop_config.json - Restart Claude Desktop
- Use Focus Hub tools directly in Claude
Example AI Queries:
- "Create a new project for mobile app"
- "Show me all urgent tasks"
- "Mark task ABC as completed"
- "Give me analytics about my work items"
See UNIVERSAL_AI_INTEGRATION.md for detailed setup.
- Push code to GitHub
- Import repository in Vercel
- Deploy with default settings
- Build the project:
npm run build - Deploy the
build/folder to any static hosting service - No server configuration needed
REACT_APP_API_URL=http://localhost:3001/api # Optional, for API syncPORT=3001 # API server port
AI_GATEWAY_PORT=3002 # AI gateway port
DB_PATH=./focushub.db # Database file location| Endpoint | Method | Description |
|---|---|---|
/api/health |
GET | Health check |
/api/items |
GET | Get all items (with filters) |
/api/items |
POST | Create new item |
/api/items/:id |
GET | Get specific item |
/api/items/:id |
PUT | Update item |
/api/items/:id |
DELETE | Delete item |
/api/categories |
GET | List all categories |
/api/tags |
GET | List all unique tags |
/api/analytics |
GET | Get analytics data |
/api/sync |
POST | Bulk sync items |
/api/ai/query |
POST | Natural language query |
/api/ai/health |
GET | AI gateway health check |
- Categories: Stored in localStorage and synced to API
- Theme: Auto-detects system preference
- Data: Stored in browser's IndexedDB with API backup
- AI Responses: Customizable per platform in gateway server
- Initial Load: ~140KB gzipped
- Build Size: 2.2MB uncompressed
- Dependencies: Optimized for production
- Browser Support: Modern browsers (Chrome, Firefox, Safari, Edge)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Design inspired by Excalidraw
- Icons from Lucide
- Built with Create React App
- AI Integration powered by:
- π€ Universal AI Integration: Support for ChatGPT, Gemini, Claude, and REST APIs
- π API Server: Complete REST API with SQLite backend
- π§ Natural Language Processing: AI Gateway for intelligent query parsing
- π‘ Real-time Sync: Automatic synchronization with offline support
- π¨ Improved UI: Consistent styling system and better tag management
- Centralized theme system with consistent naming
- API client with queue management
- OpenAPI 3.0 specification
- MCP server for Claude Desktop
- Comprehensive test suites
For issues, questions, or suggestions:
- π Open an issue on GitHub
- π Check the User Guide for detailed instructions
- π€ Read the AI Integration Guide for AI setup
Made with β€οΈ by VZ | v2.0.0 | October 2025