The web development decision firehose
I'm writing a simple internet forum as a hobby project. Here are some of the questions I asked myself along the way that would apply to any web app with a server component. I had to build in some explicit answers to these questions based on the choices I made.
Which programming language?
Which version of Python?
Which Python package manager?
Which web framework?
How should I interact with the database?
Which Python ORM library should I use?
Should I develop against SQLite, or use a “real” database from the start?
When I query the database, should I use fancy ORM features, or more direct queries?
Should I store passwords, or only use OAuth?
How does secure password storage work these days?
How will I inevitably mess up password storage?
Should I do access control ad hoc, or learn the web framework's sophisticated API?
Should I do form validation ad hoc, or research the right library and learn it?
What the heck does REST actually mean? Do I care?
Should I write my API like a normal person, or add a fancy REST framework?
Should I use plain CSS, or SASS?
Do I care about Web Components?
What browser versions do I want to target?
What browser features can I use these days?
Should I write my own wrapper around
fetch, or use someone else's?
What the hell is hot module reloading? Can I disable it?
Should I worry about GDPR?
Am I doing anything now that's going to make deployment difficult later?
That's it for now. I feel like I'm about halfway through the final list.