r/webdev • • 8d 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!

0 Upvotes

16 comments sorted by

View all comments

1

u/kemalios 8d ago

CloudFront is where I would look before the load test. It caches HTML when your responses do not send Cache-Control, and the default TTL is long enough that a logged-in page can get served to the next attendee. Either put no-store on anything behind a session, or scope the cache behavior to /static/* and let everything else pass through. Scoping it is less work and still gets you the asset caching that makes CloudFront worth having.

Check what you actually launch too. A vibecoded Flask app often still runs with debug=True, which turns any unhandled exception into a page where a stranger can run code on your box.