- Click the "Deploy on Railway" button above
- Set up your environment variables in Railway:
TAVILY_API_KEY=your_tavily_api_key GOOGLE_AI_API_KEY=your_google_ai_api_key
- Railway will automatically detect the Dockerfile and deploy your application
- Node.js 18 or higher
- npm or yarn
- Docker (optional)
- Clone the repository:
git clone https://github.com/yourusername/rabbitholes.git
cd rabbitholes- Install dependencies:
npm install- Create environment files:
For backend (backend/.env):
PORT=3000
TAVILY_API_KEY=your_tavily_api_key
GOOGLE_AI_API_KEY=your_google_ai_api_keyFor frontend (frontend/.env.development):
REACT_APP_API_URL=http://localhost:3000/api- Start development servers:
# Start both frontend and backend in development mode
npm run dev
# Or start them separately
npm run frontend:dev
npm run backend:dev- Build the Docker image:
docker build -t rabbitholes .- Run the container:
docker run -p 3000:3000 \
  -e TAVILY_API_KEY=your_tavily_api_key \
  -e GOOGLE_AI_API_KEY=your_google_ai_api_key \
  rabbitholesOr using docker-compose:
docker-compose uprabbitholes/
βββ frontend/              # React frontend
β   βββ src/
β   βββ public/
β   βββ package.json
βββ backend/              # Express backend
β   βββ src/
β   βββ package.json
βββ Dockerfile           # Production Dockerfile
βββ docker-compose.yml   # Docker compose configuration
βββ package.json        # Root package.json for workspace
- PORT- Server port (default: 3000)
- TAVILY_API_KEY- Your Tavily API key
- GOOGLE_AI_API_KEY- Your Google AI API key
- REACT_APP_API_URL- Backend API URL- Development: http://localhost:3000/api
- Production: /api
 
MIT
Introducing Open RabbitHoles - an open source implementation inspired by the original RabbitHoles app, but with our own twist. Dive deep into the rabbit holes without the premium price tag. This tool helps you dive deep into any topics, discover unexpected connections, and visualize your research journey in an interactive mind map.
Built with React, Node.js, and powered by a combination of Tavily and Google AI, this implementation offers a unique approach to mind map style exploration and knowledge mapping.
 The main interface showing the "SEEK KNOWLEDGE" header and search functionality
The main interface showing the "SEEK KNOWLEDGE" header and search functionality
 An example exploration map showing topics around cosmic consciousness, panpsychism, and quantum entanglement
An example exploration map showing topics around cosmic consciousness, panpsychism, and quantum entanglement
 Exploring connections between Da Vinci's work and scientific mysteries
Exploring connections between Da Vinci's work and scientific mysteries
- π Free and open source alternative to premium research tools
- π Unique implementation combining multiple AI providers for better results
- π― Custom-built visualization algorithms for knowledge mapping
- π Enhanced with Tavily's search capabilities
- π‘ Powered by Google Gemini for deeper insights
- Interactive mind-map style exploration
- AI-powered content generation and connections
- Beautiful, fluid UI with React Flow
- Real-time topic exploration and visualization
- Seamless backend integration with OpenAI
- React
- TypeScript
- React Flow
- Tailwind CSS
- Dagre (for graph layouts)
- Node.js
- Express
- TypeScript
- OpenAI API integration
Potential production architecture for the project.
graph TD
    subgraph "Frontend Layer"
        UI[React UI]
        RF[React Flow Visualization]
        Store[State Management]
        UI --> RF
        UI <--> Store
        RF <--> Store
    end
    subgraph "Backend Core"
        direction TB
        API[Express API Gateway]
        Router[Dynamic Route Handler]
        Cache[In-Memory Response Cache]
        QP[Query Processor]
        CO[Conversation Orchestrator]
        
        API --> Router
        Router --> QP
        QP <--> Cache
        QP --> CO
    end
    subgraph "AI Service Layer"
        direction TB
        TO[Topic Orchestrator]
        subgraph "Search Services"
            TS[Tavily Search Engine]
            TC[Topic Contextualizer]
        end
        
        subgraph "AI Processing"
            GE[Gemini Engine]
            PP[Prompt Processor]
            KM[Knowledge Mapper]
        end
    end
    subgraph "Data Flow"
        Store <--> API
        Router <--> TO
        TO <--> TS
        TO <--> TC
        CO <--> PP
        PP <--> GE
        GE <--> KM
        KM --> TC
    end
    style Frontend Layer fill:#e1f5fe,stroke:#01579b
    style Backend Core fill:#e8f5e9,stroke:#2e7d32
    style AI Service Layer fill:#fce4ec,stroke:#c2185b
    style Data Flow fill:#fff3e0,stroke:#ef6c00
    - Node.js (v14 or higher)
- npm or yarn
- OpenAI API key
- Clone the repository
git clone https://github.com/AsyncFuncAI/rabbitholes.git
cd rabbitholes- Install dependencies
# Install root dependencies
npm install
# Install frontend dependencies
cd frontend
npm install
# Install backend dependencies
cd ../backend
npm install- Set up environment variables
# In backend/.env
PORT=3000
TAVILY_API_KEY= your_tavily_api_key
GOOGLE_AI_API_KEY= your_google_api_key- Start the development servers
# Start backend (from backend directory)
npm run dev
# Start frontend (from frontend directory)
npm start- Open your browser and navigate to http://localhost:3001
- Enter a topic you want to explore in the search bar
- Watch as the AI generates connections and builds your exploration map
- Click on nodes to dive deeper into subtopics
- Save and share your exploration paths
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.
This project is powered by Dojoma AI. Special thanks to team from Dojoma AI for contributing to this project.
Built with β€οΈ + πΊπΈ
