Awesome ORPC Awesome
A curated list of amazing libraries, tools, tutorials, and resources for building type-safe APIs with oRPC.
oRPC is a powerful combination of RPC and OpenAPI that makes it easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards. No code generation requiredβjust pure TypeScript magic! β¨
Contributions are very welcome! Please read the Contributing Guidelines before submitting a PR.
Inspired by awesome-nodejs, awesome-trpc, and the awesome manifesto.
- Official Resources
- Core Packages
- Framework Integrations
- Schema Validators
- Client Libraries
- Developer Tools
- Examples & Playgrounds
- Starter Templates & Boilerplates
- Tutorials & Articles
- Videos & Courses
- Community Projects
- Plugins & Extensions
- Comparisons
- Community
- Related Projects
- Official Documentation - Comprehensive docs with guides and API references
- GitHub Repository - Main repository with source code
- NPM Organization - All official oRPC packages
- Official Benchmarks - Performance comparisons with similar libraries
- Release Notes - Latest updates and changelogs
- @orpc/server - Core server package for building APIs and implementing contracts
- @orpc/contract - Contract-first API development
- @orpc/openapi - Generate OpenAPI specs and handle OpenAPI requests
- @orpc/client - Type-safe client for consuming oRPC APIs
- @orpc/otel - OpenTelemetry integration for monitoring and tracing
- @orpc/nest - Deep integration with NestJS framework
- Server adapters available for:
- Node.js (built-in)
- Cloudflare Workers (built-in)
- Bun (built-in)
- Deno (built-in)
- Fastify (native adapter)
- @orpc/react - React utilities and Server Actions integration
- @orpc/tanstack-query - TanStack Query integration (React, Vue, Solid, Svelte, Angular)
- @orpc/experimental-react-swr - SWR integration for React
- @orpc/vue-colada - Pinia Colada integration for Vue
- Next.js - Works with App Router and Pages Router, Server Actions support
- TanStack Start - Full integration support
- Nuxt - SSR and client-side support
- SvelteKit - Full-stack TypeScript support
- SolidStart - Reactive full-stack support
- Astro - Static and server-rendered support
- @orpc/zod - Extended Zod schemas for oRPC
- @orpc/valibot - Valibot schema support with OpenAPI generation
- @orpc/arktype - ArkType schema support with OpenAPI generation
- Standard Schema Support - Works with any standard schema validator out of the box
- @orpc/hey-api - Hey API integration for OpenAPI-based clients
- MSW oRPC Mock - Type-safe mocking with Mock Service Worker
- Multiple scaffolding tools available in the ecosystem for project setup
- Template generators for various frameworks
- CORSPlugin - Built-in CORS support
- Custom middleware and interceptors support
- Request/response transformation plugins
Official interactive playgrounds (available on StackBlitz or local setup):
- Next.js Playground - Full Next.js integration
- TanStack Start Playground - TanStack Start example
- Nuxt Playground - Vue/Nuxt integration
- SolidStart Playground - SolidJS integration
- SvelteKit Playground - Svelte integration
- Astro Playground - Astro static/SSR example
- Contract-First Playground - Contract-driven development
- NestJS Playground - NestJS integration
- Cloudflare Worker Playground - Edge deployment example
- Bun WebSocket + OTEL - Bun runtime with OpenTelemetry
- Electron Playground - Desktop app integration
- Browser Extension Playground - Chrome/Firefox extension example
- Vue + Bun Monorepo - Community-contributed Vue example
- orpc hono drissle orm,scalar,postgres turborepo -Production-ready project
- supastarter Next.js + oRPC - Production-ready SaaS boilerplate with auth, billing, and more
- O3 Stack - Fast CLI for creating bleeding-edge Next.js apps with oRPC
- Full-Stack TypeScript Chat - Modern chat application showcase
- TypeScript Monorepo Template - Contract-driven development template
- Community templates for various frameworks and use cases
- Official Getting Started Guide - Official tutorial covering basics
- Typesafe APIs Made Simple with oRPC - Comprehensive introduction by the creator
- oRPC: OpenAPI Remote Procedure Call for Type-Safe APIs - Deep dive into contract-first development
- Understanding Contract-First Development - Official guide on contract-driven APIs
- OpenAPI Integration Guide - Working with OpenAPI specs
- Error Handling Patterns - Type-safe error handling strategies
- Understanding the Power of Typesafe APIs - oRPC vs tRPC comparison
πΉ This section is waiting for community contributions! If you've created or found video content about oRPC, please submit a PR.
- Full-stack applications built with oRPC (see GitHub topics)
- SaaS starters and templates
- Real-world production examples
- Schema generators and validators
- Testing utilities with MSW integration
- Development tools and extensions
- Database integrations (Drizzle, Prisma)
- Auth solutions (Better Auth, NextAuth)
- AI SDK integrations for streaming responses
- CORSPlugin - Cross-origin resource sharing support
- Middleware System - Custom request/response processing
- Interceptors - Client-side request/response interception
π This section is waiting for community contributions! Have you built a plugin for oRPC? Share it here!
- OpenAPI Support: oRPC has first-class OpenAPI support, tRPC requires additional tools
- Contract-First: oRPC offers optional contract-first development
- Performance: Benchmarks show competitive performance
- File Handling: Both support file uploads/downloads with different approaches
- Server Actions: Both support React Server Actions
- Type Safety: oRPC provides end-to-end type safety without codegen
- Documentation: Automatic OpenAPI spec generation
- Developer Experience: Function-like API calls vs manual HTTP requests
- Standards: Adheres to OpenAPI standards while providing RPC ergonomics
- Complexity: Simpler mental model than GraphQL schema language
- Type Safety: Leverages TypeScript directly without additional schema language
- Tooling: Uses standard TypeScript tooling
- Learning Curve: Easier for TypeScript developers to adopt
- GitHub Discussions - Ask questions and share ideas
- GitHub Issues - Bug reports and feature requests
- NPM - Package downloads and versions
- GitHub Releases - Latest releases and changelogs
- GitHub Stars - Show your support!
- Follow @unnoq on GitHub
- Contributing Guide - How to contribute to oRPC
- Code of Conduct - Community guidelines
- tRPC - End-to-end typesafe APIs, inspired oRPC's RPC approach
- ts-rest - Contract-first development, inspired oRPC's contract features
- Hono - Fast web framework with great TypeScript support
- Elysia - Fast and friendly Bun web framework
- Zod - TypeScript-first schema validation
- Valibot - Modular schema library
- ArkType - TypeScript runtime validation
- TanStack Query - Powerful data synchronization
- OpenTelemetry - Observability framework
- Drizzle ORM - TypeScript ORM
- Better Auth - TypeScript authentication
Contributions are welcome and encouraged! Here's how you can help:
- Check for duplicates - Search existing items first
- Follow the format - Use the existing structure and style
- Provide context - Include a brief, clear description
- Keep it awesome - Only add high-quality, maintained resources
Items should meet these standards:
- Quality: Well-maintained, documented, and useful
- Relevance: Directly related to oRPC or its ecosystem
- Activity: Active maintenance (updated within the last year for libraries/tools)
- License: Open source with clear licensing
- Completeness: Working examples, not just concepts or placeholders
- Fork this repository
- Add your item in the appropriate section
- Use this format:
- [Name](link) - Brief description of what it does - Submit a pull request with a clear description
- Respond to any feedback from maintainers
- Closed-source or proprietary tools (unless official)
- Unmaintained or abandoned projects
- Duplicates of existing entries
- Self-promotion without clear value to the community
- Incomplete or placeholder projects
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold this code. Please report unacceptable behavior to the repository maintainers.
To the extent possible under law, the contributors have waived all copyright and related rights to this work. See LICENSE for details.
Missing something? Help make this list better by contributing!