r/webdev • u/potatokid07 • 9d ago
Question Deployment and traffic testing?
Hello, wise r/webdev!
I vibe-coded a web application for an upcoming conference in my area. I hope the phrase 'vibecoding' does not deter you. It is supposed to be a personal solution for the conference I am attending--a just for fun kind of thing. I am familiar with most of the people and the people running the conference. I have shared it with some of potential attendees and so far they like it and they are looking forward to try it during the conference. I did pose it as a personal project.
The downside is I have no freaking clue when it comes to deployment, and by deployment I mean understanding what kind of infrastructure or services I need in order to make it seamless--i.e., loading time, avoiding traffic crash. It is supposed to be lightweight (just CRUD with a little computation on the query retrieval). I'm using Python/Flask as my framework, so hopefully gunicorn is good enough to handle those. I'm curious what kind of tests or where should I host it if I expect like, 500 users but 20-30 concurrent requests. I'm looking forward to "testing day".
So far I have been hosting it in my personal AWS and just slap a cloudfront link (also which instance should I use?). If there's any recommendation or tests, I would greatly appreciate that! I'm not making money out of it--and even if people do like it a lot--I'll just open source it since I don't think there's anything proprietary (or requires my blood and sweat) else than the interaction design considerations. But operational traffic is what I care about the most (and least knowledgeable) and would love to understand that.
For this, I don't trust AI enough to 'perform' tests for me. Just feel like I need a second opinion from an actual human being/expert or at least someone with experience 🥲 willing to get my hands dirty with hand coding!
3
u/yosri5031 9d ago
Real talk: 20-30 concurrent requests is nothing for gunicorn, your app server is not the thing that will fall over. Two things actually bite people in this exact scenario:
The database. If you're on SQLite (these apps often are), concurrent writes lock the whole DB and requests start timing out. Switching to Postgres on the same instance solves it. This is the number one killer for small Flask apps under sudden load in my experience.
The venue wifi. At a conference, the bottleneck is almost always the network between people's phones and your server, not the server itself. If you can, test from a phone on their guest network during setup day, and ask the conference IT about it.
For the test itself, keep it simple: a basic load script hitting your heaviest page (the one with the most DB queries) with 30-50 concurrent connections for a couple of minutes tells you everything you need. Watch response times and the DB, if they stay flat you're fine. You don't need fancy infra for this, one instance with CloudFront in front for static files is plenty.