You have many options for that:
- programmatically create a Plutus smart contract to mainnet
Here the only option is plu-ts
; it allows you to write and compile a smart contract directly in typescript (or javascript if you prefer)
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.
Alternatively, you could use Helios, which can also be compiled in the js runtime; but is not javascript, is a newly created language.
- 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.
many use blockfrost
; I would also suggest you to have a look at koios
- 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