I'm working on an NFT dApp (contract + React website) and I'm trying to avoid deploying server infrastructure if possible. At what stage should I be thinking about working an indexer into the design? I looked into a couple and the kinds of things they seem good for (scouring transaction logs) are not the things I'm interested in (querying contract storage and off-chain views, TZIP-012 & 021).
If performance is acceptable, is there any reason not to treat a smart contract as a limited SQL database with immutable stored procedures, using off-chain views (or reading contract storage directly) to pull the data to the client website? And what is the benefit of an indexer in this case? Would it actually offer better performance on off-chain view calls?