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.
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.
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.
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.
Nginx as static assets server (serving everything frontend related) and as reverse proxy for the backend. Probably Passenger or Puma for the application server.
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.