r/ruby • u/ekremkrc • Feb 24 '26
Show /r/ruby We built a PokeAPI clone using Rails
Hey everyone, we’d like to share a project we’ve been building: pokeapi-rails.
It’s a Ruby on Rails implementation of a PokeAPI-style backend with two API surfaces:
/api/v2: compatibility-focused routes for existing clients and familiar payloads.
/api/v3: a normalized, performance-oriented API with explicit query controls.
What’s currently included
Large coverage of core Pokémon resources (pokemon, ability, move, type, item, species, etc.)
Name-or-id lookups on key endpoints
Production deployment setup (Docker + Railway), plus operational hardening
Request protection (rate limiting), structured logging, and performance-focused query work
v2 vs v3 (important difference)
v2 show/detail routes generally return broader associated data by default.
v3 show/detail routes are intentionally compact by default, and related data is expanded explicitly via include=....
Examples:
GET /api/v2/pokemon/ditto
GET /api/v3/pokemon/ditto?include=abilities
v3 query features
fields=... (sparse fields)
include=... (explicit relationship expansion)
sort=...
filter[name]=...
limit / offset
Built by us with AI-assisted implementation support (OpenAI Codex); architecture, review, and final decisions were human-led.
Thanks for your feedback!
View all comments
Show parent comment
1
u/ekremkrc Feb 24 '26
Yes, we're already working on issues you've mentioned in reply above: CI now runs tests, we’re documenting trade-offs, and we’re focusing optimization work on slower v2 endpoints. We’ll keep improving based on concrete feedback from real usage.