info
skills
Languages
Blockchain
contacts
+880182******
GraphQL was the right choice for Moonly — when you're merging on-chain blockchain data with off-chain metadata across dozens of apps, a typed query layer makes everything cleaner.
I'm not a "GraphQL for everything" advocate — it shines for complex data graphs and multi-client architectures, but REST is perfectly fine for simpler APIs. The key is knowing when the complexity is justified.
For Moonly, it was justified. Apollo Server and Client power a GraphQL API consumed by 36 NX applications — resolvers for mission configuration, raffle state management, wallet verification, and real-time staking data. Apollo Client's cache policies enable optimistic UI updates that make the staking interface feel instant.
The most interesting part of Moonly's GraphQL layer is how it unifies data from different sources: on-chain Solana state read via RPC, off-chain metadata cached in Redis, and relational data in PostgreSQL — all served through one coherent API to the frontend.
GraphQL is a powerful tool when the problem calls for it — and knowing when not to use it is just as important as knowing how.