Superthread is an insanely fast project management software. For this reason I had to be careful when choosing our tech stack.
When I started building the Superthread prototype, I decided to build the backend in Go (golang) even though I had never programmed in Go before.
The reason: I met some folk doing some low latency stuff who were passionate about Go and who persuaded me to try it.
To learn and code faster, I decided to write 100% unit and integration tests. This worked well because it allowed me to speculate without worrying that the other parts of the system would break. The plan worked and we continue with Go to this day.
On the front end side, I chose VueJS. Having done react previously, I realised that I preferred to work with Vue and especially I preferred VueX to Redux. In summary, I felt that Evan You’s approach was more reasonable.
On the database side, I decided to go with Redis because I used it previously as a primary DB on a huge system where it performed well. However, this approach was not scalable because it relied on developers adding records to sorted sets manually. We then tried a commercial version of Redis which had the required indexing functionality but it turned out to be flakey. We then decided to switch to DynamoDB (with streams) as part of our move from GC to AWS. This is supported by SQS and SNS.
When it comes to orchestration, we went from Kubernetes to ECS mainly because the leads decided to move to AWS. I used to be all in on k8s but now I am pretty agnostic.
As we stand we are pretty happy with our stack.
Since this is a pretty high-level overview, I go into a bit more depth in my latest YouTube video and at some point we will go deeper since we are doing a lot of stuff with AI and and testing frameworks.
Superthread is an all-in-one project management and wiki app for small teams. It has projects, tasks, and docs integrated in one unified tool. Designed for cross-functional companies where engineers, product, design, marketing, and operations can work together.