JSON to Printable HTML Converter
Convert Trello board JSON exports into clean, printable HTML. View lists, cards, labels, descriptions, comments, checklists, and votes - all processed client-side.
Drop your Trello JSON file here, or click to browse
Or paste JSON directly below
About
Trello exports board data as a single JSON file containing lists, cards, labels, descriptions, comments, checklists, and vote counts. Reviewing this data in raw JSON is impractical - nested arrays, ID cross-references, and action logs make manual inspection error-prone. This tool parses the exported board.json structure, resolves all internal references (idList, idCard, idMember), and renders the board as a structured, human-readable HTML document optimized for printing. All processing occurs entirely in the browser. No data is transmitted to any server.
The converter handles boards with 1000+ cards, renders Markdown formatting in card descriptions, calculates checklist completion ratios, and groups comments chronologically under their parent cards. Toggle controls let you filter visible sections before printing. The print layout uses CSS page-break rules to prevent lists from splitting across pages. Note: this tool expects the standard Trello JSON export format. Custom or third-party export plugins may produce incompatible structures.
Formulas
The converter resolves cross-references within the Trello JSON using ID-based lookups. Each card references its parent list and associated members, labels, and checklists through identifier fields.
mapCardsToList: For each card ∈ cards[], group by card.idList → listMap[idList]
resolveComments: Filter actions[] where action.type = "commentCard", group by action.data.card.id
checklistProgress: ratio = completedItemstotalItems × 100%
sortCards: Sort by card.pos ascending (Trello's internal position value)
renderMarkdown: Parse desc for **bold**, *italic*, [link](url), - list items, `code`
Where card.idList is the foreign key linking a card to its parent list, action.data.card.id links a comment action to its parent card, and card.pos is a floating-point position value used by Trello for ordering cards within a list.
Reference Data
| Trello JSON Field | Path | Type | Rendered As |
|---|---|---|---|
| Board Name | name | String | Page title & header |
| Board Description | desc | String | Subtitle block |
| Lists | lists[] | Array | Column sections |
| List Name | lists[].name | String | Section heading |
| List Closed | lists[].closed | Boolean | Hidden by default |
| Cards | cards[] | Array | Card blocks |
| Card Name | cards[].name | String | Card title |
| Card Description | cards[].desc | String (Markdown) | Rendered HTML |
| Card Labels | cards[].labels[] | Array | Colored badges |
| Card Closed | cards[].closed | Boolean | Archived indicator |
| Card Votes | cards[].badges.votes | Number | Vote count badge |
| Card Due Date | cards[].due | ISO 8601 | Formatted date |
| Card Position | cards[].pos | Number | Sort order within list |
| Card Members | cards[].idMembers[] | Array of IDs | Member names |
| Checklists | checklists[] | Array | Checklist with progress |
| Checklist Items | checklists[].checkItems[] | Array | Checkbox items |
| Check Item State | checkItems[].state | complete / incomplete | Checked/unchecked |
| Comments | actions[] (type: commentCard) | Array | Comment threads |
| Comment Text | actions[].data.text | String | Comment body |
| Comment Author | actions[].memberCreator.fullName | String | Author name |
| Comment Date | actions[].date | ISO 8601 | Formatted timestamp |
| Labels | labels[] | Array | Color-coded tags |
| Members | members[] | Array | Referenced by idMembers |
| Label Color | labels[].color | String | CSS background color |