Initially, I built the application like this, described it in detail here:
https://www.reddit.com/r/ObsidianMD/comments/1flev91/comment/lo3198r/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
The idea behind the approach is to first create a simple application that just runs. Then, iteratively improve it by asking to add new features and fix bugs. Recently, I started using Cursor, and it has made everything much easier.