11 ms·
Ask HN: Choosing an entrepreneur's stack in late 2018?
Hi HN. I'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't kept my hands as dirty as before.
I have a few ideas I'd like to build MVPs for. I'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.
I'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://news.ycombinator.com/item?id=17708671) as recent as four months ago don't really bolster confidence there.
If you were building a MVP from scratch and didn't care about using what you know (were willing to learn new tech for a better experience) what would you choose and why?
- deleted 8y ago[deleted]
- billconan 8y agoI 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.
- auganov 8y agoServer, 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 8y agoReactNative 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.
- rufugee 8y agoDefinitely CRUD and won't be pushing the envelope on mobile...fairly basic app. Thanks for the info!
- nik736 8y agoFor 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.
- aregsarkissian 8y agoTake a look at the recently announced phoenix framework live view
- saluki 8y agoRails 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
- throwawa485 8y agoBackend: .NET Core Web API Frontend: Vue Mobile: PWA if possible
- cdnsteve 8y agoWhat 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.
- build_products 8y agoIt 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.
- nikhildaga 8y agoI 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-technologies-to-create-web-and-mobile-apps https://ideatostartup.org/blog/idea-to-startup/the-best-tech... 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 8y agoI 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 8y agoAnd 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 8y agoUnderstood 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.
- bnchrch 8y agoSimple and to the point! My only out right disagreement would be on state management. If you have a GraphQL api, that means you are probably using Apollo. Just use apollo-link-state for your local state!
- bmajz 8y agoHonestly, 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
- rufugee 8y agoThanks. Care to comment on what problems it has?
- bmajz 8y agoThey even offer a hosted product now, so you won't have to worry about the ops side of things either.
- rufugee 8y agoI'll give this a look. Thanks very much!
- nikolasburk 8y agoBe 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.
- Cymen 8y agoYou 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).
- Shopopotamus 8y agoI'm a fan of Laravel for the back end and vue or bootstrap for the front end for quick MVPs.
- Chyzwar 8y agoDepends what you want to build. Give more details on your idea. You can implement core components and outsource rest.
- bsingh4 8y agoBackend API: .NET Core Web Frontend: AngularDart Mobile: Flutter
- vfulco2 8y agoIs 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 8y agoI 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.
- qqqwerty 8y agoI 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 8y agoYou sound a lot like me (not a designer). Definitely going to look into flutter plans for the web. Thanks!
- aaimaa 8y agoIf 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/
- nikolasburk 8y agoBackend: 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.
- countryqt30 8y agoI'm in a highly similar role, and doing MVPs for billionaire investors and CXOs who want to push and test their side-projects on a monthly basis. My answer would be: the "correct stack" (the one to have maximum impact with minimum time commitment) highly depends on the business idea itself: is it database-heavy, network speed critical, big data, AI requirements, related to crypto, related to offline businesses, .... Efficiency of languages and frameworks mostly depends on the libraries of the language, not anything else. I'd be happy to jump on a call with you, let's connect, email me at jakobm@mit.edu and I'll share my LinkedIn and references!