
Most blockchain explainers start with hype about TPS or gas fees. If you write APIs for a living, those numbers don’t tell you how to build a product. You care about state‑consistency, type safety, and surviving traffic spikes without inventing a new architecture every quarter. We felt the same. Our team cut its teeth on Node, Go, and PostgreSQL before touching a single smart contract.
When we finally dove into Sui, we were surprised by how familiar it felt, once we stopped treating it like another EVM clone.
The moment you realise everything is an object
Picture your favourite ORM: every row you fetch comes back as a typed object. Sui makes that concept native. Coins, NFTs, admin capabilities, each one lives on chain as a discrete, versioned object with an owner. That means two transactions updating different objects can be executed in parallel. No global mutex, no sequence bottleneck. In practice it feels like every record in your database arrived with its own row‑level lock baked in.
Because objects declare their touchpoints up front, the network can scale horizontally without you sharding tables or juggling message queues. The first time we stress‑tested a token‑gated mint, we saw validators churn through thousands of unrelated writes side‑by‑side while our monitoring dashboards stayed boring. That’s a good kind of boring.
Move: when the type system does security work
Move, Sui’s contract language, borrows the ownership discipline of Rust and the expressive typing of modern TypeScript. Resources cannot be copied or accidentally dropped; the compiler enforces linearity. We’ve shipped backends long enough to know how many late‑night incidents start with an overlooked null or a missing permission check. In Move the equivalent bug just refuses to compile. That pushes entire classes of exploits left, into build time.
Reading data shouldn’t feel like polling logs
Early on we discovered that writing great contracts isn’t the hard part,surfacing their state to frontends is. Raw JSON‑RPC worked, but stacking six round‑trips to paint a dashboard felt 2015. Two things changed the equation.
First, we built an open‑source generator called sui‑events‑indexer. Point it at a package ID and it generates TypeScript DTOs, a Prisma schema, and an Express server that tails on‑chain events into Postgres. Suddenly we could treat custom events like a Kafka topic, push‑based, structured, queryable.
Second, the Sui core team introduced GraphQL RPC on top of Indexer 2.0. One query now returns nested coins, NFTs, and recent transactions in a single response. It’s still young, but it already covers 90 percent of the read patterns that used to require hand‑rolled joins. For us that means thinner backends and more time on product logic.
What’s still weird
A few habits don’t port cleanly from Web2. Packages are immutable, so you version contracts the way you once versioned database schemas. On‑chain storage is permanent; you plan pruning hooks before launch, not after. And while GraphQL trims network calls, it won’t replace a domain‑specific index when you need millisecond analytics. We still deploy our event indexer beside every serious app, it’s the safety net when requirements outrun standard APIs.
Why we’re betting build cycles on Sui
After a year in the trenches we don’t see Sui as “a faster chain.” We see it as a backend that bakes parallelism, type safety, and predictable reads into the substrate. That lowers the mental overhead of moving from a monolithic server to on‑chain execution. If your team dreams about blockchain features but dreads rewriting everything you know, start by modelling your data as objects. The rest of Sui’s design clicks into place from there.
We’re still learning, shipping, and open‑sourcing along the way. If you’re a Web2 engineer kicking the tyres or already knee‑deep in Move, share your hurdles, we’ve probably hit them too, and collective scar tissue builds better tooling.
Placeholder
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.