Hacker News .hnnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What tech stack is your startup built on?
15 points by codegeek on Feb 15, 2013 | hide | past | favorite | 18 comments
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.


It may not be hip, but it handles tens of thousands of users, and tens of millions of (non-cacheable) hits daily, with just a few commodity servers --

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.


Windows, IIS, ASP.NET, ADO.NET, Visual Basic .NET, .NET, SQL Server, own session state store. Not live yet, but nearly all the code is ready to go live, and the code written seems to run well. Haven't written any JavaScript although ASP.NET writes some for me.

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.


I am curious as to why you wrote your own session store. Is this to allow true load-balancing without the affinity requirement of a machine-based session?


Handling session state with my own code let me improve the UI/UX.

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


Software: Varnish > Nginx > PHP-FPM > MySQL + Memcache

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%


Client: mostly native Android currently, may put in a web interface eventually

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.


PivotDesk (www.pivotdesk.com)

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.


  * Dedicated instance @ rackspace cloud
  * Linux (default ubuntu 12.04 LTS install)
  * Apache
  * PHP 5.3
  * Postgresql 9.1
  * beanstalkd + supervisord + php scripts for async queues
  * cronjobs for housekeeping, ETL, data rollups, etc
  * Sendgrid via SMTP for email
  * New Relic for app monitoring
  * Rackspace cloudfiles for image hosting/storage

  * github for code
  * shell scripts for deployment/new server setups
This setup servers 50 beta testers on our latest product at the moment. Should scale up for a while as we will just bump the instance size as needed.


http://drop.sc

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.


Client side: jQuery, SASS, Backbone.js, JS written in CoffeeScript. AngularJS for our internal administration app.

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)


I'll just throw in front end libraries too. We weren't able to leverage HTML5 due to our market segment.

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)


http://easyendorse.com : Ubuntu, Apache, MySQL, PHP 5.3, Redis, Git + GitHub, jQuery, Akismet, MaxMind, Mailgun, Stripe - all hosted on Rackspace Cloud.


Client: Jade, Sass/Compass, CoffeeScript, (AngularJS|Backbone), GruntJS

Server: Nginx, (NodeJS, Express, MongoDB) | (Django, TastyPie, Postgres, Gunicorn)

Hosting: S3, Linode|Ec2, Ubuntu12.04|{Gen,Fun}too


Client: jQuery, Backbone.js, LESS

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.


Client: jQuery Stack: Linux, Apache/nginx, MySql, PHP Hosting: Dedicated server, VPS for dev, caching/proxy, S3 for backups


User Application: .Net 4.0 (XP support) Windows service/ClickOnce

Web: MVC4 (Razor), C#/.Net4.0, jQuery, WCF

DB: SQL Server 2008

Hosting: Dedicated servers


jQuery, LESS, Knockout and Uppercut (my Backbone-style model transport).

ASP.NET MVC 4 (Razor) with WebAPI, Unity IoC/DI, Enormous (a micro ORM not published yet)

PostgreSQL, Redis


jQuery, Bootstrap

Python, Django, Nginx, Gunicorn, Memcached, Celery, RabbitMQ, Postgresql

Recently moved from Heroku, now hosted on a couple instances from DigitalOcean.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: