You have many options for that:
- programmatically create a Plutus smart contract to mainnet
Here the only option is
you can even store pieces of contracts inside typescript functions and then build your contracts programmatically.
the compilation happens in the js runtime so you can compile them in your application.
- check what assets are currently locked at a given script address
This can be done even without any library, what you need is something to query the blockchain.
blockfrost; I would also suggest you to have a look at
- create and send a transaction
here you have many options too.
plu-ts also has an offchain component that allows you to build transactions.
Lucid is also an option but is based on a customized version of the cardano-multiplatform-library; so you would have to allow for web assembly; which can be tricky.
Mesh SDK is also currently based on web assembly (though are switching the backend to
plu-ts in a future version) and it also provides you all the tools to build a user interface (UI) for you applicaiton