Why I built it
For one of our Minecraft community projects I needed structured data: HP values, drop tables, spawn biomes, biome temperatures, enchantment max levels, structure rarities. The data exists, but if you scrape it from the wiki you spend a week cleaning it, and Mojang's own APIs only cover player profiles and skin endpoints.
The plan was simple. Build a small JSON API that exposes everything (mobs, biomes, items, enchantments, structures, commands, versions, achievements, trades), keep it free, no signup, CORS open, and host it on a single VPS.
That was a weekend project. It now serves around 1,500 records under api.astroworldmc.com , open source on github.com/astroworld-mc .
This post is the actual decisions I made, with the code that's running in production right now, and the things I'd do differently if I started again.
Stack
Next.js 15 App Router
TypeScript
No database. Data lives in flat .ts files
One small in-memory rate limiter
Nginx in front for TLS + a clean /v1/...…