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!
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:
Non-AWS things we use:
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.
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?
Not at all. AWS is very cheap all things considered.
I'm curious - have you done the calculations, i.e. how much are you saving?
Saving in regards to what? From my perspective, if I can use AWS vs anything else, I save money.
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.
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").
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!
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).
This comment was deleted 23 days ago
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.
PHP
Random CSS framework that teaches me
JQuery
Javascript
If it's on cdnjs... I will find a use for it and use it.
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!
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.
Yes! It doesn't hurt that it's easy and beautiful :D
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.
To note, CNAMEs on the root (“apex”) of a domain are against spec, which is why Google Domains wouldn’t allow it.
Yeah, I get that. It seems like this should be a common enough problem that there would be an easy solution for it.
You can't CNAME the root, but can you issue a redirect from root to whatever subdomain you use? (www, etc)
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.
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.
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.
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
Site: beta.fitloop.co
I find this to be a great set-up for quick deploy & iteration. Dev speed & happiness is incredible.
Since I'm not building a web service, my "tech stack" is rather different from most of you guys:
Hey.
Thanks for the reply. If you don't mind sharing, what are you building? Is it targeted to biz/consumer/personal?
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
Django/postgresql (Heroku) + React (AWS)/React Native
Here's the tech stack for my weather extension (over 165k users).
I wrote a post going into more detail.
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!
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.
Digital Ocean
Vanilla PHP
Cloudflare
MySQL
JavaScript/jQuery
Am i bad?
No, unless there's something else you're not telling us about...
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!
In my new (under development) project related to cryptocurrencies:
Second project (https://openode.io):
• PHP / Laravel
• MySQL
• Javascript & jquery
• Forge for deployment
• Vultr for VPS
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)
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/
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.
Saw that. Actually decided to use elements already created by another IH developer - https://www.creative-tim.com/product/vue-light-bootstrap-dashboard-pro
Frontend:Bootstrap
Backend: asp.net (IIS)
Database: Firebird
Selfhosting on VPS costs me 25$/month SSL incl.
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
At PLUGG.CO I'm using:
Hosting: Google
DBs: Cassandra, Redis, ElasticSearch,
Frontend: Angular (but I'm migrating to vue.js)
Backend: Node, JAVA
Why are you migrating to VueJS? I like Vue a lot.
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)
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.
Backend: Rails
Front-End: Bootstrap and/or React
Hosting: Heroku
Mobile: React Native
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).
How business? What's your MRR?
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 :)
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?
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 :)
Thanks again. I am interested in this space but for devops. How do I reach you to explain more?
Devops is also something we would like to include soon :) you can contact me trough the site
This comment was deleted 7 years ago
Hello! You can contact us anytime by clicking on the blue circle in the bottom right corner :)
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.
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:
Services I heavily recommend:
Great question. Really enjoyed reading (most of ) the responses here! 😎 👍
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!!
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
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
The product: http://schemaexplorer.io/
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)
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.
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'
Marketing site: Webflow, $16/mo
--
Web-app:
Hosting: Digital Ocean, $5/mo instance + Cloudfront for caching
DB: SQLite
Server: Nginx + Python3 + Tornado
Frontend: Vuejs
Backend: PHP / Laravel 5.5
Frontend: Vue.js
DB: MySQL
Cache driver: Redis
Hosting: DigitalOcean
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.
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.
https://stackshare.io/evanzamir/catapolt/details#
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.
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
This comment was deleted 9 years ago
This comment was deleted 5 years ago
This comment was deleted 7 years ago
hello from concatenative circle
This comment was deleted 7 years ago
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.
This comment was deleted 7 years ago
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.
This comment was deleted 7 years ago
Sure thing! I'd be interested in hearing about your project (here or via the email in my profile both work)
This comment was deleted 7 years ago
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?
I quite like JSX. It seems quite a few people have forgiven the React team for making that decision.
This comment was deleted 7 years ago
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
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.
This comment was deleted 6 years ago