
Ask HN: Which stack will get my MVP API off the ground fastest? - fastbeef
I have an idea for a service as a side business and need some kind of E-commerce API for it. The main feature is it’s going to produce one-off artifacts and none of the off-the-shelf solutions I’ve looked at really fit.<p>Basically I need a way to stand up an API with an &#x2F;price&#x2F; endpoint and a &#x2F;orders&#x2F; endpoint that run a bit of logic, put stuff in a database and trigger the payment processor flow. Easy-peasy except I have analysis paralysis over what to build it with and where to host it.<p>I’m comfortable with “classic” .net and dabbled in Node.js. I’d love to build it as an .Net Web API but the prospect of cloud hosting scares me (plus azure is freakin pricy).
======
UglyToad
I'm biased but I'd go with .NET if you actually want to get the thing built.
Obviously use a new stack if you want to use it as a learning experience.

With .NET Core and Postgres you can get something stood up within a few days
and host on a cheap Linode, Digital Ocean or another provider's box for $6 a
month or so. That should last you scalability wise until you have enough money
from it to do something else and gives you type safe, performant code.

~~~
fastbeef
This was my main plan, is hosting .Net Core easy to do on a bare-bones image
like DO or Linode? Or is it worth to pony up for a Azure App instance?

~~~
UglyToad
It was a while ago now (I can't remember the last time I ssh-ed into the box)
but I set up my blog using this guide [0].

I just logged into Digital Ocean to check, I'm running a single 512 MB memory
droplet with a 20GB disk for $6 a month and apart from getting familiar with
Linux (especially managing user permissions correctly), setup was easy, I run
an Nginx reverse proxy in front of a Kestrel instance but I know people have
said you don't even need Nginx.

I also used Let's Encrypt for a free SSL certificate and setting that up to
correctly refresh on a CRON job was the hardest part of the whole thing.

I've no doubt the site [1] would fall over if it ever got anything like the HN
hug of death but this would be easy to plan for assuming organic growth, I
imagine there are fairly easy ways to set up load balancing for droplets on DO
and moving the database onto a separate droplet etc should give you enough
headroom for scaling.

The code [2] is way outdated now and awful quality but it's on GitHub.

Others who have more experience may say it's worth learning a certain cloud
feature or serverless stuff but my gut feeling is it's better to get the thing
out there and worry about that sort of stuff when you get there.

Edit: It's worth mentioning that [0] talks about developing the site on Linux,
though I did that just to get a feel for Linux it's not at all necessary and
much easier to do the development on Windows with Visual Studio then all you
need to do is:

    
    
      dotnet publish -c Release -r linux-x64 
    

To get a published site to run on the Linux droplet/machine.

[0]:
[https://www.hanselman.com/blog/PublishingAnASPNETCoreWebsite...](https://www.hanselman.com/blog/PublishingAnASPNETCoreWebsiteToACheapLinuxVMHost.aspx)

[1]: [https://eliot-jones.com/](https://eliot-jones.com/)

[2]:
[https://github.com/EliotJones/LightBlog](https://github.com/EliotJones/LightBlog)

------
DmitryOlshansky
Whichever you know best

~~~
StriverGuy
This is the only correct answer.

------
simonahgilbert
Personally I would choose ASP.Net Core, hosted on a Microsoft Azure App
Service with continuous integration from AppVeyor.

Benefits \- Azure App Service free tier is awesome. AppVeyor have a 14 day
trial that supports deployment directly from Git to Azure and .Net Core is
awesome.

Here’s a blog I wrote recently which covers this exact implementation -

[https://www.simongilbert.net/xunit-ci-azure-appveyor-
aspdotn...](https://www.simongilbert.net/xunit-ci-azure-appveyor-
aspdotnetmvccore/)

In terms of a database implementation, Azure’s NoSQL table storage is super
cheap and awesome, as covered here -

[https://www.simongilbert.net/dependency-injection-aspnet-
mvc...](https://www.simongilbert.net/dependency-injection-aspnet-mvc-azure-
storage-autofac/)

------
wilson_4
Can’t really go wrong with python + Django (or flask if you want to stay
minimal). Sounds like you’ll need auth, so Django should support that out of
the box.

Both will integrate easily with Postgres, and for flask, take a look at the
peewee ORM.

~~~
fastbeef
What’s the easiest/best way to host python+flask?

~~~
wilson_4
Easiest? Probably heroku after you get past the initial boilerplate - but can
quickly become expensive.

Most cost efficient would be to Spin up a cheap droplet in digital ocean,
install docker-compose with a Postgres service and python image. In the python
image, just boot up a Django server on port 80. If you need https, youll need
to add something in front of Django, like nginx to handle ssl termination.

App engine could also be a very quick and cheap way - you get ssl, and domain
for free, but you do need to buy into their way of doing things, which has a
bit of a learning curve .

~~~
mythrwy
I'd use Gunicorn instead of Django dev server.

~~~
wilson_4
Yes, definitely for production use. Getting started though the dev server is
fine for testing.

------
bbayer
Usually, I cannot finish what I have started because of debating over which
shiny new framework/stack I need to use. I overoptimize things and always try
to code for worst case. I cannot resist to think about hundreds of users, peak
performance, hn traffic of death etc. Eventually it never finishes or I loose
interest.

Best thing you can do is to make something that just works in fastest way
possible. Anything that can print out text will work. You will always have a
chance to make it better once it starts to get some traction.

------
ng-user
Stop wasting time debating and just use .NET, don't overthink things.

~~~
mikece
So many side projects I could have simply _done_ over the years if I wasn't
trying to figure out which LAMP/Rails/etc framework would get me there
fastest... despite my not knowing PHP/Ruby/Python/etc

------
bdcravens
Whatever you feel most comfortable with.

As for .NET hosting prices, I don't understand why you need complex hosting. A
smallish instance paired with SQL Server RDS (both of which can be hosted on
Linux or Windows) should suffice.

Keep in mind that both AWS and Azure offer a free tier when you're starting
up:

[https://azure.microsoft.com/en-
us/overview/startups/](https://azure.microsoft.com/en-us/overview/startups/)

[https://aws.amazon.com/free](https://aws.amazon.com/free)

------
joshmn
Whatever you know best.

"But deployment" deployment is cheap.

"But hosting" hardware is cheap.

"But time" time is _not_ cheap.

You don't need to screw around and learn another language/framework/ecosystem
to get an MVP off the ground. You need to be able to hit the ground running
and never let off the gas. This means you need to be able to
change/adapt/feature what you need to. That takes brain cells. So does
learning another language/framework/ecosystem. Don't make it harder than it
needs to be.

------
hanoz
.NET Core Web API is absolutely perfect for this and the fact you already have
some .NET experience makes it a no brainer in my opinion.

Just get started knocking out a prototype running locally and break the
analysis paralysis, you'll have no end of hosting options to choose from
later. You'll be amazed what a 5 dollar a month Ubuntu server from Digital
Ocean or similar will handle running .NET Core. Azure is obviously an option
too but don't rule out AWS.

------
toomuchtodo
PostgreSQL with PostgREST might be enough for your needs if you’re mostly
reading/writing to the DB. Can run on your own server, cloud, Heroku, etc.

------
sturza
Check this out: [https://www.notion.so/gug/Todo-
cafe7661e92b4fc1aebb7bcb3c103...](https://www.notion.so/gug/Todo-
cafe7661e92b4fc1aebb7bcb3c103080) I think node.js and Flutter can get you your
MVP in one week assuming you can clearly articulate your idea.

------
sharemywin
found this to convert json to sql creates:

[http://pojo.sodhanalibrary.com/ConvertJsonToSQL](http://pojo.sodhanalibrary.com/ConvertJsonToSQL)

and your selects, updates etc

[http://convertjson.com/json-to-sql.htm](http://convertjson.com/json-to-
sql.htm)

------
quickthrower2
Plenty of cheap asp.net hosts, so don’t worry about cost. You don’t need to
use Azure.

------
atmosx
There is no framework that can match the feature set and the development speed
of RoR.

If you are not familiar with ruby, go with a language you are familiar with.
There is a clone in every major language. It’s just that RoR is the
“original”.

------
rayvy
This is kind’ve a bait question. I mean the “no duh” answer (as others have
already mentioned) is “whichever you are most comfortable with”. I’m confused
as to what other answer you could want

------
sharemywin
I would start with a data model then you can use this if you want to convert
to c#: [http://json2csharp.com/](http://json2csharp.com/)

------
AndreFvchs
For a MVP and to validate your business idea you could put something together
with webhooks/ifttt.com/zapier.com/googleSheets.

------
tayleeganj
node

