July 12, 2017

What's your stack?

14

Assuming most IHers are working on software projects, what is your current application stack? Are you learning something new? What do you like/dislike?

Mine is:

  • Firebase

  • A Node-based message queue hosted on Heroku

  • React/Redux

  • Sass

The only new thing for me is React. At my day job I work on an enormous AngularJS application. It took me a long time to get good at Angular due to all of its idiosyncrasies, so I was shocked at how quickly I was able to become productive in React.

EDIT: I am really excited to see all the variety here! I was totally expecting a bunch of the same stuff but clearly you all are not zeitgeist zombies.


  1. 6

    I actually built my own open-source framework: http://vulcanjs.org

    It uses React, GraphQL, and Meteor, and I built it specifically to be able to quickly iterate on new product ideas. Think of it as a cross between Rails and something like Drupal, but built with the modern JS ecosystem :)

    1. 0

      Very cool! Do you earn a living from this or is this purely a passion project?

      1. 1

        I earn a living from http://sidebar.io, which is itself powered by VulcanJS. So a bit of both :)

  2. 4

    My stack for https://dumper.io is pretty boring. :)

    • Hosting: Linode

    • OS: Debian

    • Provisioning: Sunzi https://github.com/kenn/sunzi

    • Framework: Ruby on Rails

    • Server & Worker: Unicorn / Resque / EventMachine (will switch to Puma / Sidekiq)

    • Libraries: Everything under https://github.com/kenn?tab=repositories 😉

    • Web Server: Nginx

    • Database: MySQL / Redis (and MongoDB / Postgres for internal use)

    • Payment: Stripe

    • File Storage: Amazon S3

    • SMTP: SparkPost

    • Bug Reporting: Sentry

    • Analytics: Amplitude / Google Analytics

    • Performance Monitoring: New Relic

    • External Monitoring: Pingdom

    • Internal Monitoring: Monit

    • CI: CircleCI

    1. 2

      Boring is mature :)

    2. 1

      umm sparkpost's free plan lookin' good

      1. 0

        Yeah SparkPost is pretty good.

        One feature I'm missing though is real-time history update / email preview of SendinBlue.

        1. 0

          Sparkpost is great, but a lot of my emails go to spam for gmail users. Have you ever had that issue?

          1. 0

            uh that was sad

          2. 0

            Oh really? I haven't experienced it myself.

            You have set up the DKIM signing with DNS right?

            1. 1
    3. 1

      Ours is similar for https://www.tenantupdate.com

      Host: Linode

      OS: Debian

      Front: Bootstrap

      Framework: Laravel

      DB: MySQL

      Payment: Stripe

      1. 0

        Cool! I think Linode is undervaluated compared to DigitalOcean or AWS.

        1. 0

          Agree 100%. Linode is awesome.

          1. 0

            Now you've pique my curiosity—could you both expand a bit why you prefer Linode?

            1. 1

              Simply put, Linode is the best in everything - performance, price and support.

              https://joshtronic.com/2017/02/14/five-dollar-showdown-linode-vs-digitalocean-vs-lightsaild-vs-vultr/

              To me, the biggest factor is support. Linode usually responds in a few minutes around the clock.

              It's like hiring a team of experienced ops people on 24-hour shift in the data center. They are cool people to talk. It is especially important if you're a solo founder who also wears a server admin hat.

              At my previous work, I managed 100+ servers to handle 30 million users, and doing that by myself would have been impossible if it had not been for Linode.

              DigitalOcean comes close, but Linode still wins on all fronts.

              AWS? Bureaucratic response two days later at best, usually no response at all.

              1. 1

                Amazing reply kenn! Also appreciate you adding the extra insight into the customer service response times. I'll test out Linode on my next side project!

              2. 0

                I used to use Linode, it felt old-fashioned (design-wise) but I liked it a lot. In the end I saw myself spending too much time as a sysadmin when I needed to be developing.

                Are you using the Linode manage service or just the standard thing?

                1. 0

                  Just the standard plans. Good thing about Linode is they don't undercut the service to customers in lower tiers. Maybe it's a philosophical thing rather than unit economy. Or, I'm guessing their customers are more experienced with Linux (I've been with them, both personally and at startups, since 2006), and don't waste their time much. :)

    4. 1

      thanx 4 sharing + your product seems really interesting! How do you do your own DB backup?

      1. 1

        Thanks! Actually I eat my own dogfood - production servers are backed up by the staging servers.

        1. 1

          cool idea

        2. 1

          best practice!

        3. 0

          I like this idea, but I can't wrap my head around how it works. Can you give me some hints please?

          1. 0

            It's pretty simple, production and staging have their own separate databases. So the production agent connects to staging - which is a hack of course, as it's not available to users.

            Dumper also supports "remote fetch" method, which pulls dump from anywhere on the internet, I use that for other servers too.

            1. 0

              Thank so for the quick response and advice. If I am getting it correctly, the production server sends double the write/insert/update commands, one to production database and one to staging database?

              1. 1

                No, you are talking about replication.

                Replication or RAID won't save you when you do UPDATE users SET name = 'foo'; 😱 (notice the missing WHERE clause, it's a disaster) because all of your replicas will apply your mistake immediately.

                And human mistakes are more likely than natural disaster or immediate hardware failure in a typical setting. What you need is a time-lagged, real backup.

                It's not uncommon when you hire a junior dev: https://www.reddit.com/r/cscareerquestions/comments/6ez8ag/accidentally_destroyed_production_database_on/

                Production/staging is a separate concept. It's called environment. https://en.wikipedia.org/wiki/Deployment_environment

                For instance, you can have two servers for replication (master-slave), in each environment (production / staging), totaling four servers. And you still need a backup strategy for your production database.

                1. 0

                  You are right about the time lagged is needed, otherwise it would be disastrous. Take mongodb for example, do you simply mongodump from your production server to your staging server with a cron job? I think I am trying to zoom in on the mechanics you are using to move data from you right production server to your staging server.

                  1. 0

                    The whole point of dumper.io is to not mess with cron / custom scripts. :) The best practice is baked right in the product - I just use it myself.

                    1. 1

                      oh, hah, I got no idea how I miss the obvious!

  3. 2

    Our stack for shoppewith.me is (from front to back):

    • Twitter Bootstrap v4 (living dangerous)

    • Angular v1 & VueJs v2

    • Django/Python

    • PostgreSQL

    • Nginx

    • Ubuntu

    • AWS

    1. 1

      Twitter Bootstrap v4 (living dangerous)

      You are a wild man!

      1. 1

        Haha, yeah we are still on Alpha version 2 because of how crazy the changes are between here and version 6. Maybe not one of my better decisions!

  4. 2

    https://getctx.io - it's an enterprise-grade search product, in the cloud, for digital (project, product, agency...) teams

    • Front end: ClojureScript + Reagent (bindings for ReactJS) + Bootstrap

    • Backend: Clojure (lots of custom integration and data processing code in here, and Clojure really shines for this stuff)

    • Storage: Postgres

    • Indexing: Lucene based

    • Config management: Ansible

    • Build: CircleCI

    • Backups: S3

    All of these tools are things I've used extensively before on real commercial projects.

    I'm a solo founder so I try to use the 'sharpest tools' I can to maximise my efficiency, and the Clojure stack really hits that sweet spot for me.

    1. 1

      This is amazing, I thought I was the only solo founder who prefers to use clojure! I'm using clojure for my open source (with paid hosting) feature flag management app, checkered https://github.com/checkered/checkered !

  5. 2

    I am using Python/ReactJS/Django/Django Rest Framework. AWS for hosting.

    Its a very potent combination and I am very productive with it.

    The interesting thing is that developers when working with the above stack typically create API Views and use fetch API on react side. What I am doing is leveraging the power of DRF to serialize models but ignoring the API views.

    What I do is transfer the serialized JSON from Django through the view context. So each Django view is mapped to a react router view. And then I load the context as initial data in the redux store. This method also lends itself very to server side rendering too!

    I have previously used this method for building client projects and now I am using it to build https://scrumgenius.com too.

    There is not a lot out there around this technique and I been wanting to write a ebook on this topic cause I think it could be useful for Python/Django devs. I put up a landing page at http://reactonpython.com/ - Once I am out of the woods with ScrumGenius, I can focus on that next.

    1. 0

      Very interesting. Do you happen to have any example code, like on GitHub?

      Can you easily use real-time stuff like channels?

  6. 1
    • Front-end: Reactjs

    • Backend: Elixir/Phoenix

    • Hosting: Heroku

    • Payments: Stripe

    1. 1

      How does the productivity of Elixir/Phoenix compare to other languages/frameworks you've used before? I keep hearing people rave over functional languages and thought I might try out Elixir myself soon.

      1. 1

        I tried a lot of languages out before I found the Elixir/Phoenix pair. Once I started using it I never looked back. The productivity is great, I can get projects up and running just as fast as if I were to use Rails. It's an absolute pleasure to code with.

  7. 1

    Microsoft Dev with a BizSpark subscription, so:

    Hosting: Azure (using App Service) free $150 / month credits from BizSpark

    Server:

    Asp.NET MVC

    Azure Sql & Blob Storage

    Web & Mobile Apps:

    Xamarin for cross platform mobile apps (90% code reuse for fully native iOS, Android and UWP apps)

    Aurelia for SPA web front-end stuff

    CI & DevOps:

    Visual Studio Online: gives CI builds and other Devops stuff, free private Git Repos etc.

    HockeyApp for mobile beta app testing & distribution.

    1. 0

      How are you liking Aurelia? It's kind of popular here (Rob Eisenberg lives in my town) but I've never given it a proper try.

      1. 0

        I come from a XAML MVVM background - so Aurelia is awesome so far as I'm concerned :) For me, the 3 main things are simplified data-binding to ViewModel code, the separation of concerns in it's component design, and sticking very closely to W3C standards.

  8. 1

    Rails API - Backend

    Ember JS - Front-end

    Postgres - Database

    Redis - Background jobs

    ElasticSearch - Indexing / Search

    New Relic - Monitoring

    Digital Ocean - VPS Hosting

    Hatch - Deployment Automation

    CodeShip - Continuous Integration

    I'm new to Ember but the documentation is solid and the community is super helpful which has made adopting it a great learning experience.

    The other new tool I started using on this project is Hatch (https://hatch.gorails.com/). Great alternative to Heroku if you have a lot of Rails projects. It's fairly new so there are some bugs here and there but it has saved me a ton of time and $$ when it comes to deployment.

  9. 1

    Ruby API backend (Roda, not Rails)

    VueJS front-end

    Postgres Database

    hosted on Heroku

    Has been phenomenal :)

  10. 1
    • ansible for setting up server

    • atomic deployment with buddy.works

    • zend framework, phing & postgres for backend

    • vuejs, webpack and semantic UI for frontend

    • sentry.io for error reporting and some logging

    • new relic for monitoring

  11. 0

    i'm a LAMP/LEMP developer with occasional JS and python. i also found wordpress to be a great application framework, namely for MVPs/prototypes, side projects and other stuff that usually tends to be bootstrapped. as of extra tools i use, here come the regular stuff like gitlab/bitbucket, vagrant, mailgun, aweber, mailchimp, newrelic and plenty others depending on a project. i tend to keep my stack lightweight and my workflow simple

  12. 0

    MyHomi is a POS for Canadian dispensaries (https://myhomi.ca)

    I've built the stack to be as low-maintenance as possible. It consists of the following:

    • Application: Node, React, Typescript (TS has provided huge productivity benefits. I would never go back to vanilla JS for a medium+ size application again)

    • Hosting: AWS EC2

    • Database: AWS RDS

    • Code + CI: Gitlab ($0 for a fully-fledged CI is something I think many people underestimate)

    • Static site hosting: Surge.sh

    It would be nice if I would get the API server running serverless somewhere, but it is not a pressing concern.

  13. 0

    My stack for https://www.travelcurated.com is:

    Codewise:

    VueJS, Node JS, Express, Postgres.

    Libraries / Helpers:

    Sparkpost (free), Netlify (free), Mailchimp (free), Digital Ocean droplets (paid)

    All client side code is hosted on the free Netlify plan (honestly a lifesaver) and all server/db is hosted on a few Digital Ocean droplets.

    1. 0

      Thanks for sharing. What is Netlify like? I'm on the fence with it, I'm using clever-cloud now and I'm about to jump, maybe to heroku or digital ocean. What's the best Netlify gives you?

  14. 0

    For: https://www.amqphosting.com Our stack is:

    Ap server Hosting: Digital Ocean and scaleway

    OS: Ubuntu 16.04 LTS

    Provisioning: Ansible

    Framework: Python/Django

    App Server & Worker: Gunicorn & Celery

    Web Server: Nginx

    Database: AWS RDS postgres

    Payment: paypal

    Transactional email: SparkPost

    Email hosting: Zoho

    Chat: https://crisp.chat

    Bug Reporting: Sentry

    Analytics: Google Analytics

    App Performance Monitoring: New Relic

    Git hosting: Bitbucket

    DNS: Cloudflare. We have multiple A records all setup to point to amqphosting.com, so that acts like a high availability(dns load balancing) option.

    SSL certificates: letsencrypt

  15. 0

    https://github.com/checkered/checkered A feature flag management app.

    • Clojure

    • Postgres

    • Heroku

    • Vanilla JS

  16. 0

    Heroku and Ruby on Rails 5.2

    For a one-man project, I outsource my devops/server/etc needs to Heroku and focus on building the product.

    So far my Heroku costs for http://tribeops.com are:

    • Hobby dyno $7

    • Background jobs $7

    • PostgresSQL $0

    • RedisOnGo $0

    Currently it's $14/month but I haven't really done any marketing yet. Hopefully, someday I need to upgrade my Heroku plans :)

    Pretty much all data older than 30 days get's deleted, so that keeps my database size lower than usual SaaS apps.

  17. 0

    I do Elixir professionally so my it's my go-to language paired with Phoenix.

    My stack for https://crimsonaegis.com

    • Elixir/Phoenix (100% server rendered)

    • PostgreSQL

    • Google Compute Engine

    • Stripe

    • Spectre.css with a lot of custom CSS including CSS grid

    • Sentry for errors

    • SendGrid for transactional emails

  18. 0

    Laravel/Apache/MariaDB, usually on top of CentOS.

  19. 0

    For http://www.ketocargo.com

    • Heroku

    • Nodejs (and EJS templates)

    • MongoDB

    • Cloudfront/S3

    • Stripe

    • NightmareJS

    Decided to avoid React/Redux/Sass/Webpack/Bootstrap etc. that I built previous projects with as it didn't seem entirely necessary for this and I haven't missed them at all really. Hasn't been any trouble using vanilla JavaScript, CSS and templates. Leveraging Heroku add ons has made life much easier as I am fairly inexperienced with servers, devops, etc.

    The parts I'm building with NightmareJS for automation of orders, etc. are the most difficult by far, still lots of work to do there and the stack will probably expand for that.

    1. 0

      I'm interested to hear how you are using NightmareJS. I've used it in the past for UI/integration testing, but curious to hear what other applications people are using it for

      1. 1

        To run "tasks" in headless browsers. For example, say you want to programmatically order something from Amazon, since there is no API to do this, you could write a "task" whereby a nightmarejs script will open a browser, go to Amazon.com, search for the item and place the order. With a platform on top of this, tasks like these could then be scheduled for different times and triggered by requests, etc.

        I'm trying to build a framework/tools on top of Nightmarejs to do this (although this has taken a back seat as it's not urgent) and the platform later on perhaps. Will probably open source all of this of I manage to make a success of it. At the moment it's a bit of a "nightmare" to work on because making mistakes often leads to my laptop crashing. I might look into headless Chrome to see if there is more hope there.

  20. 0

    At https://siftery.com/ we use:

    • Reply for email outreach

    • Algolia for search

    • Intercom for customer support

    • AWS

    • Google Analytics

    • Docker

    For a full list of our stack you can visit here: https://siftery.com/company/siftery

    Quick tip: You can use https://sitestacks.com/ to find the stack of any website.

  21. 0

    My stack for weather extension

    • Laravel

    • VueJs

    • Memcached

    • MariaDB

    • Cloudflare

    • DigitalOcean

    I really enjoy working with Laravel and VueJs. They're a great combination.

    This is a great site for seeing other companies stacks: stackshare.io

  22. 0

    Host: DigitalOcean / Heroku

    OS : Ubuntu

    Front: Bootstrap / Vue

    Framework: Laravel

    DB: MySQL or Postgres

    Payment: Stripe

  23. 0

    PreactJS at the front, and it's talking with backend through websocket only (kinda pub/sub api, experimental but performance is HUGE!).

    Backend: Python3.6/Tornado, Database: Rethinkdb. This setup working like a charm!

    Server: Nginx, Cache: Redis, Bugs: Sentry, Hosting: Linode VPS

  24. 0

    Stack for https://www.ratelim.it has served me well:

    AWS Kinesis for write ahead buffer

    1. 1

      It seems like your site is currently down.

      1. 0
  25. 0

    My stack for koipun.com

    • Hosting: Heroku with Docker (docker is new for me)

    • Backed language + framework: Python 3 + Flask

    • Client side framework: Vue.js (new for me)\

    • CSS framework: Bootstrap 3 for the marketing pages and Spectre.css for the App. Eventually I will port everything to Spectre.css

    • DB: Heroku Postgres

    • Analytics: Google Analytics

    • Payments: Stripe

    This is my dream setup, after trying many different approaches. I have a few complaints here and there, but I am mostly happy with my current setup.

  26. 0

    For https://quicknotes.io I use:

  27. 0

    Here's my backend stack, more or less. The diagram is missing some new components

    https://cloudcampaign.files.wordpress.com/2017/05/cc-tech-stack.jpg

    Frontend is angular

    1. 0

      There is something oddly pleasant about your sketching style. :)

      1. 0

        haha thanks! It helps having a 7' x 4' whiteboard wall

  28. 0

    Front end: React (or Angular 2)

    C# & asp.net core for API layer

    Azure table and blob storage for most data, some sql server where needed

    Deployed to azure web apps and related services

    A few years ago, I wouldn't think to start a new project in .NET (the language of my day job), but since C# 6 and ASP.Net core were released, using this stack has suddenly become easy and fun.

    1. 0

      I use C# for my day job as well and my DevOps game is weak. How do you like Azure Web Apps? I was thinking of using Heroku but would have to pick up a new server language because C# is not supported.

      1. 0

        I've really enjoyed it so far. Setting up a web app is pretty intuitive, and you can do most of the setup and management from visual studio if you want. They also support continuous integration from github, so you get that push and deploy experience like you get with heroku. Not sure about the cost in the long run, but you can get a lot of prototyping done in the basic tier.

        If you're interested, you should learn about Kudu . A lot of people don't realize that Azure web apps support plugins, like for automatically redirecting to https or auto-renewing Let's Encrypt certificates. There are also lots of toggle settings for cors, authentication, and deployment nuances from the portal.

        Let me know if you get a chance to play around with it. I'd love to share tips. https://docs.microsoft.com/en-us/azure/app-service-web/app-service-web-get-started-dotnet

        1. 0

          PS: Application Insights has saved my bacon in production more than once. The first thing I do is usually add Swagger and App Insights in Startup.cs.

  29. 0

    FeedCheck ( https://feedcheck.co ) is a Review management application and we use following stack on backend:

    -Ubuntu

    -Python (Flask + Django ORM)

    -Apache/uwsgi

    -MySQL

    On frontend we use boring tech HTML/CSS and JQuery

    1. 1

      I am glad to see Python people here! With all of the JS hype I thought we were in the minority, but it seems Python has a good number of followers. Also, Flask rocks! What led you to Django ORM though? That said, I am not a big believer in ORM. I mostly prefer to do raw queries.

      1. 0

        In a startup often initial requirements changes quickly. I use Django ORM because it has migrations for SQL database. Just add an extra field for a class and the database table is automatically altered.

        Until now, in one year, we had 60 migrations (changes of database structure) .

  30. 0

    Pretty trusty backend for https://weworkcontract.com but front needs work.

    • Python/Django.

    • Nginx, Gunicorn, Supervisor.

    • AWS box provisioned using Ansible.

    • Scrapy.

    • Celery for tasks and async processing.

    • Redis for app caching.

    • Cloudflare for easy https.

    • Frontend is some lame bootstrap template (I'm a backend dev).

    • Vagrant for local dev.

    • Sendgrid, Stripe APIs for email and payment.

  31. 0
    • Graph.cool (database, API, serverless functions)

    • React + Redux + Apollo (+ probably redux-observable)

    • AWS S3 for frontend hosting

    And for the love for all that is holy, anyone doing React needs to learn recompose.

  32. 0

    My stack is pretty much JavaScript from front to back.

    For the back-end:

    For front-end:

    • Ember.js - For web applications

    • Jekyll - I use Jekyll for blogging and marketing pages for the web app.

    Backend usually rests on Digital Ocean, while Ember and Jekyll are hosted on AWS S3/CloudFront for CDN.

  33. 0

    I made what was probably a huge mistake and decided to learn some completely new things for my current project. I'm basically following the http://serverless-stack.com/ model (which is an excellent tutorial, btw).

    Back-end:

    • Serverless Framework

    • AWS API Gateway

    • AWS Lambda

    • AWS DynamoDb

    Front-end:

    • ReactJS

    • AWS S3

    It hasn't been too bad so far, but I'm not done yet so I probably haven't hit any real pain points at this stage.

    1. 0

      I'm exploring the same stack for my side project. Why do you think it is a mistake?

      1. 0

        It's not really the stack, but more the decision to learn something new rather than stick with something I know (e.g. Rails).

        1. 0

          ok. makes sense. But side projects are a really good way to learn something new, given you have the time.

          Anyway, thank you for mentioning serverless-stack website. I've been learning it on my own, but the content in the site is really well structured. I'm finding it really useful to learn faster...

          All the best for your project!

  34. -2

    This comment has been flagged. Click to show.