4
0 Comments

EndorseFlow Collaboration Tool: Tech stack explained

As a software engineer, and someone who likes to provide value to others in the field, I felt like I wanted to go through a great tech stack for my company and product, EndorseFlow.

Product Outline
EndorseFlow is a real-time collaboration tool for creative teams, allowing those to review, approve, and publish digital content within one application. Internal and external reviews are as easy as ever to gather and document within your team.

Everything technical...
EndorseFlow is a web application, that also extends to a native desktop application using Electron. The web application is written using React.

Why React? It's easy. React is a simple framework to get used to, and allows for reusable components to be used throughout the project. For a large project, I recommend React over Vue.js, having used Vue before. Using React also gives us the ability to reuse our state/store when using React Native for our mobile application.

  • We use both JavaScript and Typescript throughout our stack.

With a frontend, comes and backend.
Our RESTful API is using Node.js, the Express framework, paired together with MongoDB as our database, and Redis as our cache. We also dabble in Serverless for our video, image, and PDF thumbnail creation using AWS Lambda.

We chose MongoDB as our no-sql database for the reason that it is performant for the potential read/write workload, as well as the simplicity when interacting with the database to store and retrieve data.

Redis is used to allow for a clustered and horizontally scaled deployment. This ranges from simple API rate limiting, to frequently accessed user data for permission and role access checks. We also incorporate idempotency into our API, which uses Redis as our store.

We went real-time with Pusher, allowing us to simply incorporate WebSockets into our application without the added server cost, strain, and most importantly, time.

As for Node, and framework Express, we chose these for performance and developer simplicity.

That's it for now!
Although this post was longer than normal (sorry), I hope you got an insight into how a technology stacks for a large web application looks and goes together. Any questions just ask away!

Trending on Indie Hackers
How I grew a side project to 100k Unique Visitors in 7 days with 0 audience 49 comments Competing with Product Hunt: a month later 33 comments Why do you hate marketing? 29 comments My Top 20 Free Tools That I Use Everyday as an Indie Hacker 16 comments $15k revenues in <4 months as a solopreneur 14 comments Use Your Product 13 comments