Code Monkey home page Code Monkey logo

rc4community's Introduction

Rocket.Chat for Communities

build and grow massive online communities with rocket.chat

build and grow massive online communities with rocket.chat

๐Ÿš€ Features ๐Ÿš€

  • every part of the system scalable to handle from one to over a million online community members
  • engage your community at Rocket.Chat, Github, Discourse, Discord - wherever they may be
  • innovative reactJS components enhanced with fullstack behaviors
  • choice of Identity Management - popular SaaS (auth0, firebase) and open source (gluu, keycloak OpenID Connect)
  • full virtual conference handling
  • modern profile and superprofile factoring
  • supports flauna for scaled persistence
  • fine-grained full-stack optimization control - static, server side generation, per-request
  • designed for world-scale computing at the edge from day one
  • JAMStack and beyond, "no compromises" design
  • supports NextJS and Vercel pay-as-you-grow scaled deployments
  • easy assembly of reusable components for flexible adaptive systems
  • ultra-light-weight and re-imagined UX for next generation community builder / developer experience

๐Ÿš€ Community Builder quick start ๐Ÿš€

Customize - Deploy - Manage

๐Ÿ’ป Work from any browser or Chromebook

Paste the following into your browser:

gitpod.io/#https://github.com/RocketChat/RC4Community

Start designing and customizing your community management system!

๐Ÿš€ Developer quick start ๐Ÿš€

Development - Build - Production

๐Ÿ’ป Design and Development Time

During development, our data provider is a headless CMS, strapi.

Note that it is used only during development and build time, not during production.

Pre-requisites:

volta Nodejs versioning is managed by volta. You can install it by running curl https://get.volta.sh | bash in your terminal. This assures that appropriate versions of nodeJS and npm are used and ensures compatibility for all distributed development teams.

docker Your system should have docker available for superprofile we use a dockerized local flauna instance.

git clone https://github.com/rocketchat/RC4Community
cd RC4Community
sh startdevenv.sh

The application is written on nextjs and deployable on all nextjs compatible CDN + microservices and scaled deployment platforms.

Using strapi directly - you can now have designers and devs modify the portal content directly and independently from the dev and devOps folks working on the app. While developers can now enjoy the hot refresh and rapid iterations of the nextjs dev environment.

๐Ÿ›  Application build time

This app is deployable on all nextjs compatible CDN + microservices and scaled deployment platforms.

To build for deployment, first make sure cms (strapi) is up and running, then:

cd app
NEXT_PUBLIC_STRAPI_API_URL=http://localhost:<your strapi port>   npm run build

Upon successful build, the cms (strapi) is no longer needed for deployemnt. For example, you may want to deploy to vercel via a git push.

For a workable but simple minded, non-scalable, never to be used in production deployment:

cd app
NEXT_PUBLIC_STRAPI_API_URL=http://localhost:<your strapi port>   npm run prod

Again, note that cms/strapi is not required in production and should not be started.

๐Ÿ—„ Deployment time (production deployment)

Production should be deployed as a statically generated website (with associated microservices and/or serverless execution support).

Make sure you have built the bundle (with the cms running):

cd app
npm i
NEXT_PUBLIC_STRAPI_API_URL=http://localhost:1337  npm run build

Once you have finshed the build, the optimized files are ready in the out folder. You will no no longer need the CMS running and can stop strapi. This is key, deployment does not depend on the cms, in fact the same tgz can be immediately deployed to 1000s of smart edge nginx PoP as in modern CDNs.

Take a look at deploy/deploy.sh to see how to zip up the out content into a site.tgz file and transfer to your web server (such as nginx in this example) for deployment.

โœจ About the repository โœจ

Since 2015, Rocket.Chat has been used globally by groups and organizations to create and build online communities of all shapes and sizes. Today, with millions of end users and hundreds of thousands of deployed servers, Rocket.Chat has uniquely become a networked community of community builders - a community of communities.

With its upcoming decentralized federation refactor, Rocket.Chat stands to become the next level Internet fabric that will loosely unite all on-line communities in a decentralized yet consistent manner.

This project is an extension to Rocket.Chat that aims to satisfy the immediate demands of today's community builders. Those who are intentionally building massive on-line communities (membership into the millions) centered around Rocket.Chat's core functionalities (sharing of information, collaboration, video and audio meet-ups, virtual conferences, and so on).

Unlike the team chat heritage of Rocket.Chat, this area is a trending but nascent field where major innovations are yet to be imagined. Participants in both open source and closed source space are diligently working on scalability of their platforms and systems. Rocket.Chat for Communities uniquely features an already proven scalable collaboration engine right from day number one.

If you are involved in some ways in the creation, building, and growth of massive communities online - we invite you to participate in this project; help us steer its direction and ensure its long term success.

rc4community's People

Contributors

ronlek avatar sing-li avatar debdutdeb avatar dnouv avatar sidmohanty11 avatar samad-yar-khan avatar irffanasiff avatar dhruvjain99 avatar abhinavkrin avatar palanikannan1437 avatar dudanogueira avatar nishant23122000 avatar abusayid693 avatar

Stargazers

Daniele Simas  avatar Russโšก avatar Gaspacho25 avatar Pedraza A. Henry avatar

Watchers

Pedraza A. Henry avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.