Relay is a task monitoring and planning app I designed and built for myself. It pulls every task assigned to me in monday.com into one fast, focused list, lets me add my own notes beside them, and pushes every change back to monday automatically. It installs on desktop and phone, notifies me the moment a new task lands, and an AI assistant can audit and reschedule my workload for me.
I run production for a marketing agency on my own, so tasks come at me from several monday boards at once. monday is built for teams managing projects, not for one person deciding what to do next. I found myself juggling three things:
I wanted one place to plan my day that stayed in step with monday, so the team still saw accurate status without me updating two systems by hand.
A planner that sorts itself. The home screen groups everything into Today, Tomorrow and Next Week. Groups are worked out from each task's date every time the page loads, so tasks move between sections on their own as the days pass.
One list for everything. monday tasks and personal notes live side by side. An All Notes view filters by priority or open status, and drag and drop reordering works with both mouse and touch.
Two way monday sync. When someone assigns me a task, it shows up in Relay within seconds. When I change a date, status or priority in Relay, monday updates too. It works across multiple boards, each with its own column setup.
Instant notifications. New assignments trigger a push notification on my phone or desktop, even when the app is closed.
Daily plan in Slack. Every morning at 8:30, Relay posts a formatted plan for the day to Slack. I can also send it on demand.
Installable app. Relay installs to the home screen like a native app and still loads my last task list when I'm offline.
Connect buttons, not config files. monday and Slack connect through their own login screens. No pasting API tokens.
Two way sync sounds simple until both sides start talking at once. Most of the engineering went into making it trustworthy.
Stopping infinite loops. When Relay updates monday, monday fires a webhook back saying "something changed." Left alone, Relay would process its own change, write it again, and loop forever. I solved this by checking who made each change. Anything authored by Relay's own connection is ignored. Because this doesn't depend on timing, it holds up even when the webhook arrives before Relay has finished saving.
No duplicate tasks. Inbound changes come from two paths: instant webhooks, plus a once a minute check that catches anything a webhook missed. If both catch the same task at the same moment, it could be created twice. Each task is matched to its monday item at the database level, so the second arrival simply updates the first.
Deleted tasks that stay deleted. If I remove a task in Relay, the next sync shouldn't bring it back from monday. Deletes are kept as quiet markers, so the sync knows "seen it, removed on purpose" and skips it. On monday's side, the item is archived rather than destroyed, since it may belong to someone else's board.
Clear conflict rules. If a task is edited in both places, the most recent edit wins. I chose one rule applied everywhere over a mix of special cases, which would have quietly reverted changes.
Midnight edge cases. "Today" depends on where you are. Every date boundary, from planner grouping to the 8:30 Slack post, is calculated in my own timezone rather than the server's, so tasks don't land in the wrong section around midnight.
Security. Every incoming webhook is verified as genuinely coming from monday before anything is processed.
I wanted Relay to feel like a control panel, not another colourful project tool. The look is black with a solid red header, square corners throughout, and two typefaces: Archivo for interface text and JetBrains Mono for data like dates and labels.
Priority and status are shown as solid colour blocks rather than coloured text, so the table can be scanned at a glance. Green only ever means "low" or "done" and never appears on a button, so colour always carries meaning.
On mobile, the table adapts instead of collapsing into cards. The date column drops, labels shorten to three letter codes (URG, HIG, INP, COM), and the drag handle stays, so the same list works on a phone in one hand. When installed, the phone's status bar takes on the red of the header.
I started from a static prototype, then rebuilt it as a proper component system with every button, pill and field as a reusable piece. That keeps the interface consistent as it grows.
Relay has its own MCP server, which lets an AI assistant work with my tasks directly. In plain conversation I can ask it to:
Two safeguards matter here. First, the assistant can't make silent bulk changes. Anything that edits a task returns a proposed plan and waits for my confirmation, so a loose request like "clean up my week" never turns into a dozen surprise reschedules. Only the read only audit runs freely.
Second, the assistant, the app and the scheduled jobs all run through the same core logic. A change made by the AI behaves exactly like one made by hand, including syncing back to monday. Nothing drifts out of step.
Relay started as a single user app. Once other people showed interest, I made it multi user before any of their data existed, which is far cheaper than retrofitting later.
Each person now connects their own monday account and Slack workspace, and the AI assistant uses a personal access key that identifies who is asking. Every screen, sync and assistant action is scoped to its owner. One user can never see or touch another user's tasks, and an automated test suite proves it on every change.
Relay is the tool I plan my working day in. New assignments reach my phone within seconds, my morning plan is waiting in Slack before I start, and monday stays accurate for the team without double entry. An audit by the AI assistant catches slipping tasks before they become a problem.
The build went through phased milestones, each with a working checkpoint and its own automated tests, and finished with 64 passing tests across sync, security and user isolation.
Laravel, Vue 3, Vite, Pinia, PHP 8.4, Node.js, monday.com API with webhooks and OAuth, Slack API, Web Push, Progressive Web App, MCP server.