1
0 Comments

Use one server to host multiple web applications for idea testing.

Hi guys, this is my first real post here. I've enjoyed reading about everyone's ideas and have found some great inspiring advice.

Like many of you, I have a lot of ideas. However, I don't want to put huge amounts of time into a project if I don't know if it really solves a problem that people are willing to pay for.

I just finished reading The Lean Startup and I felt like it was an epiphany. There's a lot of good info in the book, but one of the key concepts that he pushes is to validate your ideas before dumping a ton of time/work/money into it. What's the point of building something that nobody wants. So he recommends building just enough to determine if your potential customers like it and are willing to pay for it. This could be as simple as making a landing page with an info/demo video of a product you haven't even really built. Ten with the help of analytics, you can measure how strong their reaction is (how often do they click to sign up for a mailing list or getting on the beta list?).

Then for any iteration you plan to make, you can test it out with split testing and only make the changes that you know your customer will appreciate and pay for.

To that end, I was working to commence some testing on 3 different ideas. I set up a DigitalOcean server and I bought my domains. Each of these 3 sites need to communicate with the backend because I want to store all the contact info in a database and also track the a/b testing results there.

Making a proxy server with apache and nginx wasn't hard. So if we were dealing with just static sites, then that would be fine, but due to the backend requirements that is not enough.

The stack I started with was Flask and Postgres. But what I realized is that it's very difficult (still haven't figured it out) to stand up 3 separate Flask app's on the backend and get the proxy to send them traffic (with a wsgi middle layer to launch the Python script).

Anyways, I was banging my head against the wall for about 2 weeks trying to get this to work before I decided to totally abandon the stack. After reading a little more, I realized that using a node js backend would be better. The big reason for that comes down to one thing 'blocking'. I realized that from previous projects where I used Python, it likes to operate in a synchronous way. So it doesn't start a new task until finishes the previous one. Compare that to node which uses a non-blocking i/o which allows you to execute code asynchronously.

I'm a noob to this and only trying to learn just what's needed to get to the next step, so wading into this dead end was frustrating so wanted to share the recommendation to start with node if your use case is similar.

As mentioned, I'm a noob so if I was incorrect in any statements just let me know. Also, if you have any knowledge/tips/tricks about split testing effectively let me know.

on January 14, 2021