40 people reading and occasionally writing is nothing for SQLite. Concurrency is not your reason to move.
Deployment is. The question that decides it: where does that file live once you deploy? On Vercel or any serverless platform the filesystem is ephemeral and per-instance, so your database silently resets and different instances see different data. That is not a scale problem, it is an immediate data loss problem.
So: if you deploy to one long-lived machine with a real disk and a backup, stay on SQLite, turn on WAL with pragma journal_mode=wal so a writer does not block readers, and get on with it. If you are going serverless, move to Postgres now, because no amount of tuning fixes a disk that disappears.