I saw a popular request for managing pulses across multiple boards simultaneously. I thought, maybe I can do something there...
What it does
Allows users to manage work across multiple boards in a way that looks and feels like native Monday.com functionality. Has advanced filters that can be saved as a view, inline editing, shared column toggling, live updates, and allows batch updates across boards.
How I built it
Built with Angular, Typescript, and a ton of map/reduce via lodash.
Challenges I ran into
I'm new to Monday.com, so there was a bit of a learning curve - but the SDK is very easy to use and the Monday.com team was very helpful when I had questions. Thanks Dipro and Vlad!
The SDK drops calls when there is an error, the payload is empty, or the user's session has expired. I put in some heuristics to determine when a call is unlikely to return so the code would have something to work with. That said, I want to point out what a smooth, painless experience it was the vast majority of the time in so many ways. The live editor (via ngrok) was so easy to use, and I never saw caching issues when I published the app multiple times - just to mention a couple of things.
Figuring out the color for a given status. Enjoyed decompiling Monday.com's front end code and search for color mappings (seriously, yes, I enjoy that).
Monday.com's servers flagged my work on batch updates as a DOS attack (sorry about that guys)...
Severe lack of sleep.
Accomplishments that I'm proud of
- Looks and feels like native Monday.com
- Fast initial load of the app - user can start working almost immediately
- Performant handling of 1000's of pulses
- Due date pie chart indicators use dynamically generated SVGs
- Smart column grouping
- Typescript annotations for tracking call and api timings (see screenshot)
What I learned
- Highly impressed with the Monday.com platform and team. Thanks for all the help Dipro and Vlad!
- Leveled up my rxjs fu
What's next for Tuesday's Tools
- Support for more column types
- Leverage the browser cache for an even quicker initial load
- Updates pane
- Sleep. Lots of sleep.