Company building

Company building

Company building

The Superthread Tech Stack: Why We Chose Go, NoSQL, and AI-Powered Vectors

Superthread founder David shares the evolution of their tech stack, from early Redis experiments to a high-performance AWS architecture featuring Golang, DynamoDB, and Vector databases.

A futuristic, abstract visualization of a high-performance software architecture set against a dark purple and blue digital landscape. Central glowing cubes marked with "G" represent a modular Golang backend, connecting via neon orange data streams to a cluster of cylindrical databases and red nodes on the right, symbolizing a NoSQL and Redis data layer. On the left, floating translucent UI panels with a green "V" logo represent a Vue.js frontend. The entire system is surrounded by glowing blue neural network connections and lightning bolts descending from cloud nodes, illustrating edge computing and AI integration.

Jan 24, 2024

|

David Hasovic

From Prototype to High-Performance Architecture

When I started coding the first Superthread prototype, I had one obsession: speed. I wanted the platform to feel instantaneous. Over the years, our stack has evolved from a solo-coded prototype into a robust, AI-ready system.

Here is the honest look at the tools we use, the mistakes we made, and the 'NoSQL-first' philosophy that keeps us fast.

The Backend: Why Golang is Our Core

I chose Golang because I saw it being used for high-intensity, low-latency compute tasks. It is a beautiful, simple, and functional language.

One of my biggest recommendations for early-stage founders is to prioritize 100% unit and integration test coverage. In the early days, this allowed me to move incredibly fast; if I broke something, the tests caught it immediately. Today, all our microservices, handling everything from boards to task cards, are written in Go.

The Database Evolution: Moving to NoSQL

Our database journey was a learning process.

  • The Redis Experiment: Initially, I used Redis not just for caching, but as our primary NoSQL database. While it worked for a small scale, it became difficult for new team members to manage custom indexing.

  • The AWS Pivot: After trying a commercial version of Redis that proved flaky, we moved to Amazon DynamoDB.

We are a pure NoSQL shop. Relational databases rely on joins, which eventually slow down as you scale to millions of records. By forcing ourselves to use DynamoDB, we ensure that whether you have ten tasks or ten million, Superthread loads at the same speed. We use DynamoDB Streams connected to SNS and SQS for our queuing and event-driven architecture.

The Frontend: Vue.js over React

On the front end, we use Vue.js. Back when I was making this choice, I found Vuex (Vue's state management) much more intuitive than React's Redux. Vue feels like it was designed with a 'non-programmer' logic that is much cleaner and easier to maintain.

We use JavaScript and TypeScript interchangeably:

  • TypeScript is our standard for complex systems like our document editor.

  • JavaScript is used for other, more straightforward parts of the interface.

The AI & Infrastructure Layer

We are currently phasing out Elasticsearch in favor of a more AI-centric search strategy.

  • Vector Search: We use Amazon RDS with the PG Vector add-on. When you create a card in Superthread, we perform a lookup in this vector database to identify duplicates or categorize the issue (e.g., bug vs. feature) based on our own trained models.

  • Orchestration: While I used Kubernetes for past projects with millions of users, we now use Amazon EKS to orchestrate our services. It’s stable and does the job without unnecessary complexity.

  • Edge Computing: We use Cloudflare Workers (Node.js) for edge-heavy tasks like resizing images, proxying Unsplash, and running Yjs for real-time collaborative editing.

Final Thoughts

Our tech stack is now incredibly stable, and we’re leaning even harder into our vector database to power the next generation of AI features. If you’re building for speed, my advice is simple: Automate your testing, embrace NoSQL, and don't be afraid to pivot your infrastructure if it's holding your team back.

Experience the speed of a high-performance workspace.

Built with Golang and NoSQL for teams that can't afford to wait. Sign up for Superthread for free

Further Reading & Resources

Subscribe to our newsletter

Use fewer tools. Save what's important. Take action.

No credit card. You’ll be up and running in minutes.

Use fewer tools. Save what's important. Take action.

No credit card. You’ll be up and running in minutes.

Use fewer tools. Save what's important. Take action.

No credit card. You’ll be up and running in minutes.

By using this website you agree to our cookie policy