TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: If you were CTO of a new start-up, what would your stack be?

20 pointsby acron0over 11 years ago
Just an exercise in curiosity. Nothing high-scale, website is your product, ~10,000 users.

28 comments

seivanover 11 years ago
Rails, building a versioned API. Try to keep it incredibly light weight with just VERBS applied to resources. Trying to avoid that word that starts with R and ends with ESTful.<p>I might use RBX or JRuby depending on what kind of and the amount background processing. Basically if I need native threads.<p>For things that might be heavy and require both speed and massive concurrency I might switch that out to either Go or Erlang.<p>In fact, for some portion of the APIs I suspect not to use ruby and instead Go&#x2F;Erland. Depends basically on the situation.<p>I will probably stick to SQL, PostgreSQL to be precise. For heavy relationships, I&#x27;d use Redis for associations. Keeping Model IDS in sets or orderedSets. That way I could just keep my SQL light weight and only need indexing the ids and avoid that whole mess of compound index.<p>Memcache with Rack-Cache.. I&#x27;d suspect I&#x27;d rely heavily on HTTP Cache. That way I don&#x27;t need to cache data objects, and have to redo the json all over again. Basically tring to avoid layers of caches, when I could just do it at the user end point. Of course I understand edge cases will turn up. So I&#x27;ll be prepared for that.<p>Then the client(s). iOS, just because I&#x27;m pretty certain whatever we offer, we can offer it better on the mobile platform as a native, also I can code OBJ-C &amp; design for iPhone.<p>Web, I&#x27;m probably not going to be doing the web-frontend much so I leave it to whoever I deem fit for the web. Whoever this person is, hen will be in charge of both the design as well as the code base for the web front-end. Meaning whatever stack hen choses to work with.<p>Preferably Bourbon.io with SASS&#x2F;SCSS and either Ember.js or Batman.js.
评论 #6516390 未加载
songzmeover 11 years ago
If I&#x27;m looking at ~10,000 users, I will go with Ruby on Rails (ROR) because I have a few years of ROR experience and I can get things done faster. ROR handles many things for you (like security) and there are many gems out there to help you get things done that otherwise would have been complicated (devise for generating users database). When you are done, push it up on heroku and you will have a solid product.<p>If your site is very real time (chat, real-time data), I&#x27;d look into meteor. They are a framework built on top of NodeJS and its built from the ground up to be real time. Like ROR, they do many wonders for you app (security) and has built in user authentication system.<p>If you are looking to build the site for a learning experience and want to learn how the web works and build everything from the ground up, go with NodeJS. Install packages yourself, tinker around with security, etc. Its a great exercise.
msaspenceover 11 years ago
Your stack should be whatever will allow you to test your assumptions the quickest.<p>For a lot of cases this will be whatever you are most familiar with. There will be some cases where a piece of tech you haven&#x27;t used before simply offers enough benefits to make it worth climbing the learning curve. However you want to use the best tool for the job, for startups the job isn&#x27;t to build an amazing, scalable and maintainable code base, or even a great product. It&#x27;s to find a &quot;repeatable and scalable business model&quot; before you run out of money.<p>This means speed is of the essence, choose what ever technology you can launch your MVP and test your assumptions with in the shortest possible time. At the same time balancing medium term scalability and maintainability concerns.
memracomover 11 years ago
Scala with Akka, and RabbitMQ for scaling across multiple servers. This would be a bit more work up front than a web framework like Django but it would be more maintainable in the long run due to the fact that Akka encourages writing simple loosely coupled code that does one thing (Single Responsibility Principle). Even more important is to get the dev team working using TDD (Test First Development) and provide a proper vision to guide them. Things like Uncle Bob&#x27;s Clean Code book, and the raw, original Agile manifesto before it got sucked into the Scrum and XP methodology machine. Even though the code is more functional than object-oriented, the SOLID principles still mostly apply.<p>Some alternate choices that could be OK if you can find at least one good developer to lead the team, are Clojure, or Erlang&#x2F;Elixir. With the Erlang virtual machine, RabbitMQ would not be necessary, although I like it because it gives you a lot of points where you can measure&#x2F;monitor the internals of your application. I would also seriously look at adding Apache Camel to the mix even though Akka does not require Camel to integrate actors. But Camel is a thin layer that makes it easier to reconfigure integration points.
masterjover 11 years ago
There is no way to answer this question without knowing more about what that product is.<p>If that product can be well-served with a customized wordpress template (or similar off-the-shelf CMS), that&#x27;s probably what you should do.<p>If that website requires process tons of data in real-time, that pushes you to a different stack.<p>If that website requires storing and processing tons of data, but processing can be batched, different stack.<p>If that site is an interactive game, different stack.<p>Do you need to stream data? video? process large uploads? Should it work offline? Should it work on multiple devices that are offline at the same time and sync up later? Is it mainly mobile? Is it a big enterprise-y application? Mainly consumed by teenagers on mobile phones? Serving a population in rural Brazil &#x2F; India &#x2F; Bangladesh?<p>You could go on like this for quite some time.<p>I certainly have my preferences, like any dev, but the needs of the project are going to dictate what&#x27;s needed.
评论 #6512984 未加载
notduncansmithover 11 years ago
Sinatra for the API, Redis &amp; PostgreSQL for data, Ember &amp; SCSS on the front-end.<p>Redis should be able to handle the most common data for 10k users, with PG for the less commonly requested data.<p>No particular reason for choosing Ember other than I like it better than Angular&#x2F;Knockout&#x2F;Backbone, and same for SCSS as opposed to LESS&#x2F;Stylus.<p>I feel like Node would be overkill in this scenario, Sinatra is so much faster to develop with (for me personally, I&#x27;m sure there are plenty of Noders out there who could swing it with their eyes closed).<p>PostgreSQL + Redis + Ember + SCSS + Sinatra; I call it &quot;The PRESS Stack&quot;
xauronxover 11 years ago
Honestly? For a large project probably PHP&#x2F;jQuery&#x2F;Bootstrap, iOS, MySQL on AWS.<p>For something smaller and quick I&#x27;d try to use Parse.
hardwaresoftonover 11 years ago
Front-end: Angular sounds like an awesome thing to bandwagon on to, but I&#x27;ve personally had more exprience with jQuery+KnockoutJS, and that&#x27;s worked fine for me. But I hear that Angular has way better structure, once you get over the learning curve<p>Middle: I really like Flask -- essentially django lite, and very very quick to get to writing real code, plugins are pretty good also. BUT, if you want to handle websockets and stuff, you need to get something like tornado&#x2F;gevent&#x2F;etc involved... I liked the quickness with which I could work with websockets with NodeJS, but callback hell is no fun. Revel (Go) might be good, if you want to reap some speed benefits.<p>Database: I would suggest Postgres. Solid as a rock, has new features (9.3 is pretty spiffy). If you&#x27;re going the non-relational route, I really like RethinkDB -- fantastic management console, really modern functionality (dumping is super easy, etc).
playing_coloursover 11 years ago
Based on your requirement I would think about 2 options for backend (REST service):<p>1. if I am a single backend developer for some period of time or have 1-2 people around I would go with what I am most familiar with and what can suit: in my case it is Scala, Playframework, MongoDb or Postgres.<p>2. If I start with a team to hire and work on the whole stack I would start with something that is both rather hot&#x2F;new to attract smart developers and keep them motivated and stable, with good stable choice of libraries to focus on the product not fixing issues in half-baked libraries. I believe Node.js MEAN stack or Rails would be my choice.<p>For front-end I would go with Javascript&#x2F;Angular.js
ishbitsover 11 years ago
I&#x27;m old, but just starting the design phase of a new app for my company.<p>Frontend will be angular and bootstrap as it&#x27;s working really well for other projects.<p>On the backend java, spring and jetty will be used. Netty will also be in there as we have non http networking needs as well.<p>PostgreSQL is our standby database, but we&#x27;re also evaluating Cassandra and rethinkdb for our non-relational needs.<p>Why Java? We have in house java knowledge and deployment is much easier than Python, ruby and node.
7Figures2Commasover 11 years ago
Nobody proposing very specific technologies here seems to be taking into consideration the cost of the resources who have competence with those technologies, and how easily these resources can be located and recruited.<p>A good CTO will <i>always</i> look at non-technical considerations of this nature because, in most cases, your ability to deliver is not just about the technologies you select.
xackpotover 11 years ago
We recently had this exercise at our mobile start up when we were deciding on stack. Like any other start-up we wanted to be nimble and fast, so we decided to use ready products with our start up. We chose Parse BaaS for our data, Dotcloud PaaS (PHP, CSS, HTML) for hosting. So the only major things that we needed to worry about involved HTML, Javascript, PHP, Objective-C.
soundoflightover 11 years ago
.NET and Node with Azure&#x2F;Azure Mobile Services and progressively enhanced Backbone on the front-end of the website.
dandrewsover 11 years ago
Anything Cognitect - just because I&#x27;ve never met a Relevancer I didn&#x27;t like.
meeritaover 11 years ago
If I have to start a new project, the initial code and MVP would be rails, just to show off, but since I&#x27;ve been dealing with Erlang, I must say that baby is too sexy to say no. It would be between Earlang or either Go...
twogover 11 years ago
Honestly, whatever the best tools for the job are.<p>My preference? Rails, Ember, Mongo, Haml&#x2F;Sass
Fishrock123over 11 years ago
Front-End: I&#x27;m used to jQuery + Jade, but possibly something fancier like angular&#x2F;ember, or even meteor.<p>Middle: Node.js + Express (unless using meteor). If not node, then Sinatra.<p>Database: MongoDB, Redis if necessary.
groundCodeover 11 years ago
Angular for the front end work. Backend API built out in either Python with a minimal framework like flask or perhaps Go if I had the luxury of time to learn as I built it. Postgres for the DB.
zerolinesofcodeover 11 years ago
roostrap. A java and Spring based framework that runs beautifully on AppEngine along with Twitter Bootstrap 3 for the UI.<p>Ticks the following with ease.<p>[x] UI [x] API&#x2F;Code generation [x] Scalability [x] Libraries and support [x] Free to host MVP<p>Project: <a href="http://bhagyas.github.io/roostrap" rel="nofollow">http:&#x2F;&#x2F;bhagyas.github.io&#x2F;roostrap</a> Sample&#x2F;Demo : <a href="http://roostrap.appspot.com/" rel="nofollow">http:&#x2F;&#x2F;roostrap.appspot.com&#x2F;</a>
ericthegoodkingover 11 years ago
Front-end: Angular, as it is great. Back-end: Rails, its what im familiar with. Db: postgresql Bootstrap 3.0 -This is a great and well designed library. sass
sejjeover 11 years ago
Rails or Django on Heroku, most likely.<p>The frameworks (try to) help you keep from botching things so bad it&#x27;s painful later, and heroku just because I hate server config.
agibsoncccover 11 years ago
Scala&#x2F;Play for any heavy lifting. Node for the web layer and Angular&#x2F;SASS for the front end with grunt to handle node and front end builds.
larrykubinover 11 years ago
We used plain old Python&#x2F;Flask with raw SQL, PostgreSQL, and HTML&#x2F;JS&#x2F;CSS on our webapp and I would do it again.
brianbarkerover 11 years ago
Go, MongoDB, AngularJS.<p>Go for being modern, fast and fun. MongoDB or similar for its scalability and being quite good for modern applications. Plus I&#x27;m just tired of SQL DBs.<p>AngularJS for a rich client experience, plus I look at REST servers as serving any type of client and the thick web client is but one such potential user of the service. Expanding to mobile or god-knows-what is easier.<p>I have more details about architecture I&#x27;d prefer and could write a lot on that, but don&#x27;t want to.
评论 #6522207 未加载
captainbenisesover 11 years ago
Rails, devise, postgres, heroku, scss, backbone.js or angular.js. Stripe, Google Analytics, Xero, Dashing.
joeldiditover 11 years ago
AngularJS, SCSS, Python or PHP, Memcache, SQL database (MongoDB where needed).
nyddleover 11 years ago
Flask, Mongo, Redis, Heroku
mattwritescodeover 11 years ago
Django, Nginx, mysql