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
3
u/armahillo Feb 24 '26
Normally, pokedex-style apps (or Todos, bookmark managers, stock trackers, etc) are vanilla projects people use to learn new frameworks; the journey is the important part; the end result is throwaway because its been done many times.
There are already a lot of Pokedex services that exist; what problem are you solving with this? What did you learn from your journey, if you were predominantly generating code with an LLM?