
Ask HN: Choosing an entrepreneur's stack in late 2018? - rufugee
Hi HN. I&#x27;m a CIO by day, entrepreneur by night. I used to write a lot of code, but the last few years have been dealing with coordination of many projects post-acquisition and haven&#x27;t kept my hands as dirty as before.<p>I have a few ideas I&#x27;d like to build MVPs for. I&#x27;m trying to decide what the best components are to include in my stack. My requirements are a web backend (including PostgreSQL support), a web client, and mobile clients for iOS and Android. I should be able to develop this from Linux as much as possible, but I have a Mac I can jump to as necessary.<p>I&#x27;d like to avoid as much complexity as possible in the stack so I can focus on the business idea instead of spending hours worrying about tooling, etc. Dart (with flutter) seemed appealing at first for this, but comments like this  (https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17708671) as recent as four months ago don&#x27;t really bolster confidence there.<p>If you were building a MVP from scratch and didn&#x27;t care about using what you know (were willing to learn new tech for a better experience) what would you choose and why?
======
aaimaa
If you're choosing PostgresSQL, I would like to recommend 2 things: One is
GraphQL and another one is Hasura, for real-time GraphQL queries. This will
make your project really lightning fast.

Reference Links: 1\. [https://graphql.org/](https://graphql.org/) 2\.
[https://hasura.io/](https://hasura.io/)

------
cdnsteve
What did you use to write code in? If you're starting from scratch or starting
from some existing form of knowledge even though it might be rusty, it's still
in there. All technologies have weight to learn them. When you're
bootstrapping something in the wee-hours and you just want to get shit done
stick to tried and true instead of re-inventing the wheel. The majority of
apps are CRUD. In this case Rails, Django, maybe Express/Node will do more
than fine. Only use a whole JS front-end framework if your use case needs it
for day one. There's a lot of overhead to learning them.

------
nikhildaga
I wrote a blog yesterday about the technologies that we consider as the best
to build a MVP [https://ideatostartup.org/blog/idea-to-startup/the-best-
tech...](https://ideatostartup.org/blog/idea-to-startup/the-best-technologies-
to-create-web-and-mobile-apps)

If you are into JavaScript, you should also check out :
[https://2018.stateofjs.com](https://2018.stateofjs.com) to know which JS
technologies in general developers prefer the most.

~~~
rufugee
I have to admit...I'm not the biggest fan of javascript (largely based on old
history) and the node.js craze has passed me by...but I'm open minded. I'll
definitely take a look. Thanks for your response.

~~~
nikhildaga
And I have to admit that I am one of the biggest fans of JavaScript, so I may
be a biased. :)

I will give you some background about why we chose these technologies:

After working with several startups, we realized that almost all startups face
one common problem:

They have to deliver the best product using the least amount of resources.

So, we were looking for technologies that would help us :

1\. Build apps quickly using the least developer resources - (Save time and
money) And 2\. Build apps that are performant, scalable and reliable. -
(Deliver Quality)

And the JS tech stack helps us fulfil both the aims. That’s why we chose it.

~~~
rufugee
Understood and well-reasoned. I am not completely against javascript...but
would probably opt to use typescript if going down that path. However, I'll
definitely consider your comments and the links you passed along.

Thanks.

------
build_products
It depends on your exact requirements. If it's something crud based go with an
established framework like Django or Rails. Both of these have mature
communities, ample tooling, and aren't going anywhere soon.

If you're looking to simplify as much as possible from your own perspective,
consider using something like Next.js so you only have to learn one language.
But you'll have to make other choices, so it's a trade off.

I wouldn't go 2 native clients on mobile, but perhaps ionic framework instead.

------
qqqwerty
I am in a similar boat, going to try and kick off a side project during this
xmas break. As others mentioned, you should probably consider reducing scope
and picking one platform to MVP on. I was also planning on doing a multi-
platform project, but after some thought, it felt like doing the MVP on mobile
first would be best (for the project I have in mind, it felt like I could get
more features, faster, into a mobile prototype. might be different for yours
though). So I think I am going to try out Flutter, for a few reasons.

1\. I don't like javascript. 2\. It sounds like Flutter is working on adding
web and desktop support, so it's possible that after I am done with the mobile
prototype, that might be ready. 3\. I am not much of a designer, so the fact
that Flutter integrates easily with material components[1], feels like it will
make it easier to get to a half-decent looking MVP. 4\. I already know python,
so don't really need to worry about server side code if I need it.

Another thing to consider, is if I had just focused on building something,
rather than evaluating a bunch of frameworks, I would probably be half-way to
a prototype by now. But because my project is more 'side-project' than
'startup idea', part of the fun is just kicking around some of these languages
and frameworks. But if you are aiming for more towards the 'startup idea',
probably best just to get started with whatever you are most familiar with.

[1]
[https://material.io/develop/flutter/](https://material.io/develop/flutter/)

~~~
rufugee
You sound a lot like me (not a designer). Definitely going to look into
flutter plans for the web. Thanks!

------
auganov
Server, web, and 2x mobile is a very tough requirement to meet. If it's just
CRUD stuff I'd settle on ReactNative for mobile and use either clojure or js
(both have the same reach in this case, but arguably clojure gives you a more
unified experience).

But if you're pushing the envelope on mobile I don't think you're gonna pull
this off to be honest. Consider reducing scope if possible.

~~~
grasshopper2218
ReactNative appears to be too much of a risk for the majority of the time.
Think about if somebody recommended Azure as the absolute default way to build
a basic* CRUD app, instead of building a backend.

>Consider reducing scope if possible.

This. I don't know why this lean mentality is lost on startups now, when only
a few years ago we had all learned the lessons of trying to provide everything
to everyone at MVP. This new mentality which is actually old mentality
recycled, is anti-MVP.

------
nik736
For me personally Rails for the backend and web frontend. React Native for the
Mobile Apps.

If you have experience with a specific stack and are or were happy with it
then you should take that one.

------
saluki
Rails and Laravel are great for MVPs.

Clients have pushed me more and more in to Laravel. It has a great community
and lots of great packages and tools.

(Similar to what railscasts was back in the day) laracasts.com

(Server setup and deployment)
[https://forge.laravel.com](https://forge.laravel.com)

SaaS (in a box) [https://spark.laravel.com/](https://spark.laravel.com/)

Envoyer (zero down time deployment) [https://envoyer.io](https://envoyer.io)

------
aregsarkissian
Take a look at the recently announced phoenix framework live view

------
bmajz
Honestly, even though it has its problems, Meteor is relatively simple
framework that will even spit out mobile apps for you. It's probably the least
effort (i.e. lines of code) to get a halfway decent app out, and it's scaled
ok well as time has gone on. It has a bunch of weird quirks though especially
in how it manages data.

[https://www.meteor.com](https://www.meteor.com)

~~~
bmajz
They even offer a hosted product now, so you won't have to worry about the ops
side of things either.

~~~
rufugee
I'll give this a look. Thanks very much!

~~~
nikolasburk
Be aware that MDG is now almost entirely shifting their attention to GraphQL
and Apollo. I don't think Meteor.js will be maintained much longer.

------
nikolasburk
Backend: GraphQL + TypeScript with Prisma on top of a MongoDB/PostgreSQL
Frontend: React / React Native + Apollo Client

Then use 3rd-party services for the "standard" parts of your business logic
(like Auth0 for authentication).

This stack allows to move incredibly fast on the front- and backend and really
lets you focus on building value-adding features instead of dealing with
complexity that comes from e.g. database workflows (Prisma) on the backend or
state management on the frontend (Apollo Client).

EDIT: As a side-note, companies like Labelbox.com (raised 3,9 mio seed round)
or Hyrecar.com (recently IPOed) are using a similar stack and have been vastly
successful with it.

------
Cymen
You might look closer at react-native-web. It's early days and React Native
can be painful at times however it does offer the idea of using one codebase
for both mobile and web. It does require some care, flexibility and thought in
design and development.

For the API, look to PostGraphile for GraphQL on top of Postgres (and of
course, if multi tenant, there is row level security which is the direction
I'd go today).

------
billconan
I highly recommend vuejs for the frontend. I can't imagine I would make a
webapp without it.

My backend is in c++, because I'm more fluent in it than any other languages.
For database, I'm using mongodb. I heard bad sayings about it, but I decided
to stick to it, because I like its programming interface, I think it's easier
than using sql.

~~~
phodo
What c++ framework if any do you use ?

~~~
billconan
I wrote my own c++ framework out of tcp socket.

------
Shopopotamus
I'm a fan of Laravel for the back end and vue or bootstrap for the front end
for quick MVPs.

------
vfulco2
Is serverless too bleeding edge? I am grubbing around for something similar
with limited IT skills; know almost nothing about node.js world regrettably. I
see serverless django etc. being mentioned more often.

~~~
kohanz
I used serverless for the back end of VidHug
([https://VidHug.com](https://VidHug.com)) and I've been happy with it. Was
there a compelling reason to do so (other than to learn something new?)? I
don't know. I also learned ReactJS, among other things.

Just be honest with yourself that learning something new and launching fast
(in the interests of entrepreneurship) are not aligned with each other.

------
Chyzwar
Depends what you want to build. Give more details on your idea. You can
implement core components and outsource rest.

------
bsingh4
Backend API: .NET Core

Web Frontend: AngularDart

Mobile: Flutter

------
throwawa485
Backend: .NET Core Web API

Frontend: Vue

Mobile: PWA if possible

