Use:
strict TypeScript
typed service interfaces
small focused modules
explicit errors
Zod validation
bigint
testable transaction builders
Avoid:
any
unsafe type casts
giant React components
business logic in JSX
duplicated RPC code
hard-coded decimals
hard-coded financial assumptions
magic addresses spread through code