DEV Community

Seif Ahmed
Seif Ahmed

Posted on

Why I built Vlox with Node.js, Cash, and MongoDB

Hey guys! 👋🏻

I've been sharing a lot lately about my social media app, Vlox, but I haven't explained why I chose to create Vlox in Node.js and why I used Cash instead of a heavy modern framework like React. Today I'm going to tell you why.

Current tech stack

The core of Vlox is straightforward:

  • Backend: Node.js and Express (for its asynchronous, non-blocking architecture)
  • Frontend: Cash (a tiny, lightweight jQuery alternative)
  • Database: MongoDB with Mongoose (because I wanted to use schemas as blueprints for the data structure)

Why Cash over React or Vue?

Most devs immediately reach for React, Vue or other modern frameworks when starting a social app. But I chose Cash for two major reasons:

  • To prove that you don't need traditional tools to build something clean, functional, and secure.
  • And to keep my app lightweight. Frameworks like React bring a lot of weight and bloat with them.

Since I'm not planning to make Vlox a massive platform like Facebook, I don't need to worry about complex scaling issues. Keeping the scope focused allows me to prioritize simplicity over enterprise-level architecture. Perfecto 👌🏻

Why MongoDB instead of SQL?

Choosing MongoDB over a relational SQL database came down to how the app actually works.

First, Vlox doesn't need database JOINs. For example, I don't need complex queries to find "friends of friends" because Vlox doesn't have a friends feature; it's a content and community network like DEV. Even when fetching post authors, I rely on Mongoose references and field population. This works perfectly for mid-sized apps, though SQL is a better fit for large relational data. In the end, large social media apps usually rely on a hybrid approach:

  • SQL for user profiles, authentication, core relational data, and transactional records.
  • And NoSQL (like MongoDB, Redis, etc...) for caching, real-time notifications, session tokens, and high-speed feed lookups.

Second, the entire backend runs on Node.js. Because MongoDB uses a JSON-like format, it works smoothly out of the box with JavaScript-heavy stacks.


I would really love to hear what you think about this approach. Drop a comment below if you have any questions about using Cash or building without the usual heavy frameworks!

Thanks for reading! 🌟

Top comments (0)