Trello was originally developed by Fog Creek Software (founded by Joel Spolsky) in 2011 as an internal prototype project.
First unveiled at TechCrunch Disrupt in 2011, it gained popularity for its highly visual, real-time card-based board interface.
In 2014, it spun off as an independent company.
In 2017, Trello was acquired by Atlassian for $425 million, adding a lightweight, consumer-friendly project management tool to Atlassian’s enterprise catalog.
Over time, Trello introduced Butler (native automation) and Power-Ups (plugins) to transition the tool from a simple checklist board to an automated database platform.
Who:
Created by Joel Spolsky and the Fog Creek Software team. Owned and maintained by Atlassian.
Why:
Created to simplify task management by digitizing physical whiteboard Kanban sticky notes, making project tracking collaborative and intuitive for both technical and non-technical teams.
Introduction
Advantages
Extreme Visual Simplicity — The card-based drag-and-drop layout mimics physical task boards, requiring near-zero training for new team members.
Real-Time Updates — Changes made by members appear instantly on the board without manual page refreshes.
Natural Language Automation (Butler) — Automate tasks using simple, English-like rules instead of complex code.
Flexible Power-Ups — Extend boards with calendars, custom fields, slack channels, and Git integration cards.
Extensive Mobile Apps — Offline-capable mobile applications keep tasks synchronized on the go.
Disadvantages
Scalability Limits — Boards containing hundreds of cards quickly become cluttered and difficult to manage.
No Native Agile Charts — Lacks built-in agile reports (velocity, burndown charts) without installing third-party Power-Ups.
Weak Field Constraints — Hard to enforce strict workflow transition rules (e.g. preventing a card from moving to “Done” unless a link is attached).
Butler Natural Scripting — Think of Butler as an “If-This-Then-That” engine. You write commands as normal English sentences, and Trello parses them into active automation triggers.
Butler Automation
Natural Language Scripting Engine
Butler automates Trello boards using rules, buttons, and calendar triggers defined in plain English.
1. Rules Triggers:
Trigger: When a card is moved into list “Done”
Action: Mark the due date as complete, remove all members from the card, and post comment “Task finished!”
2. Card Buttons:
Button Name: Release to Prod
Action: Add the “Production” label, move the card to the top of list “Released”, and set due date to “now”
3. Calendar Rules:
Trigger: Every Friday at 5:00 PM
Action: Find all cards in list “To Do” with past due dates, assign them to @manager, and set label “Urgent”
Example Butler Configuration:
# Natural language rule defined in Butler editorwhen a checklist item is marked as complete in a cardif all checklist items are complete in the cardmove the card to list "In Review"and set due date in 3 days
Trello REST API
Querying Boards and Creating Cards
Developers can integrate with Trello using their API key and OAuth token credentials.
1. Create a New Card (cURL request):
curl --request POST \ --url 'https://api.trello.com/1/cards' \ --header 'Content-Type: application/json' \ --data '{ "key": "MY_TRELLO_DEVELOPER_KEY", "token": "MY_TRELLO_USER_TOKEN", "name": "Write API Documentation", "desc": "Detail all endpoints and query parameters.", "idList": "647382d19fba8271a82b9381", "keepFromSource": "all" }'
2. Fetch all Lists on a Board (cURL request):
curl --request GET \ --url 'https://api.trello.com/1/boards/BOARD_ID_VALUE/lists?key=MY_KEY&token=MY_TOKEN' \ --header 'Accept: application/json'
3. Create Webhook for Board updates (cURL payload):
Trello boards can easily clutter if there are no column limit controls.
Enforcing WIP Limits:
Install the “WIP Limits” Power-Up or set list-level card limits manually.
E.g., if list “In Development” has a limit of 3, the column background turns red if a 4th card is dragged in.
This forces the team to help resolve stuck tasks before taking on new ones.
Labeling Conventions
Avoid naming labels with colors only (e.g. “Red label”, “Blue label”). Always assign clear text labels to colors (e.g., Red = Blocker, Yellow = Needs Feedback, Green = Ready for Review).