7
13 Comments

Best JavaScript stack for a realtime community platform?

Let's say I wanted to create a community (like IH), that was designed to unite, organize, and lead thousands of contributors to build the world's best software.

I'm a JavaScript developer. What's the best stack to do this? This is a rhetorical question, because I know it doesn't exist. I'd like to make it. Ironically, we need this platform in order to create this platform - the proverbial "chicken or the egg" problem.

Here's an overview. Brace yourself, it's a massive vision. I'm basically just combining all the best parts of the internet into one platform.

tl;dr: if you're crazy enough to believe this is possible, come join my Slack channel

I'm looking for something substantial, with a large community of developers (like WordPress) to sustain a healthy marketplace of plugins, themes, etc.

I'm looking for something with realtime chat/channels (like Slack), collaborative documents (like a Wiki or Google Docs) and version control (git).

I'm looking for something with a powerful content editor ("WYSIWYG") with a responsive column/layout editor, drag and drop, templating, CSS access, JavaScript events/behaviors, etc (like Photoshop * Webflow * git * JavaScript).

It would be nice to have Q&A functionality (like StackOverflow).

And threaded conversations (like Reddit). And project management (like Asana or JIRA).


Every piece of this puzzle already exists. You could think of it as the ultimate Content Management System. But, it's more than that. It's more like a Web OS.

Yes, this won't happen overnight. And it won't happen without the help of thousands of contributors. There are a few critical pieces of the web platform that are missing, before this will really "take off".

  • a monetized module marketplace (git * npm * plugins/themes * monetized/licensed)
  • a powerful plugin system (permission/access controls, hooks, configuration, etc)

These two pieces will allow the platform to scale from an empty index.html to a massive, distributed social network in a few clicks. And all of the modules available can be licensed for pennies per end user, making it nearly free, but allowing plugin developers to retire early from a few useful/popular plugins.

This part of the vision is one of the major limiting factors to our current system. Open Source software lacks the investment needed to start and grow, and closed-source software lacks the community needed to mature.

The Tech Giants make billions, and pay their engineers very little of it.

In order to pull this off, we need to rethink software development at every level. I know how to fix the shortcomings of Object Oriented programming. We need to fix the module/package system (npm & git). We need a robust automated testing system.

And most importantly, we need a system for accounting. When contributors make pull requests, we can give them credit. When the platform begins to make money, ownership is distributed based on this system.

This was tried by assembly.com (which shutdown). You can read about it here or watch their explainer video here.

  1. 5

    There's a reason an all-in-one solution doesn't exist. It's nearly impossible to build an all in one and do everything well. The surface area is so large that you can't keep innovating a project that large without a huge contributor ecosystem, and that brings its own problems.

    Just pick one thing and do it well.

  2. 3

    It already exists. It's called the world-wide-web.

  3. 3

    I don't know you or how many millions of cash you have lying around to fund this whole deal, but here's the list of features you described in just this one post:

    • Combine all the best parts of the internet into one platform.
    • Something substantial, with a large community of developers (like WordPress).
    • Sustain a healthy marketplace of plugins, themes, etc.
    • Realtime chat/channels (like Slack).
    • Collaborative documents (like a Wiki or Google Docs).
    • Version control (git).
    • A powerful content editor ("WYSIWYG") with a responsive column/layout editor, drag and drop, templating, CSS access, JavaScript events/behaviors, etc (like Photoshop * Webflow * git * JavaScript).
    • Q&A functionality (like StackOverflow).
    • Threaded conversations (like Reddit).
    • Project management (like Asana or JIRA).
    • A monetized module marketplace (git * npm * plugins/themes * monetized/licensed).
    • A powerful plugin system (permission/access controls, hooks, configuration, etc).
    • All of the modules available can be licensed for pennies per end user, making it nearly free.
    • A robust automated testing system.
    • A system for accounting.
    • You claim you will "fix the shortcomings of Object Oriented programming".
    • You claim you will "fix the module/package system" (npm & git).

    And in your whole post, you never talked about having validated a market, having paying clients or enough traction to reach critical mass of a social network, or your background/team/funding that would give this massive (and if you'd be a random stranger on the street, I would use the word "delusional") project even the tiniest chance to succeed.

    And it won't happen without the help of thousands of contributors

    My open source project has 345 contributors. You don't need thousands, you either need tens of thousands of open source contributors and several lifetimes of time (not happening) or so much $$$$$$$$$ that you would be so far up the food chain that IndieHackers.com wouldn't be on your radar.

    It's not looking good. If you don't have answers, stop now before you invest anything more than just words.

  4. 1

    You're describing a lot of solutions, features, and tech, but not really looking into the people-related challenges, which are almost always the biggest obstacles for any business. Who's going to use this? When and why? And how are you going to reach them?

    Questions like these are so important that they generally need to drive your entire business strategy, including what you spend your time developing and where you start.

    I'm a developer myself, and I've interviewed many hundreds of developer founders, and the most common pitfall for us is to over-focus on writing code and shipping features. We ignore marketing and growth and validation tasks, and in lieu of those we end up biting off way more development tasks than we can chew, which results in months/years spent coding things that nobody really wants to use. Fortunately, you can learn this lesson vicariously from all of our mistakes instead of having to learn it the hard way!

  5. 1

    Define how all components work together at a conceptual level and then thoughtfully design the way the components interface with each other. No coding needed until this is clear.

  6. -2

    Before anyone gives me the typical, "you have to pick somewhere to start" advice - I already know where to start. I've been working on an ultra-simple JavaScript framework.

    My next task is to build a git-powered .json file system, instead of a database. This is the best solution (surprisingly that I've never seen used), because you can version control and deploy your code AND data in one git command.

    Once I have version controlled data, then I can start working on stateful applications.

    1. 0

      Downvote without comment? Classy.

    2. 0

      Great attitude...

      1. 1

        Care to clarify? I don't see how I have a poor attitude. You might call it "delusional", if it weren't absolutely true (every piece of the puzzle currently exists and is a necessary part of the future).

        I think your comment is critical without clarity.

        1. 0

          'Before anyone gives me the typical, "you have to pick somewhere to start" advice' - this does not belong here. With your first post, you are asking for something in return - such a comment assumes and assumptions are a bad first impression.