A modern search interface for discovering open-access research papers across leading academic sources. Unifies search across arXiv, CORE, Europe PMC, NCBI, OpenAIRE, and other repositories, providing access to more than 90 million papers worldwide.
- Multi-source search across academic repositories
- Smart PDF resolution with automatic fallback chains
- Intelligent caching with Redis and in-memory layers
- Adaptive source selection based on query patterns
- Real-time faceting by source, year, venue, and more
- Performance monitoring and optimization
Prerequisites: Node.js 18+, pnpm 8+, Docker
# Install dependencies
pnpm install
# Copy environment file
cp docs/env.example .env
# Start services (Redis, Typesense)
docker-compose up -d
# Start development servers
pnpm devVisit http://localhost:3000
Comprehensive documentation is available in the /docs directory:
- Architecture - System design and components
- API Reference - Endpoints and data models
- Development - Setup and development guide
- Configuration - Environment variables and settings
Frontend: Next.js 14, TypeScript, Tailwind CSS, shadcn/ui
Backend: Fastify, TypeScript, Node.js
Search: Typesense, Meilisearch, Algolia
Cache: Redis, NodeCache
Data Sources: arXiv, CORE, Europe PMC, NCBI, OpenAIRE, and more
sci-open/
├── apps/
│ ├── web/ # Next.js frontend
│ └── api/ # Fastify API server
├── packages/
│ ├── shared/ # Shared types
│ └── search/ # Search adapters
└── docs/ # Documentation
MIT License