Home

Admin Mobile

The first native app for a desktop-only IT platform, so admins can handle urgent tasks, like unlocking a locked-out user, from anywhere.

JumpCloud Admin user search for Robert: results with locked-out and expired-password status icons.
JumpCloud Admin dashboard: 5,909 total users, 2 accounts locked out and 20 expired passwords.
JumpCloud Admin user profile for Martin Stone, marked Account Locked Out, with Unlock User Account at the top of his security actions.

At a glance

JumpCloud’s Admin Portal only worked on a desktop. So when someone got locked out of their account, the person who could fix it had to find a laptop first. Customers kept asking for an app, and competitors already had one.

I took JumpCloud’s first native app from a handful of inherited concepts to the App Store: login, alerts, search and one-tap unlocks, in light and dark mode on iOS and Android.

My role
Lead designer on the mobile app, from early concepts to release builds
Team
A PM and one React Native team building for iOS and Android, plus another designer early on
Timeline
About 9 months

The old way: Locked out? Find a laptop.

JumpCloud gives IT teams one place to manage their company’s users, devices and access. But the Admin Portal only worked on a desktop.

The tasks admins dealt with most, day to day, were people locked out of their accounts and passwords that had expired. Both stop someone from working, so they need fixing fast. And admins aren’t always at their desks when it happens.

The brief: Put the urgent stuff in their pocket.

Customers were asking for a mobile app, and our competitors already had one. The brief was JumpCloud’s first native app: not the whole Admin Portal on a phone, just the most common urgent tasks, done well.

Another designer started the project and sketched the first concepts, then left partway through. I picked it up from there and finished it as the only designer, working with a PM and one engineering team. The app was built in React Native, so the same team shipped iOS and Android, and everything sat on Stratus, the JumpCloud design system I also helped build.

The work: What I designed and why

Four tabs to start

The concepts I inherited split the app into four tabs: Home, Users, Devices and More. Home already led with lockouts and expired passwords. Devices could remotely lock, restart, shut down or erase a computer. More was a catch-all for policies, insights, event logs and reports.

That’s a lot of portal for a phone. Before going further, we needed to know which parts admins would actually reach for.

Lo-fi Home tab: a User Lockouts card with 3 users locked out and a Password Reset card with 5 expired passwords, each listing usernames and timestamps.
Home, led by lockouts and resets.
Lo-fi Users tab: a searchable list of user cards with names, emails, usernames and lock icons.
Users, a long list of cards.
Lo-fi Devices tab: a list of MacBook Pro and Windows 10 devices with OS version, IP address and last seen time.
Devices, for every computer in the company.
Lo-fi More tab listing Policies, Insights, Change Admin PW, Event Logs and Reports.
More, for everything else.

Testing it on wireframes first

Early on, I ran usability tests with admins on a clickable prototype of the first wireframes. Each session started the same way: you’ve just got an alert that someone is locked out. Then came four tasks, one for each tab.

The tasks

  1. Martin Stone is locked out of his account. Find him and suspend his account.
  2. You forgot to reset Carl Finich’s TOTP MFA before leaving your desk. Do it now.
  3. roykent-Mac isn’t responding and needs IT. Find it and restart it.
  4. What would you expect to find under More?
  • One search box for everything. Admins wanted to look people up by whatever they had on hand, whether that was a name, an ID, an email or an employee type, all from the same box.What it led to: A single search for first name, last name and email in the first release, with recent searches saved.
  • Quick filters, please. They wanted to cut the list down to the people who needed help right now, without typing anything.What it led to: Filters for locked-out accounts and expired passwords, one tap from Home.

Finding the look

The visual explorations went wide: abstract cloud shapes for the login screen, a sea green palette alongside JumpCloud’s rainbow brand colors and plenty of footer experiments. The data viz dashboards tried putting a trend line on every problem, from bold blocks of color to a single monthly report.

A data viz home screen for Acme Company: white cards for User Lockouts, with a red trend line, and Force Password Change, with a green one, each showing a monthly average and a needs attention count.
A trend line for every problem.
A data viz home screen with full-bleed charts: a red User Lockouts card and a green one below, each with a monthly average and a needs attention count.
The same idea, in full color.
A data viz home screen: Welcome, John with total users and devices on a teal header, a Monthly Report chart, and counts for User Lockouts, Force Password Reset, Password Reset and Activate Account.
One monthly report, with totals up top.
A data viz home screen with the same header and monthly report, and counts in colored pills: Account Locked Out, 2, in red, Force Password Reset, 56, and Password Reset, 20, in orange, and Activate Account, 0, in green.
Counts color-coded by urgency.

You can follow where it went from there on the home screen. The first high fidelity pass put a grid of counts on Home, from lockouts and expired passwords to MFA and new devices. The next version narrowed it to lockouts, with an Unlock button for each person right on Home. v3 moved the company name and user count into a teal header and added more urgent tasks below. v4 stripped it back to a short list of counts under a welcome, close to where the MVP ended up. The style that won was designed in light and dark mode from the start.

Dark mode made it all the way to the App Store, and it works well.

First passAn early home screen for Acme Company: a grid of count cards for User Lockouts, 4, and Expired Passwords, 54, in pink, then TOTP MFA, password expirations, biometric MFA, device onboarding, and Windows and Mac devices.
A count for everything, in a grid.
v2A v2 home screen for Acme Company: a User Lockouts card with a count of 4 and four people, each with an Unlock button, then Suspended Accounts, 0.
Lockouts first, with Unlock right on Home.
v3A v3 home screen: Acme Company and 2,340 users on a teal header, then a User Lockouts card with four people and Unlock buttons, Suspend Accounts and Reset MFA.
A teal header, with more tasks below.
v4A v4 home screen: Welcome, John and 5,909 total users on a teal header, then counts for User Lockouts, 2, Force Password Reset, 56, Password Reset, 20, and User Activations, 0.
Back to a short list of counts.

Logging in to a security company’s app

This app is for the people who hold the keys to the whole company, so logging in had to be airtight without becoming a chore. That meant a separate flow for every way an admin might sign in: with JumpCloud or Google, with or without multi-factor authentication, on iOS and Android.

Admins with MFA confirm with a code from JumpCloud Protect, so I designed the hop between the two apps: swipe over to Protect, tap the code to copy it, and swipe back. The keyboard offers to paste it, and the app verifies on its own the moment the last digit lands.

Admins without MFA can turn on Face ID or Touch ID (or face unlock and fingerprint on Android) the first time they log in. After that, the app checks as soon as it opens, using each platform’s own prompts instead of custom lookalikes.

Every flowThe login screen: Admin by JumpCloud over soft teal cloud shapes, a Log in button, and links to the Terms of Use and Privacy Policy.
Every login starts here, under the cloud shapes.
With MFAThe JumpCloud Protect app showing a 6-digit code, 839 620, with a Code Copied toast.
Tap the code in Protect to copy it.
With MFAMulti-factor TOTP Authentication: six boxes filled with 839620 and a keyboard suggestion reading From JumpCloud Protect, 839620.
Back in Admin, the keyboard offers to paste it.
Without MFAThe system prompt: Do you want to allow JumpCloud Admin to use Face ID? with Don’t Allow and OK, over an Enable Face ID screen.
No MFA? Turn on Face ID, with the system’s own prompt.

A home screen built around what’s on fire

For the MVP, Home came down to one question: does anyone need my help right now? The chart and the extra counts went, leaving total users and two counts, accounts locked out and expired passwords. Tap either one and you land in the user list, already filtered to just those people.

When someone gets locked out, a push notification brings you to the same place. The app’s names for things, like the “User Locked Out” alert, were lined up with the desktop portal, so admins never had to translate between the two.

The dashboard: 5,909 total users, Accounts Locked Out, 2, and Expired Passwords, 20.
Two numbers that matter.
The Users tab filtered by an Accounts Locked Out pill, showing one user, Alan Schmidt.
Tap one, and the list is already filtered.

Finding the right person fast

The search box takes a first name, a last name or an email, and icons show who’s locked out or has an expired password before you even open their profile. Tapping into search shows your last 10 searches, so the person you helped yesterday is one tap away today.

Tapping into search on the Users tab: Recent Searches for Martin M, Alex, Gina and Eduardo, each with an X to remove it, and a Clear Recent Searches button above the keyboard.
Recent searches, ready before you type.
A search for Robert: eight results with name and email, some marked locked out in red and some with expired passwords in orange.
Status at a glance in the results.

Unlocking someone in a few taps

A user’s profile puts their security status first: unlock their account, force a password change, resend their activation email, suspend them, or reset their MFA. Each action shows what happened last and when.

Tap Unlock and a sheet explains what unlocking does before you commit. Then the app tells you whether it worked, and an error gets a clear Try Again instead of a dead end.

Martin Stone’s profile marked Account Locked Out, with Security Status actions: Unlock User Account, locked 01-05-2022, Force Password Change, Resend Activation Email and Suspend Account.
Martin Stone, locked out.
A sheet over Martin Stone’s profile: Unlock User Account. Accounts are locked after multiple failed login attempts. Unlocking will clear the attempts and let the user regain access with their existing credentials. Unlock and Cancel buttons.
A sheet explains what happens next.
A sheet reading Account unlocked successfully! with a green cloud and checkmark and an Okay button.
Done. Martin can get back to work.
A sheet reading Error unlocking account. with a red cloud and exclamation mark and a Try Again button.
If it fails, a clear way to try again.

A short feature list left room for some fun

With an MVP this lean, I wanted the small moments to carry some personality. I come from motion graphics, so I animated JumpCloud’s cloud in After Effects and exported it with Lottie, so the app could play the real animation instead of an approximation.

The loading cloud draws itself on the startup screen and anywhere else the app is waiting on data. When an action works, like unlocking a user, the cloud draws in green and a checkmark lands.

They didn’t stay in the app for long. The animations were adopted across JumpCloud, from other internal apps all the way to the marketing website.

The startup screen: Admin by JumpCloud on a pale teal background, with the cloud loading animation playing below the wordmark.
The loading cloud, on startup and anywhere data is on its way.
Account unlocked successfully!, with the success animation drawing a green cloud and a checkmark above an Okay button.
A little celebration when the unlock goes through.

Admins who look after more than one company

Some admins manage several organizations through JumpCloud’s multi-tenant portal. They log in to a list of their organizations, each showing its number of users and user issues, so the one that needs attention stands out.

Once they’re inside an organization, they can switch to another from the header, without going all the way back to the list.

The Multi Tenant list: JumpCloud with 509 users and 22 user issues in red, Google with 22,375 users and Slack with 3,823 users, both with 0 issues.
Every organization, with issues called out.
A Change Organization sheet over the dashboard with JumpCloud checked, Google and Slack below, and a Cancel button.
Switch without backing out.

No acting on stale data

When you’re unlocking accounts and resetting MFA, out-of-date information is worse than none. If the app loses its connection, it says so and offers a shortcut to Settings. If the admin cancels, a blocking screen keeps them from acting on data the app can’t refresh.

While content loads, skeleton screens hold its shape, so nothing jumps around when the real numbers arrive.

A Could Not Connect alert over a user profile: Make sure you are connected to Wi-Fi or your cellular network, with Go to Settings and Cancel.
No connection, no guessing.
The dashboard loading: the teal total users card and two alert cards shown as shimmering placeholders.
A skeleton while the numbers load.

Checking every build against the designs

Handing off the designs wasn’t the end of it. Leading up to release, I ran UX QA on the actual dev builds, checking each one side by side with the Figma files. I flagged everything from card shadows and footer blur to pixelated buttons, MFA icons and empty states, and included the CSS and type specs the engineers needed to fix each one.

A dev build next to the design. The full board covers shadows, the footer, lists and settings.

Taking it back to the desktop

The mobile patterns turned out to be useful beyond the phone. Partway through the project, I explored how they could scale back up to the desktop as a lighter, quick-response help desk: an activity chart of the week’s directory events above the same urgent counts, and a user page that leads with what’s wrong, like a locked-out banner with its own Unlock button, followed by the same quick actions as the app. It was a much smaller tool than the full Admin Portal, built for getting in, fixing something and getting out.

The desktop help desk home: an Activity card with totals for users, devices, user groups, applications and policies, and a Last 7 Days bar chart of events, user lockouts and upcoming password expirations, above cards for user lockouts, expired passwords, upcoming password expirations and unencrypted devices.
The help desk home, from the responsive desktop explorations.

Looking back: It shipped. Now people want more.

JumpCloud Admin shipped on the App Store and Google Play, dark mode included, and it’s still live today. It was the company’s first native app, and it gave admins something they’d been asking for: a way to help people without being at their desks. I don’t have adoption numbers to share.

The biggest miss is how much it can do. Most of the complaints in the app store reviews are about missing features. That was the trade-off of a tight MVP, and it was a real struggle internally. We chose to ship a few urgent tasks done well, knowing the app would be received that way at first.

Small on purpose. Maybe a little too small.

I wish we’d been able to fit in more of the complex work, like device management. The designs were there.

But I’m proud we got JumpCloud’s first native app out the door. It filled a gap the company had been missing for a long time, and it gave the team a foundation to keep adding to.

See it on the App Store (opens in a new tab)

Click the image to zoom. Drag or scroll to look around, and press Esc to close.