irskep, steveasleep.com, slam jamsen, diordna, etc

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?

How much JavaScript will I use?

How will I get my Python web server to show my JavaScript?

Which JavaScript package manager?

Which JavaScript build system?

Should I use plain CSS, or SASS?

Which JavaScript framework will I use, if any?

Is this JavaScript library I want to use actually finished and maintained?

Do I care about Web Components?

What browser versions do I want to target?

What browser features can I use these days?

How can I get my Python web server to live-reload when my JavaScript changes?

How will my CSS and JavaScript build pipelines change when I switch from development to deployment?

Should I write my own wrapper around fetch, or use someone else's?

Should I render most of my markup on the server, or in the browser with JavaScript?

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.