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! 🚀