Built a full-coverage public API for an EdTech platform
Built and launched Public API V2 for a large-scale EdTech platform. We expanded API coverage beyond courses, introduced automated documentation, and created a scalable foundation for third-party integrations and ecosystem growth.
Business context
Teachable is a no-code SaaS platform used by 150K+ creators worldwide to build, market, and sell digital educational products. The platform combines content hosting, payments, and student management in a fully branded environment, enabling scalable online businesses without custom engineering.
Project in facts
- E-commerce
- Brazil & USA
- 2 RoR developers
- 3 months
- RoR development, Staff augmentation
- Ruby on Rails, Swagger, RSpec, RSwag, PostgreSQL, ElasticSearch
Challenge
Teachable’s existing API was restricted to courses and lacked unified support for other product types required by third-party developers. This resulted in fragmented integration workflows and limited consistency across the API surface.
To address this, Teachable needed a new, expanded API. However, the internal engineering team lacked the bandwidth to deliver it within the required timeframe. With no prior experience working with an external engineering partner, they needed senior-level Ruby on Rails developers capable of executing independently.
Product goals
- Develop a scalable and extensible API architecture with consistently high performance
- Enable workflow automation and integrations with third-party tools
- Achieve feature parity between courses and all other Teachable product types
- Deliver clear, always up-to-date documentation for third-party developers
Solutions
We analyzed the existing Public API, identified its limitations, and designed a new architecture that could support future expansion. An initial implementation of the most frequently used endpoints helped validate technical decisions and refine the API structure before full-scale development.
Built directly within Teachable’s Rails monolith, Public API V2 expanded coverage from courses to all major product types. We implemented a scalable service-based architecture, covered by automated tests, with full OpenAPI documentation coverage to ensure maintainable code, response times below 200 ms, and a consistent developer experience.
New API structure
with improved code organization
Full CRUD coverage
across all core product types
Stable performance
with average response times under 200ms
Consistent and predictable
error handling for every endpoint
Automatically generated
OpenAPI documentation
Engineering approach
The Ruby on Rails backend architecture was built around versioned service layers, dedicated query processors, and thin controllers, to ensure a clean separation of concerns and long-term maintainability. Filtering, sorting, and pagination logic were isolated from business rules, which made the API easier to extend.
Our engineers implemented Public API V2 with full CRUD coverage across courses, coaching products, memberships, bundles, digital downloads, and community features. The API supports administrative and scoped user access for a wide range of use cases.
A significant part of the solution was the introduction of automated documentation and testing through RSwag. OpenAPI specifications are generated directly from the test suite, so the documentation always remains synchronized with the implementation. This approach reduces ongoing maintenance effort.
Business impact
Result
Rubyroid Labs helped Teachable deliver a major platform expansion within three months, creating measurable value for company as well as for its developer ecosystem:
-
High-performance API architecture
Optimized filtering, sorting, and pagination mechanisms consistently delivered response times under 200 ms. -
Future-ready foundation
Service-based architecture, standardized patterns, and comprehensive test coverage allow Teachable's internal team to extend the API efficiently.
I really appreciate the work from Doston and Egor, they are awesome.
Need a scalable Ruby on Rails API?
Please fill out this form, and our manager will contact you within one business hour. If necessary, we can sign an NDA and begin project discussions.
Thank you.
Your message has been sent successfully!
We’ll get in touch with you within 24 hours, excepting requests received on Saturday, Sunday.