Trello

Trello

5483 Followers
Trello is a collaboration tool that organizes your projects into boards. In one glance, Trello tells you what's being worked ... more
@trello
trello.com
new york, ny
Tools by Trello
This is a community-generated profile. To edit this page claim this profile

Decisions 7

benroeder

We use Mustache, a logic-less templating language, to represent our models as HTML. While ‘harnessing the full power of [INSERT YOUR FAVORITE LANGUAGE HERE] in your templates’ sounds like a good idea, it seems that in practice it requires a lot of developer discipline to maintain comprehensible code. We’ve been very happy with the ‘less is more’ approach of Mustache, which allows us to re-use template code without encouraging us to mingle it with our client logic and make a mess of things. Mustache

2 18.9K

benroeder

When the data request returns, Backbone.js gets busy. The idea with Backbone is that we render each Model that comes down from the server with a View, and then Backbone provides an easy way to:

1) Watch for DOM events within the HTML generated by the View and tie those to methods on the corresponding Model, which re-syncs with the server

2) Watch the model for changes, and re-render the model’s HTML block to reflect them

Neat! Using that general approach, we get a fairly regular, comprehensible, and maintainable client. We custom-built a client-side Model cache to handle updates and simplify client-side Model reuse. Backbone.js

1 69.9K

benroeder

Where we have browser support (recent Chrome, Firefox, and Safari), we make a WebSocket connection so that the server can push changes made by other people down to browsers listening on the appropriate channels. We use a modified version* of the Socket.io client and server libraries that allows us to keep many thousands of open WebSockets on each of our servers at very little cost in terms of CPU or memory usage. So when anything happens to a board you’re watching, that action is published to our server processes and propagated to your watching browser with very minimal latency, usually well under a second. Socket.IO

1 38.8K

benroeder

We use HAProxy to load balance between our webservers. It balances TCP between the machines round robin and leaves everything else to Node.js, leaving the connections open with a reasonably long time to live to support WebSockets and re-use of a TCP connection for AJAX polling. HAProxy

1 15.9K

Followers 5483

Naofal Hakim
Ahmed Rasool
John Anton Durr
Paul Liu
Felicity Winter
Anish Awal
Ashfaq H Ahmed
Firdaus Helmy
Odin Lee
Иван Палагеча
Jeffrey Holmes
Gabriel Barreto
Christian Kjeldsen
nando tomio
Vinícius Sant'Anna
Chris Beck
abhilash-kaithav
Aine Fitzgerald Coleman
Руслан Драгомерецький
Patrick Zhao
Yeazullah Aziz
Alexandre Gbaguidi
amandarangel
Tushar Tyagi
Sergio Cobos Ruiz
Ben Baert
Arthur Medrado Celedonio