Creating Cross-Chain Applications: A Guide to Web3 Interoperability