App bundles
One click, a whole toolkit, grouped by who they’re for.
Employees rarely need one app. They need the set that goes with their job. The bundle builder had to make that a single action for users, and a clear, type-agnostic tool for the admins who assemble it.
admin, the bundles list
Group by who they’re for, not what they are.
Bundle by app type
“All the design applications.” Literal, but not how IT provisions people.
Bundle by user type
Everything a marketer or a designer needs, tied to roles & groups.
A type-agnostic pattern, driven by each application’s own details, so one bundle can hold desktop and mobile apps at multiple price points, with no special-casing. That plays out across the screens below.
Every bundle, legible at a glance.
The management list (shown above) gives admins the full picture (title, type, message, groups, status, submitter) with add, filter, search, and pagination for scale. The controls that matter live at the row level.
Two menus, two roles.
The row-level actions split by who’s looking: an admin menu (publish/unpublish, message, view report, suspend, delete) and a developer menu(edit, view & edit group), the same object, surfaced to each role with only what they should touch.
row actions, admin menu vs developer menu
the bundle, as a user sees it, one-click install
A product page for a toolkit.
The detail view treats a bundle like a first-class product: title and price, version with rollback, an image gallery, a description, the full list of products included, and customer reviews, everything needed to decide, in one place.
Assemble a bundle in a single form.
Creating a single-price-point bundle pulls the pieces into one form: bundle info, the selected products, pricing by country, the user and device groups it’s for, and an icon upload. The apps inside are just references, so a bundle can mix desktop and mobile without the form caring which is which.
add bundle, single price point
the admin detail, desktop + mobile apps at multiple price points
Where the type-agnostic bet pays off.
A single bundle can carry several price points, each with its own name, description, and set of products. Because the pattern is driven by each application’s own details rather than a fixed bundle “type,” adding a tier is just adding a price point. No special-casing, no separate flow.