Bulk Update Pro, Smart Row Highlighter, Board Analytics, Timesheet Pro and Approval Flow. Three live on the Monday marketplace, two in review. All React + Vite + monday-sdk-js, all sharing a common utils layer for column handling, date math and error UX — so adding a new app is days, not weeks.
Monday.com is a powerful work OS but it has deliberate gaps — bulk editing is tedious, conditional formatting is limited, dashboards lack depth, timesheet reporting is bolt-on, and multi-stage approvals don't exist natively. Every team that scales on Monday runs into the same pain points.
Building one app for the marketplace is doable. Building five that all hold to the same quality bar, share code, respect Monday's Vibe design language, and pass marketplace review — that's a different engineering problem.
Five apps were built on top of a shared monorepo. A common /shared layer provides Monday column helpers, date utilities, and consistent error handling. Every app imports from the same source, so a fix to column value parsing propagates across the whole portfolio instantly.
Each app is independently deployed to Monday Code (Monday's own CDN), independently versioned, and independently submitted for marketplace review. But they read and feel like the same product family.
Multi-item, multi-column bulk editor for Monday boards. Supports 15+ column types (Status, People, Date, Timeline, Rating, Tags, Dropdown...), dark mode, preview-before-commit, progress tracking.
Conditional row highlighting with AND/OR rule logic. 8 color options, drag-to-reorder rules, export/import rule configs. Flags overdue, stuck or high-priority items at a glance.
Four-tab dashboard: Overview, Distribution, Timeline, Issues. Completion rates, stale-item detection, overdue tracking, group/status filters. Bar / line / donut charts.
Time tracking + reporting with Excel + PDF export (jsPDF, XLSX), recharts graphs, invoice-ready modals. Replaces external time tracking tools for teams that already live in Monday.
Multi-stage approval workflows with visual diagram UI. Replaces the endless "can someone approve this?" Slack threads with an auditable, in-Monday flow.
mondayHelpers.js, dateHelpers.js, errorHandlers.js — the foundation every app imports from. Column parse/format/validate, range math, retry + toast UX.
| App | Version | Status | Target User |
|---|---|---|---|
| Bulk Update Pro | 1.0.3 | ● Live | PMs managing large boards |
| Smart Row Highlighter | 1.0.2 | ● Live | Team leads monitoring board health |
| Board Analytics | 1.0.1 | ● Live | PMOs, executives |
| Timesheet Pro | 2.0.0 | ● Review | Consultancies, agencies |
| Approval Flow | 1.0.0 | ● Dev | Finance, HR, procurement |
All five apps live in one working tree. Each app is a standalone Vite project with its own package.json, but every app imports from a common ../../shared/utils/ folder. There are no npm workspaces and no build complexity — just relative imports against one source of truth.
mondayHelpers.js · dateHelpers.js · errorHandlers.js — imported by every app| Module | Responsibility | Used by |
|---|---|---|
mondayHelpers.js | Format / parse / validate 15+ Monday column types, filter + group items, safely mutate columns | All 5 apps |
dateHelpers.js | Range calculations, locale formatting, time-to-hours conversion, relative "stale" detection | Bulk Update, Analytics, Timesheet, Approval |
errorHandlers.js | Consistent error UI via Vibe toasts, retry with backoff, graceful API failure paths | All 5 apps |
| App | Monday Feature Type | Integration Points |
|---|---|---|
| Bulk Update Pro | Board View | Reads selected items, writes column_values via mutation |
| Smart Row Highlighter | Board View | Reads rules from app storage, overlays highlight styles |
| Board Analytics | Board View | Aggregates board items into charts (recharts) |
| Timesheet Pro | Board View + Item View | Logs time entries, exports PDF/Excel reports |
| Approval Flow | Board View + Automations | Multi-stage workflow tied to column status changes |
Monday has over fifteen distinct column types (Status, People, Date, Timeline, Dropdown, Tags, Rating, Numbers, Text, Checkbox...). Each has its own shape for reads and mutations. Hand-coding per-app is a nightmare.
mondayHelpers.js module with typed parse/format/validate functions per column. Bulk Update Pro was the forcing function — once it supported 15 types cleanly, every other app benefitted immediately.Monday requires marketplace apps to feel native. Any off-brand component and review rejects the submission.
monday-ui-react-core (Vibe) for every interactive element. Dark mode is inherited from Monday's theme context rather than implemented per-app. Zero custom modals, tooltips or buttons.Board Analytics needs to query and aggregate thousands of items without locking up the browser.
Timesheet Pro needs to generate invoice-ready PDFs and pivoted Excel sheets entirely client-side — no backend.
Smart Row Highlighter needs to evaluate AND/OR rule trees against every board row, fast, as data changes.
Monday's marketplace review is strict: manifest correctness, permission scopes, accessibility, performance, and UX polish are all checked.
mondayHelpers.js, dateHelpers.js, errorHandlers.js — the single source of truth imported by every app in the portfolioI build Monday.com marketplace apps end-to-end — from manifest to marketplace review. Board views, item views, dashboard widgets, automations. Five apps already shipped, shared monorepo foundation ready to drop in.
💬 Hire Me on Contra ← Back to portfolio