Makula - Views, Filters & Sorting
A saved-views system with a rebuilt filter and sort experience, so teams could hold their own filtered slice of a shared workspace instead of one global list.
Overview
I designed a saved-views system with a rebuilt filter and sort experience for Makula’s work order platform, so teams could hold their own filtered slice of a shared workspace instead of one global list.
Problem
Work orders, assets, and related records all lived in one global list. Any filter or sort a user applied changed the page for that session only — there was no way to save it, and no way to give different teams different slices of the same data.
- Filters reset on every visit. Because view state wasn’t saved, users rebuilt the same filter and sort setup each time they opened the page.
- No way to scope a view to a team. Filters applied globally to the page, so there was no way to give one team an “open work orders” view and another an “overdue by location” view.
- Repeated setup slowed everyday work. Across users and teams, this added up to constant re-filtering just to get back to a usable list.
A filtered list that persists instead of resetting
Users can create named views in List, Table, Board, Map, or Calendar layout, each storing its own filter and sort configuration independently of the default view. This turned a filtered, sorted list into a persistent object instead of temporary page state.
One workspace, several coexisting views
Every view is created as Personal by default. Admins and owners can switch a view to Shared, making it visible to the rest of the team. This let a workspace hold several coexisting filtered views instead of one global list everyone had to share.
Why it matters: Restricting who can create a shared view kept views from becoming inconsistent or accidentally overwritten as more teams started using them.
Field first, condition second
I replaced the flat filter interaction with a field-first panel: pick a field — Work Order ID, Asset, Company, Assignee, Created Date — then define its condition. Active filters show as labeled chips in the toolbar, so it’s clear at a glance what’s currently applied.
The same pattern, applied to sort
I rebuilt the sort panel using the same field-driven pattern as the filter builder — choose a field, choose a direction — and surfaced the active sort as a chip next to the filter chips so it doesn’t get buried.
Rename, duplicate, or delete without leaving the page
Each view has its own settings for renaming, changing layout, duplicating, or deleting, all without leaving the page. Teams could iterate on a saved view instead of starting over each time requirements shifted.
Results
Fewer repeated setups. Saved views meant filter and sort combinations persisted, so teams stopped rebuilding the same setup every session. Faster to skim lists. Scoped, team-specific views made it quicker to get to the relevant subset of work orders instead of scanning the full global list.