CoRATES is a web application designed to streamline the entire quality and risk-of-bias appraisal process with intuitive workflows, real-time collaboration, and automation, creating greater transparency and efficiency at every step. Built for researchers conducting evidence synthesis, it enables real-time collaboration, offline support, and PDF annotation.
See the detailed Contributing Guide for step-by-step setup instructions.
See detailed Documentation for more info.
See the Code of Conduct.
See Security.
- Framework: SolidJS with @solidjs/router for client-side routing
- Build: Vite with vite-plugin-solid (web package) / SolidStart with Vinxi (landing package)
- Styling: Tailwind CSS v4 with @tailwindcss/vite
- UI Components: Ark UI (via @corates/ui package) + solid-icons
- Data Fetching: TanStack SolidQuery (reactive server state management)
- Tables: TanStack Solid Table
- Charts: Chart.js + solid-chartjs
- PDF Viewer: EmbedPDF with plugin ecosystem
- Local Storage: Dexie (IndexedDB wrapper) with y-dexie for Yjs persistence
- Forms & Validation: Zod (schema validation)
- Testing: Vitest + @solidjs/testing-library + jsdom
- Runtime: Cloudflare Workers (serverless edge compute)
- Real-time: Durable Objects (stateful computing for WebSocket connections)
- Framework: Hono (lightweight web framework for Workers)
- Database: Cloudflare D1 (serverless SQLite)
- ORM: Drizzle ORM with automatic migration generation (drizzle-kit)
- Storage: Cloudflare R2 (S3-compatible object storage for PDFs)
- Auth: Better Auth with Stripe integration for payments
- Email: Postmark for transactional emails
- Validation: Zod
- Testing: Vitest with @cloudflare/vitest-pool-workers
- Package Manager: pnpm with workspaces
- Build Orchestration: Turbo
- Linting: ESLint with custom CoRATES rules
- Code Format: Prettier
- Type Safety: TypeScript with jsconfig.json path aliases
- CRDT: Yjs (Conflict-free Replicated Data Type)
- WebSocket: y-websocket for client-server sync
- Local Persistence: y-dexie for IndexedDB storage
- Protocol: y-protocols for Durable Objects communication
packages/web- SolidJS frontend application with Vitepackages/landing- Marketing site built with SolidStart (meta-framework) and Vinxi, includes bundled web apppackages/workers- Cloudflare Workers backendpackages/ui- Shared Ark UI component library with prestyled + primitive variantspackages/shared- Shared TypeScript utilities, types, and error definitionspackages/docs- Vitepress documentation and guidespackages/mcp- MCP server for development tools and documentation
PolyForm Noncommercial License 1.0.0 - see LICENSE for details.
Jacob Maynard
