23
82 Comments

Your Stack/Tech

Hey.

In looking over posts from the last week or so ,some have mentioned the tech that their projects are built on.

I would think most people/projects here are relatively small,, ie < 1000 users/mth, so I would imagine the "stack" could be a couple of small instances/VM with a cloud provider and the associated code/server/db -- with perhaps a payment processor.

So the question. What comprises your stack?

Cloud
Hardware
DB
Server/Frontend language
3rd Party Tools -WP/Dashboard
Web/Mobile
Anything Else...

Keep replies simple, but let others learn from you!! (Oh, add anything else you think is reasonable)

Oh..Oh.. If you see something from someone else that you think you can add to their stack to help them out, lt them know!!! be nice!

  1. 5

    I discuss some of the tech stack we use at our about us, but here are a few notes.

    Big things I decided on to try to speed-start our self-funded SaaS:

    • Go with AWS products whenever we can. There's no need for vendor-agnostic products when you're sprinting and small. You gain so much by using all AWS products that really work well together. CloudFormation to deploy Cognito to create users to send requests to API Gateway to Lambda functions to S3/etc.

    • Go 100% serverless. I have about 30 Lambda functions running Fluxguard. It can be somewhat complicated to orchestrate, but the benefits in terms of not having to worry about infrastructure is really great. There is a bit of serverless backlash going on nowadays, but I really like what it has provided us. As well, it forces you to "separate concerns" (a hallmark of good software design).

    AWS products we use include:

    • CloudFormation: infrastructure as code. All of our AWS infrastructure is completely managed by CF.
    • DynamoDB: a bit iffy on this one.
    • CloudWatch: for logging and crons.
    • Lambda: for serverless.
    • API Gateway: for API endpoints.
    • Cognito: for user accounts and authentication.
    • S3: for storage
    • SNS: queues for communication between Lambdas

    Non-AWS things we use:

    • Netlify for hosting our React.js front-end
    • Travis CI for automated deployment
    • Sendgrid for transactional emails.

    Early in my career I learned that code/infrastructure can often be changed pretty easily... except for databases. That's the one choice you have to be careful about. And, honestly, I would probably go with Aurora/MySQL, instead of DynamoDB, if I was to do it again.

    1. 1

      How does trying to use as many AWS products as possible pan out from a financial point of view? Doesn't it get quite expensive?

      1. 1

        Not at all. AWS is very cheap all things considered.

        1. 1

          I'm curious - have you done the calculations, i.e. how much are you saving?

          1. 1

            Saving in regards to what? From my perspective, if I can use AWS vs anything else, I save money.

            1. 1

              Saving w.r.t substituting some of the AWS with other services, e.g. DynamoDB with some other DB, or using your own implementation for user accounts and authentication instead of Cognito.

              1. 2

                I'm not sure yet... so far I haven't launched my product, so I will have to wait to see when it hopefully scales.

                For other other products, however, we achieved significant cost savings moving as much as we could to AWS. For that product, we we had MRR at around $20k and AWS costs at $500.

                Now, you hit on a good point which is DynamoDB. That can be costly if it is not designed very, very well. And I am not sure I did that. They have a really odd pricing model (you pay for read/write "workers").

                1. 1

                  Yup! As far as I remember, you can set the number of DynamoDB workers with auto-scaling to a percentage of usage, so that could help with costs.

                  BTW, all the best in your endeavours!

                  1. 1

                    Yeah, auto-scaling is not particularly helpful in my case as it turns out. If you have a predictable rise/fall in use, it's great. But since it takes a few minutes to scale, it doesn't work well for bursts.

                    So... this is problematic for us in terms of deletions. If a user has 1000 records and does a mass delete, well, that's 1000 separate "writes" that need to occur at the same second.

                    We basically have had to re-architect how deletes work. As I said, if we were better architects, we would have realized this upfront and not designed it in the RDS-like manner (which we did).

    2. 1

      This comment was deleted 23 days ago

      1. 1

        Yeah, good question. We already had Sendgrid setup and working well for transactional mails (we are going to use Intercom for marketing mails).

        Looking at SES seemed as though we had to hit various review targets in terms of spam complaints (or something?) to send at scale.

        I've been email marketing for a few decades, and have had problems in the past where (invalid) spam complaints threatened to bring down our whole hosting: in particular, back in the day with Dreamhost, when a spam complaint came in, we had to marshal our entire resources to track down double opt-in, prepare a detailed responses, etc... or else we could lose hosting.

        SO... on first glance that seemed to be a possible issue with SES. So we just went w/ Sendgrid as it's working great sending 40k emails/month, and it insulates us from our hosting stack.

  2. 5

    PHP
    Random CSS framework that teaches me
    JQuery
    Javascript

    If it's on cdnjs... I will find a use for it and use it.

  3. 5

    Hosting: Digital Ocean

    DB: PostgreSQL

    Frontend: React

    Backend: Elixir/Phoenix

    Web/Mobile: React Native

    Even though I didn't have too much experience with Elixir, I chose it because of its ultra speed and ability to handle so many connections even on an inexpensive $5 or $10 droplet!

    1. 2

      Even though I didn't have too much experience with Elixir, I chose it because of its ultra speed and ability to handle so many connections even on an inexpensive $5 or $10 droplet!

      This is actually why I got into elixir in 2016. I was running rails on budget hardware and even small numbers of people on my chat app could overwhelm it.

      1. 2

        Yes! It doesn't hurt that it's easy and beautiful :D

  4. 4

    I run Python/Flask on Digital Ocean with MySQL database. If the backend is an API, then same but I'll host a Javascript front-end on Surge.sh.

    I like to keep things simple. If Digital Ocean isn't enough then I'll move the AWS.

  5. 4
    • Hosted with Heroku (PHP/Nodejs base, PostgreSQL and Redis add-ons). I did this because it's very fast to release.
    • AWS for S3/CloudFront/SQS. Again, this is fast.
    • Google Domains, because...that's where I bought it. This I think may have been a mistake because you can't CNAME the root domain on google, so https://witsi.co doesn't work. Very irritating.
    • Tech is PHP 7.1 Laravel Framework, and a Vuejs front end.
    • Plaid.com is the API I'm using to get bank information.
    1. 1

      To note, CNAMEs on the root (“apex”) of a domain are against spec, which is why Google Domains wouldn’t allow it.

      1. 1

        Yeah, I get that. It seems like this should be a common enough problem that there would be an easy solution for it.

    2. 1

      You can't CNAME the root, but can you issue a redirect from root to whatever subdomain you use? (www, etc)

      1. 1

        Yes, the redirect works, but not over https. So if you go to http://witsi.co, it works fine. https://witsi.co does not redirect.

        1. 1

          I have the same problem. Have to set up all links to use www. So, https://gifts-done.com does not work, but https://www.gifts-done.com does work. I am positive that this will be a problem when I have people typing in urls (hopefully, someday), but I'm not sure how to fix it.

          1. 1

            The one thing we could do is set up a tiny host on a static IP, and have an htaccess rule or something similar to only do a redirect.

            Someone could actually make a reasonable amount of money automating that process for people like me that don't want to deal with this.

            1. 1

              Interesting. I like the idea of doing what you said, but I don't know how...so that someone could make money automating that process for people like me that don't know how to deal with this. :0

  6. 3

    Site: beta.fitloop.co

    • Meteor
    • React Views & Containers
    • Hosted on Meteor Galaxy

    I find this to be a great set-up for quick deploy & iteration. Dev speed & happiness is incredible.

  7. 3

    Since I'm not building a web service, my "tech stack" is rather different from most of you guys:

    • Objective-C on Linux.
    • pthreads a POSIX C library for threads
    • libcoro a C library implementing coroutines (cooperative multitasking) in a portable fashion.
    • libuuid a DCE compatible Universally Unique Identifier library.
    • linenoise a small self-contained alternative to readline and libedit.
    • uthash a hash table for C structures library.
    • OpenSSL a C library that implement the SSL and TLS protocols
    1. 1

      Hey.

      Thanks for the reply. If you don't mind sharing, what are you building? Is it targeted to biz/consumer/personal?

      1. 1

        Heya!

        Sure, it's called fizz (http://f1zz.org).

        Maybe for business at some point, although I'm afraid it may be too "academic" to successfully transition to be a tool for business

  8. 3

    Django/postgresql (Heroku) + React (AWS)/React Native

  9. 2

    Here's the tech stack for my weather extension (over 165k users).

    • Laravel
    • VueJs
    • Mysql
    • Hosted on DigitalOcean (2 servers with load balancer)
    • Stripe/Paypal for payments
    • Cloudflare
    • Laravel Forge(server management)

    I wrote a post going into more detail.

    1. 1

      Hi Tim!

      Much thanks for the reply... Really didn't expect this many to take the time to share... Cool Group we have here.

      I read your post and your thoughts regarding DigitalOcean/DO and their new droplet prices/offerings.

      You made the statement that it was/is "easy" to resize between droplets but that you have to shut the droplet down.

      I pulled my hair out (i'm bald!) and discussed with DO tech-support to figure out how to go from an older $10/mth to a new $5/mth which has a different disk size.. There was no way to accomplish the resize going down in disk size.. If you discovered a painless way to do this ,let the group know!!

      I resolved the issue.. by more or less figuring out (roughly) what was the "same" between systems.. and what was "different" and cobbling an rsync/yum/ as well as a "rebuild/reprovisioning" process to rebuild extraneous stuff and after a bit of trial/error, I now have a system to move between boxen as I need.

      thanks!

      1. 1

        Glad you found the information useful. I guess I should clarify and say it is easy to resize up but not down if the disk size changes. Sounds like you found a good solution for solving the issue.

  10. 2

    Digital Ocean
    Vanilla PHP
    Cloudflare
    MySQL
    JavaScript/jQuery

    Am i bad?

    1. 2

      No, unless there's something else you're not telling us about...

  11. 2

    Frontend: React
    Mobile: React Native
    Backend: Python/Flask
    Hosting: Heroku
    DB: Postgresql
    Payment: Stripe

    I enjoy the stack I use, however most important thing is to use what you know to get the job done!

  12. 2

    In my new (under development) project related to cryptocurrencies:

    • Server/backend: Node.js, with sails.js as main framework. ORM: waterline.
    • DB: Mongodb.
    • Frontend: bootstrap 4, Vue.js! Socket.io for real-time.
    • Cloud/hosting: planning to host on https://openode.io/ plus a cheap VPS (OVH) for the database.

    Second project (https://openode.io):

    • Server: Node.js using Express.js.
    • DB: Mysql for the relational part, Mongodb for deep history, redis.
    • Frontend: bootstrap, Vue.js.
  13. 2

    • PHP / Laravel
    • MySQL
    • Javascript & jquery
    • Forge for deployment
    • Vultr for VPS

  14. 2

    I'm old!

    I've looked at changing to something new and sexy many times. Haven't done it. Meets my needs and enough improvements over time to keep me (and my customers) happy.

    Backend: PHP MVC Framework
    Database: MySQL
    Frontend: Bootstrap (investigating adding Vue.js to this)

    1. 2

      I LOVE Vue! Of all the fancy JS frameworks, it has been the easiest for me to grok. For people transitioning from jQuery, you can focus on learning Vue syntax without the burden of also learning Webpack, etc. - https://www.smashingmagazine.com/2018/02/jquery-vue-javascript/

    2. 2

      Bootstrap (investigating adding Vue.js to this)

      I’m using this exact combination in my latest project, and aside from the usual bootstrap warts everyone knows and loves, it’s great! Be sure to checkout this plugin: https://bootstrap-vue.js.org.

      1. 1

        Saw that. Actually decided to use elements already created by another IH developer - https://www.creative-tim.com/product/vue-light-bootstrap-dashboard-pro

  15. 2

    Frontend:Bootstrap
    Backend: asp.net (IIS)
    Database: Firebird
    Selfhosting on VPS costs me 25$/month SSL incl.

  16. 2

    at shippingreport.com I used:

    frontend: hyperdom - like react but much simpler https://github.com/featurist/hyperdom

    server: nodejs/express

    database: redis

    testing: browser-monkey https://github.com/featurist/browser-monkey

    hosting: heroku

  17. 2

    At PLUGG.CO I'm using:

    Hosting: Google
    DBs: Cassandra, Redis, ElasticSearch,
    Frontend: Angular (but I'm migrating to vue.js)
    Backend: Node, JAVA

    1. 3

      Why are you migrating to VueJS? I like Vue a lot.

      1. 2

        I want to keep my code as independent from the FE framework as possible. At the beginning I chose Angular because I hate React JSX. VueJS can do everything that I'm using Angular for without messing my code with 'patches' to do things the 'angular way' (so to speak)

        1. 2

          Cool. I like Vue becuase it's component based but much simpler than React or Angular. I can get a lot done really quickly. I wish there was more support out there.

  18. 2

    Backend: Rails
    Front-End: Bootstrap and/or React
    Hosting: Heroku
    Mobile: React Native

  19. 2

    At DEVY.io we are using just a simple static site on a VPS.
    We use Cloudflare as a CDN and Paywhirl for payments (which they also use Stripe).

    1. 1

      How business? What's your MRR?

      1. 1

        We're doing good! Started about 2 weeks ago and we're at 700$ MRR, still not enough to be profitable but we're getting there! We started with a price that we quickly found was not sustainable so we had to quickly adapt. We're still honoring that price for the first costumers, but it's a challenge :)

        1. 1

          Thank you for the swift response. If I may ask again, do you choose the stack you work with or just any language your client subscribes to?

          1. 1

            We have our strengths, but we are always open to hear what the costumer needs to see if we are able to work on it or not.

            Since the company is so new we are kinda limited on the amount of tech we can work on right now, but the goal is to expand and work with what might be needed :)

            1. 1

              Thanks again. I am interested in this space but for devops. How do I reach you to explain more?

              1. 1

                Devops is also something we would like to include soon :) you can contact me trough the site

    2. 1

      This comment was deleted 7 years ago

      1. 1

        Hello! You can contact us anytime by clicking on the blue circle in the bottom right corner :)

  20. 1

    I always use WordPress for projects that are built around presenting content (niche site builders, KBs, directories, listings, etc.). I try to focus on apps in this paradigm. Once you develop strong proficiency with a certain stack you can be quite prolific.

  21. 1

    I'm pretty biased, since one of my indie businesses is a Backpack for Laravel (an admin panel builder), but I'm very happy with my current stack, so I thought I'd share:

    • Ubuntu with Nginx, PHP 7.2, Laravel, MySQL / PostgreSQL
    • Digital Ocean for hosting
    • CloudFlare for DNS, security & caching
    • Let's Encrypt for SSL
    • Laravel Forge for server management & auto-deployment from BitBucket

    Services I heavily recommend:

    • SparkPost for transactional emails (free tier: 12.000 emails/month)
    • Sendy for newsletters (saves me $300/m)
  22. 1

    Great question. Really enjoyed reading (most of ) the responses here! 😎 👍

    1. 1

      Glad you like!

      Are you getting anything out of the question/replies? Other than a time sync!!

      I'm thinking that it would be better if there was some "writeup" around the stack in terms of why you went with X over Y or how Z was used in the creation of the app or process from the user/dev.

      This would give more context around what's been created/presented in the post.

      I'm also thinking.. and this would be a stretch!!! That it might be cool to ask people to make their projects "open" for others to look at. To be able to see "exactly" how apps/sites are created, from the dev --> to the site being live on the net...

      give the group feedback!!

  23. 1

    Front-End (Web): React (or Vue) with Typescript
    Native Mobile: React Native
    Back-End: Golang or Elixir/Phoenix or Node/Koa/Knex/Typescript
    DB: Postgres
    Hosting: Digital Ocean / Google Cloud / AWS
    Email: Mailgun
    Monitoring: New Relic
    Payment: Stripe
    File storage: S3
    Others: Docker, nginx, lets encrypt

  24. 1

    I run my food site https://bestfoodnearme.com on a cheap digitalocean machines

    Nginx terminates the https
    Lets Encrypt certificate
    Server is written in Go
    Database is Postgresql
    Mailgun for transactional email
    JQuery on the frontend
    Custom CSS from bourbon.io SCSS framework
    Makefile for compiling everything

  25. 1
    • Cloud: Heroku
    • DB: Heroku Postgres
    • Frontend: React + Material UI
    • Backend: Go or Python
    • Email: Sendgrid
    • Payment: Stripe
  26. 1
    • GoLang https://golang.org/ - creates statically linked binaries for a lovely download-and-run setup experience for users. (Currently working on desktop /server app.) Also nice and low-level / fast / lightweight for server installs and compute cost if/when I add a hosted offering.
    • GoLand IDE from jetbrains https://www.jetbrains.com/go/ - everything they do is pure gold. Long time ReSharper user.
    • Piles of bash scripts for automating build / deploy.
    • bitbucket for free private git repos - https://bitbucket.org/
    • github pages for the landing page - https://github.com/timabell/sdv-website / https://pages.github.com/
    • docker for deploying my demo site - https://github.com/timabell/sdv-docker and also for if anyone else wants to use it.
    • drip for the mailing list and follow up emails as people sign up and start to engage with the product - https://www.drip.com/ - also has neat analytics feature (bonus!)
    • google analytics - not started using it seriously yet
    • Sql Server - a market I know best, and hopefully where my first users will come from.
    • Sqlite - lightweight db useful for quick regression tests https://sqlite.org/ - also proves I have the right abstractions in my code to support multiple database systems
    • https://logojoy.com/ generated me a logo I'm happy with for a really cheap price compared to a human being
    • https://www.bytemark.co.uk/ - Virtual Private Server hosting for a fixed monthly fee - no risk of massive cloud costs if I get slashdotted. Or Indiehacker'd. Runs my demo site on a vanilla Ubuntu image + docker-compose.

    The product: http://schemaexplorer.io/

  27. 1
    • Frontend: create-react-app
    • Host: Netlify
    • Markdown content: Contentful
    • Backend: None (yet) :)
  28. 1

    I'm a 'no code' guy, so my answer is not very technical. My SaaS app is fully built on Bubble.is (they use AWS and its built on Javascript and some other frameworks). I also do productized websites, using carrd.co and webflow.com. Webflow because my clients love the on page Editor allowing them to make small changes without using a confusing CMS (my clients are very non-tech savvy)

  29. 1

    At propertyments.com I use:

    Cloud: Azure/cloudflare

    DB: Azure Sql Server

    Server/Frontend language: .NET core 2 backend, js/jquery/boostrap/pile of libraries for the front end

    3rd Party Tools -WP/Dashboard: email notifications: postmark app, real-time: SignalR, API: Swagger

    I'm starting to look seriously at vue.js but haven't run into a real need to make the jump just yet. I'd like to keep up to date with the latest and greatest but being a solo owner means I need to prioritize my time between development and business building.

  30. 1

    Cloud: AWS protected by Cloudflare

    Front to back:
    Bootstrap
    d3.js
    Ruby on Rails
    Heavy use of Action Cable Websockets
    Elastic Beanstalk
    Mysql
    Redis (elasticache)
    Amazon SES

    Payment system : Cryptocoin Payble

    I'm an extremely small operation and what I like about this stack of tools is my project is highly portable so I can work on any machine I prefer, and deploying new code is the easiest thing ever:
    'eb deploy'

  31. 1

    Marketing site: Webflow, $16/mo

    --

    Web-app:
    Hosting: Digital Ocean, $5/mo instance + Cloudfront for caching
    DB: SQLite
    Server: Nginx + Python3 + Tornado
    Frontend: Vuejs

  32. 1

    Backend: PHP / Laravel 5.5
    Frontend: Vue.js
    DB: MySQL
    Cache driver: Redis
    Hosting: DigitalOcean

  33. 1

    I've had years of experience on couple of technologies.
    There has been an astounding amount of improvement over the years. Improvements on old technology stack tends to carry the legacy bad design. I feel that learning new technology stack that has learned a lesson on the older ones is the path to building innovative solutions.

    Platform: Linux
    DB: PostgreSQL
    PL: rust, elm

    I've built cool opensource apps that some people say it seemed like magic.
    Now, I'm close to launching this project as SaaS.
    https://github.com/ivanceras/diwata

    Also, I'm looking for a co-founder who can do sales, marketing, e-commerce, landing page.

    Please understand the project in the link above, and only if you see the benefit/vision of this project, you can send me your resume to my email on this account. I will send mine back too.

  34. 1

    I'm using a $5/month droplet on Digital Ocean. Based on load tests, it should be enough to scale to 100k - 1M visitors per day, depending on how spiky traffic is.

    The server side language is Elixir, which I'm also using for deployment, scheduling, and an in-memory datastore. The DB is Postgres. I'm using also using Hotjar and Keen.io (for analytics), Amazon Simple Email Service, Stripe and Growsurf.

  35. 1

    I agree that the stack is not that important; still having something that you feel comfortable developing in for me helps tremendously with productivity.

    For most projects I use: Python/Django/Postgres on the backend, Backbone + CoffeeScript frontend, React Native for apps. Hosted on both DO and Hetzner Cloud, using Ansible for config management.

  36. 1

    I mostly agree with @webapppro. Work with the stack you know, but also try out new things every now and then. By trying new things you expand your horizon and possibly learn things that make new products possible.

    I still think it's fun to share the stack, and while it's not what determines your success, it's easier to nail something if you use a hammer instead of a screwdriver.

    Hosting: AWS EC2, S3, CloudFront
    DB: PostgreSQL (managed by AWS)
    Server: REST API in Go
    Frontend: Thin react client for web-apps

  37. 1

    This comment was deleted 9 years ago

  38. 1

    This comment was deleted 5 years ago

  39. 2

    This comment was deleted 7 years ago

    1. 2

      hello from concatenative circle

  40. 2

    This comment was deleted 7 years ago

    1. 2

      Out of curiosity, given that you're already using Elixir on the back-end, what motivated you to use Node for microservices?

      Also what parts of your app use react vs elm? I've worked with both but never in the same app.

      1. 2

        This comment was deleted 7 years ago

        1. 2

          Interesting. Support is a great point. I'd say Elixir (and many other languages) have advantages over JS with due to ease of debugging and speed of development. I'm a bit jaded from my years of fullstack JS work, though.

          1. 1

            This comment was deleted 7 years ago

            1. 1

              Sure thing! I'd be interested in hearing about your project (here or via the email in my profile both work)

  41. 11

    This comment was deleted 7 years ago

    1. 9

      So that's 5 pages of your beliefs, but you didn't share what stack you're using!

      I get that you want more readers and more business, but could you participate in the the spirit of the thread?

    2. 2

      I quite like JSX. It seems quite a few people have forgiven the React team for making that decision.

      1. 0

        This comment was deleted 7 years ago

        1. 2

          JSX isn't actually required for using React, although I'm sure it'd be hard to find many React projects that don't use it. JSX is a little weird to get used to but I think it's worth it

          https://reactjs.org/docs/react-without-jsx.html

          If someone wanted to be a full-stack developer I'd probably recommend learning more about fundamental HTML, CSS, and JavaScript before React though

    3. 1

      Good points well made. Still fun to share though :-)

      I had a stab at doing an API/SPA until I realised how much extra work it would be and dropped back to server-side rendering with basic golang templates. If I get traction maybe I'll curse my past self, but at the moment I just need to get product-market fit to justify the effort.

    4. 3

      This comment was deleted 6 years ago