Over the last few months, I kept bouncing between Notion, Trello, and half a dozen other "productivity suites." None of them stuck.
Turns out, I was overcomplicating it. Here’s how I simplified my productivity stack (and kept it under $0):
- Created a simple Kanban board using GitHub Projects.
- Used Markdown + VS Code for my notes (no more cluttered apps).
- Integrated everything into one README dashboard.
If you feel overwhelmed by tools, try this. It might just save your sanity.
Having said that, my techy side loves an automation.
🔥 Your co-devs will swear you’ve unlocked a 36-hour day…
If you’re like me—techy, busy, and a sucker for smooth workflows—then you’ll love this little time-saver.
I built this GitHub Issues → Trello Cards automation to cut out the mindless task of manually copying tasks between platforms. It's a small thing that adds up big when you’re juggling projects.
Here’s the kicker:
You can literally copy this JSON code, drop it in VS Code, import it into Make.com, connect GitHub & Trello, and boom—like magic, every new issue shows up as a Trello card ready to roll.
Here’s the template:
{ "name": "Create Trello Card from GitHub Issues", "flow": [ { "id": 5, "module": "github:watchNewIssue", "version": 4, "metadata": { "designer": { "x": 0, "y": 0, "messages": [ { "category": "setup", "severity": "error", "message": "Value must not be empty." } ] } } }, { "id": 3, "module": "trello:createCard", "version": 4, "parameters": {}, "mapper": { "dueComplete": false, "list_id_select_or_manual": "select" }, "metadata": { "designer": { "x": 300, "y": 0, "messages": [ { "category": "setup", "severity": "error", "message": "Value must not be empty." } ] }, "restore": { "position": { "mode": "chose", "label": "" }, "labels_id": { "mode": "chose", "items": [] }, "members_id": { "mode": "chose", "items": [] }, "dueComplete": { "mode": "chose" }, "select_or_manual_cardID": { "label": "" }, "list_id_select_or_manual": { "label": "Select" } }, "parameters": [ { "name": "__IMTCONN__", "type": "account", "label": "Connection", "required": true } ], "expect": [ { "name": "list_id_select_or_manual", "type": "select", "label": "Enter a List ID", "required": true, "validate": { "enum": [ "manual", "select" ] } }, { "name": "name", "type": "text", "label": "Name", "required": true }, { "name": "description", "type": "text", "label": "Description" }, { "name": "labels_id", "spec": { "type": "text", "label": "Label ID" }, "type": "array", "label": "Labels" }, { "name": "position", "type": "select", "label": "Position", "validate": { "enum": [ "top", "bottom" ] } }, { "name": "due_date", "time": false, "type": "date", "label": "Due date" }, { "name": "dueComplete", "type": "boolean", "label": "Due complete", "required": true }, { "name": "members_id", "spec": { "type": "text", "label": "Member ID" }, "type": "array", "label": "Members" }, { "name": "urlSource", "type": "url", "label": "File URL" }, { "name": "select_or_manual_cardID", "type": "select", "label": "Copy card", "validate": { "enum": [ "manually", "select" ] } }, { "name": "board_id", "type": "select", "label": "Board", "required": true }, { "name": "list_id", "type": "select", "label": "List", "required": true } ] } } ], "metadata": { "instant": false, "version": 1, "scenario": { "roundtrips": 1, "maxErrors": 3, "autoCommit": true, "autoCommitTriggerLast": true, "sequential": false, "slots": null, "confidential": false, "dataloss": false, "dlq": false, "freshVariables": false }, "designer": { "orphans": [] }, "zone": "eu2.make.com", "notes": [] } } And a quick peek at what it looks like in action::

Question for the community:
What’s one tiny automation you’ve added recently that saved you HOURS (or sanity)?
I’m always hunting for simple wins like this — drop yours below 👇
P.S. It’s Friday evening where I’m at — Happy Weekend Coding, folks! 🚀
Top comments (0)