Opinionated Starting Tech Stack + Providers + Short Important Rules List
The total cost of the below proposals, combined is around $20–$30 per months. How can this be ? well AWS, GCP have free tires that try to vendor lock you. Why not profit from them?
Buy Domain From: https://affiliate.namecheap.com/?affId=64507 (this is my affiliate link that will earn me 15% commission on your first domain, while it won’t cost you anything more)
I’ve been using namecheap.com since… forever, never had any problems with them and they offer free privacy protection nowadays, a service that costs with others
DNS: Cloudflare (also some ddos protection)
Infrastructure on: Google Cloud Platform / AWS / Digital Ocean (https://m.do.co/c/ac334ed4bb69 $100 free credit for 2 months, $25 for me)
Source Control: Github (it also has Github Actions that will be used for CI/CD)
Logging: Sentry.io (for errors) / Stackdriver (cloud functions) / Loki (blockchain & others)
Authentication: Google’s Firebase Auth (alternative Auth0.com)
Publisher Subscriber: Google’s PubSub (pub/sub messaging provides instant event notifications for distributed applications, especially those that are decoupled into smaller, independent building blocks)
Monitoring: Grafana/Prometheus (the standard for monitoring nowadays)
VMs: Digital Ocean, Compute Engine, EC2 (in the rare circumstance you need it). Contabo for Blockchain related
Serverless wherever possible: AWS Lambda, Cloud Functions
CI/CD: Github Actions
Communication API: Twilio (messages, voice, video etc)
File Hosting: Google Bucket, AWS S3
Static Web Hosting: Google Bucket, AWS S3
Database: AWS MySQL, Cloud SQL . (If MongoDB then MongoDB Atlas)
Database (analytics): BigTable
Analytics: Firebase / Data Studio
Notifications: Firebase Cloud Messaging
Transactional Emails: Sendgrid or AWS SES
iOS / Android Apps: Flutter, React Native
Frontend: React.js or Nuxt.js
Prediction & Recommendations: Google Recommendations AI
API Documentation: Published POSTMAN collection with proper explanation each endpoint what it does
Rules
Goal is to have software reuse as much as possible
Microservices using the rule: each micro-service must not take more than 2 weeks to be completely re-written by someone else, in another language
Each service should have it’s own repo with a very well written README.md file that also contains: name of the maintainer, the link to the published postman collection (if it’s a http API), overview of what is there, diagrams, example configuration files
Each service should have the GithubAction flow done with build -> test -> deploy\
You should be familiar with some design patterns and the antipatterns: https://sourcemaking.com/design_patterns
API Response Codes are the correct ones and API responses are limited to the minimum necessary.
No over-provisioning. If your service is consuming 200mb RAM there’s no point to get a 2 GB RAM Virtual Machine.
example good: just status code 201 (created)
example bad: status 200 // it should be 201 + { “status”:”success”,”data”:{“record”: “created”}}, “isSuccess”: true, “error”: false, “message:”etc etc etc}
Error Response code should be
correct status code: ex: 403 Forbidden + “{“error_code”:”FORBIDDEN_ACTION_X”,”message:”: “user doesn’t have privileges to make action x”}
Each file should not have more than 600 lines
A scrupulous management of dependencies. Use well known libraries, as little as possible
The code is commented well, the git commit messages are relevant
There is no dead code and commented code should have a comment why it’s commented
End to end integration tests are required (ex: Jest Puppeteer)
TO BE CONTINUED ….