Ask HN: What tech stack is your startup built on?
I recall there was a post about a year or so ago about tech. stacks used by startups etc. Would love to hear the latest in 2013 used by startups. Any details of front end, back end, hosting, app servers, databases etc. will be useful.
20 comments
[ 3.6 ms ] story [ 44.7 ms ] threadServer: Nginx, (NodeJS, Express, MongoDB) | (Django, TastyPie, Postgres, Gunicorn)
Hosting: S3, Linode|Ec2, Ubuntu12.04|{Gen,Fun}too
Ruby on Rails, hosted on Heroku. PostgreSQL.
Queuing is handled via Redis/Resque, and we're using Pingdom and NewRelic for primary monitoring.
SendGrid powers our email, GitHub hosts our code, and we use Campfire + PivotalTracker for day to day coordination.
We use Haml for templating, and SCSS for styling. [edit, forgot JQuery]
S3 for image storage, we'll probably be moving the whole app to Amazon's cloud in the next few months as well.
We've also made a couple tradeoffs in terms of browser compatibility, including using some CSS3 animation features not fully supported by IE9 and under. We'll see if that works out for us long term.
All in all, a pretty standard setup for a Rails startup.
ASP.NET MVC 4 (Razor) with WebAPI, Unity IoC/DI, Enormous (a micro ORM not published yet)
PostgreSQL, Redis
Internal: Git, GitHub, Basecamp
Client: HTML-not-quite-5, jQuery, Lodash, Fine Uploader, Select2, Redactor, Fancybox 2, Sass/Compass
Server: Apache 2.2, MySQL 5.1, PHP 5.3, Laravel 3, PHPMailer
Hosting: MediaTemple DV 4.0 (CentOS 5.8)
Server side: ASP.NET MVC 4, Ninject IoC, LightSpeed (amazing super fast ORM from Mindscape, not free)
Infrastructure: Amazon AWS (EC2, S3, CloudFront), SendGrid for email, RabbitMQ, MySQL 5.6, MongoDB (for realtime stats)
http://improvely.com : Nginx + PHP-FPM (5.4) + Percona (MySQL 5.5) + Redis
http://w3counter.com : Nginx + PHP-FPM + Percona + Redis + Node.js (for live dashboards with lots of connections)
Hosting by SoftLayer. I surveyed the hosting choices of over 300 YC-backed companies; Amazon EC2 and PaaS running on EC2 was the most-used, with Softlayer in second place. If you run your own servers, they're the best hardware, public/private network infrastructure and support you can buy, IMO.
Server: Play Framework (Java), PostgreSQL
GitHub for code hosting.
The project's not yet launched, but we're considering DigitalOcean and Rackspace as deployment options.
Rails, Postgres, Passenger/Nginx, Redis, Java, Memcached
JQuery, Haml, Sass, Bootstrap, Compass
Started with EC2, now on Linode.
Yet to be announced food ordering app:
Rails (purely as API), PostgreSQL
AngularJS, Bootstrap, Scss, Compass, Yeoman
Nginx as static assets server (serving everything frontend related) and as reverse proxy for the backend. Probably Passenger or Puma for the application server.
Planning to try DigitalOcean.
I type the code into my favorite text editor, KEdit, and use a lot of KEdit macros I wrote. I don't use an IDE.
The session state store is just a console application communicating with TCP/IP sockets and using two collection classes, one for the key/value pairs of the session ID and session data and the other for a fast way to apply time out. Timings indicate that on a dedicated, single core computer with a 3.0 GHz clock the session state store should be able to serve over 1000 Web pages a second, that is, (A) read the session state, (B) use and update the session state, and (C) write the session state. The code for the Web pages that use the session state store send/receive just byte arrays; a GUID is used for the key, and the values are from de/serialization of an instance of a class for session state.
Visual Basic has been nice, both for console applications and on IIS for the the Web pages. The compiler is astoundingly fast; the resulting EXEs are astoundingly small; the EXEs load quickly; the compiler error messages are from good up to quite nice; and I may have encountered no bugs at all.
Yes, with the session state store as just a simple program, actually just a console application, communicating with just simple TCP/IP sockets, there is a wide range of options for having many Web servers sharing several session state stores. So, get a 'scalable' solution with some options for more in reliability. And don't need 'session affinity' from a front end Cisco box.
The collection class I used was
SortedDictionary(Of TKey, TValue) Class
as in
http://msdn.microsoft.com/en-us/library/f7fta44c
Server: Debian Linux, Apache, MySQL, mix of PHP and HTML. Some HTML and XML periodically generated by Perl scripts
Hosting: Linode and Rackspace. Still have assets to migrate from Dreamhost and Bluehost.
Server side was done as it was for two reasons. One, web hosting firms tend to push you toward PHP, or nowadays, also RoR. It was not easy to run a Tomcat instance on shared web hosting a few years ago, although the rise of VPS has been changing that. Secondly, I have been using LAMP for over 15 years and am familiar with it. Sometimes I think about Django or Tomcat or Racket, but there would be more of a learning curve with those.
Web: MVC4 (Razor), C#/.Net4.0, jQuery, WCF
DB: SQL Server 2008
Hosting: Dedicated servers
Python, Django, Nginx, Gunicorn, Memcached, Celery, RabbitMQ, Postgresql
Recently moved from Heroku, now hosted on a couple instances from DigitalOcean.
Server: Debian 5, OVH Dedicated Server ($99 a year) Atom with 2GB RAM
3rd Party: New Relic (Free), CloudFlare (DNS), Pingdom (Free)
Running a blog and 3 other small projects 20-60 users online at anyone time, CPU usage rarely goes over 5%