@JLeslie There are a few ways to approach a project like this. You can even do UX testing with pieces of paper that have drawings and labels on them to see how people might want to interact with your site. You can learn a lot of valuable info from exercises like these, but in the end you’re still going to have to hire a talented engineer.
At some point you may decide to dive in to the deep end and commit your resources. I don’t do web development myself, but there are some useful principles to think about. Most importantly, use technology that is popular and easy to find developers for! Python is a very popular programming language for web development. Python has a framework for building web applications called Django. Other popular options are Ruby on Rails, which is a web framework that uses the Ruby language and Node.js (which is a rising star on the scene). My personal suggestion is to avoid PHP. It’s really fallen out of favor since the 2000’s when it was at the height of it’s popularity. Talented programmers want to work in languages/frameworks they enjoy, whereas crappy programmers will crap out code in whatever language you pay them to.
There are 2 important aspects to programming that mirror writing in English. The first is just learning the grammar of the language so you can create code that is syntactically correct and will do what it’s meant to do. Like in English, this is fairly straightforward and can be learned in a couple of weeks (or less) by a skilled programmer. The other piece is being able to write clean code that is well designed and, has a good architecture, a good division of responsibilities, good documentation, is modular, etc. This is the equivalent in English to being able to craft a very good essay. It’s possible to have flawless grammar but be unable to write a good essay, just as one can write code that will execute as intended, but be very difficult to maintain, expand, find/fix bugs, etc. You’ll find this a lot with outsourced coders who are just trying to satisfy the minimum requirements because they’re not expecting to have to maintain and improve the code later. Learning how to write good code, not just code that will run is a skill that’s refined over a lifetime.
I’m not saying you need to spend millions on hiring a genius (and that can produce it’s own set of headaches btw), but be aware that you do get what you pay for to some degree. You certainly wouldn’t want to find the cheapest engineer to design your airbag, or the cheapest fund manager to invest your life savings. It’s going to be difficult though for someone without knowledge and experience in software development to evaluate the resume, or evaluate the progress of a developer. You could easily be taken advantage of, and in the same breath, you might incorrectly believe they are taking advantage of you when there are legitimate obstacles delaying progress that they’re unable to articulate to you (without you thinking they’re bullshitting you).
Another point to understand is that some things simply take time. You can’t make a baby in less than 9 months by throwing more women at the task. Often throwing more programmers at a problem will slow down the project rather than speed it up. See Brooks’s law. I mention this simply to illustrate that software development is different in many ways from other types of business that you may have experience with.
Finding someone you trust will be very important. Good luck to you. I hope that gives you some more things to consider.