BUILDING ROCKET.CHAT
Meteor Devshop
WHY?
Why not?
BOOM!
We've got noticed
Text
Our first week
And people liked it
REACTIVITY
IS
POWERFUL
LEARNED
THE HARD
WAY
keep records in memory to track what data each client have
More clients = More memory + More CPU
THE mergebox
NOt EVERYTHING needs mergebox
Prevent Merge Box
Starting an observer on server startup and send
messages to clients via stream instead use subscribe
and create one observe per client
BLAZE GOT SLOW
WHY?
rendering
Can be expensive
Re-rendering TOO MANY TIMES
>1sec
HIDDEN = armage-DOM
+1000
OFF-DOM = speed
50ms
GRANULARITY
Not always needed
Computations, COMPUTATIONS, COMPUTATIONS
<template name="message">
<li id="{{_id}}" class=" {{system}} {{t}} {{own}} {{isTemp}}"
data-username="{{u.username}}" data-date="{{date}}">
<span class="info">
<span class="time">{{time}}</span>
{{#if edited}}
<span class="edited">({{_ "edited"}})</span>
{{/if}}
{{#if private}}
<span class="private">{{_ "Only_you_can_see_this"}}</span>
{{/if}}
{{#if canEdit}}
<i class="icon-pencil edit-message"></i>
{{/if}}
{{#if canDelete}}
<i class="icon-trash-1 delete-message"></i>
{{/if}}
</span>
<div class="body" dir="auto">
{{{body}}}
</div>
</li>
</template>
{{#each message}}
{{> message}}
{{/each}}
7803
Less granularity, but that's ok!
<!-- With NRR -->
{{#each message}}
{{#nrr nrrargs 'message' .}}{{/nrr}}
{{/each}}
html = ''
Tracker.nonreactive ->
html = Blaze.toHTMLWithData content, data
return html
1581
So why Blaze?
Clear separation of template and logic
- Easy to understand
- Easy to maintain
- Easy to contribute
THE Community
is Awesome
Official Docker Repo
100% done by contributors
electron APP
Massive help from
community
Unread counter
Easy way to know how much of the conversation you have missed.
Mentions Marker
Easy way to find messages that you have been mentioned
Mobile apps
Hybrid available now! Community building Native.
AUDIO & VIDEO CALLS
Thanks WebRTC!
Hubot Integration
=
Also known as Rocket.Bot
Should we call it Rocket.Cat ?
DevOps
Extending Rocket.Chat into the world of automated DevOps:
- Issues
- Comments
- PRs
- Releases
- Deployments
Not only via messages, but with deep integrations and customized UI plugins
TRANSLATED into over 20 langugages
and counting...
Thanks https://lingohub.com/
community KEEPS GROWING
Out in the wild
WE ARE
ONTO
something
OF CHATS!
WordPress
- Open source - GPLv2
- You can host yourself
- PHP's popularity
- Easy to deploy (FTP)
- Easy to extend plugins
- Themes and whitelabel
- Hosting for everyone
ROCKET.CHAT
- Also Open source - MIT !
- Yes! Own you data!
- JavaScript massive popularity
- Docker Container (Official)
- Packages System
- Also themed and whitelabel!
- In the making
WE
WANT
YOU
MASSIVE THANKS TO
Aaron Ogle
Diego Sampaio
George Secrieru
Lee Faus
Marcelo Schmidt
Rafael Caferati
Raphael Guarilha
Reid Wakida
Rodrigo Nascimento
Sing Li
And many, many, many more.....
Welcome SPACETALK devs that are joining us today!
Good luck to Tim Brandin with http://SpaceDropCMS.org
AND THANK YOU
https://rocket.chat
more details at
Meteor Devshop
By Gabriel Engel
Meteor Devshop
- 4,309