

September 2026
TECHNOLOGY
NEXT.JS / REACT
SECTOR
PRIVACY / TECHNOLOGY
PRODUCT DESIGN
WEB DESIGN
DESIGN SYSTEM
BRAND DESIGN
What was the challenge?
Rentgendroid began as an early-stage idea to make Android app privacy behavior more transparent. As a team of two designers, two developers, and a lawyer, we needed to explore the concept with potential users, narrow the scope to a realistic MVP, and find a clear way to communicate a technically complex product.
My contribution
Through nine user interviews and usability testing, we identified key UX problems and gradually refined the product's direction. I led the product UX/UI, design system, and landing page visual direction, collaborating with another designer. Together, we shaped the experience around app discovery, APK upload, and evidence-based reporting. The MVP is now live, with further development ongoing.
01 / Visual Language
Primary mint
Neutral white
Coral
Giving Rentgendroid a distinctive visual identity.
The product came first. The landing page followed to introduce Rentgendroid and explain the privacy problems it addresses.
I chose a neobrutalist style to reflect the project’s critical stance toward opaque Big Tech practices. Bold headlines, hard borders, and offset shadows gave the website an outspoken, slightly rebellious character. I led the design and visual direction, working with another designer. The website and product share the same visual foundations, expressed more boldly on the website and more functionally in the product.
Color Palette
Most of the website uses neutral surfaces and dark text. I used mint, coral, and yellow sparingly to draw attention without letting color dominate the content. The product shares this palette, but gives the colors more specific roles in its actions and report states.
SURFACES
Page
Surface
CONTENT
Primary
Secondary
ACCENT
Mint
Coral
Yellow
Typography
I paired the expressive, condensed Bebas Neue with the calmer DM Sans. Bebas Neue carries the bold headlines, while DM Sans gives the longer explanations and supporting content a quieter treatment.
DISPLAY / HEADLINES
Iconography
I started with the Badges icon set from Icons8 and substantially reworked the selected icons to fit Rentgendroid. Bold outlines, simplified shapes, and mint accents connect the set to the wider visual identity. The icons illustrate concepts such as app tracking and identifiers, as well as actions and states such as uploading an APK or waiting for analysis.
APPLICATION
ANALYSIS
REPORT
LOCATION
ADVERTISING ID
TRACKING SCRIPTS
NOTIFICATIONS
NO RESULTS
APK UPLOAD
ANALYSIS QUEUED
02 / Key Workflows
Starting with the app, not the technical setup.
User interviews showed that people wanted to understand which apps shared data and with whom. Usability testing of the early prototype revealed two obstacles to getting those answers: providing an APK and knowing whether an analysis was running. I focused the core journey on finding an app, submitting it for analysis, and understanding what happens next.
Find an App
Requiring an APK made some participants think Rentgendroid was intended for developers or testers rather than for them. I made search the main entry point so people could begin with an app they already knew. Suggestions and app details help them confirm they selected the right application before requesting an analysis.
Upload an APK
Direct upload remains an option for people who already have an APK or cannot find their app in search. The selected filename remains visible so users can verify what they are submitting. After submission, a queue confirmation distinguishes a received request from one that has actually started analysis.
Run the Analysis
During testing, participants were not always sure whether an analysis was running. I gave waiting and active analyses distinct states, with queue position and an estimated wait when available. Notifications, a return link, and cancellation provide users with options while they wait. The report opens automatically when the analysis finishes.
In usability testing, some participants viewed a higher domain count as a sign of worse privacy. Interviews also showed that domain names alone were not enough: people wanted to know which companies received their data.
I list the Advertising ID result first, followed by recipient domains and company names where available. Supporting library information remains separate from observed transmissions. Three distinct outcomes indicate whether transmission was observed, was not detected during the analysis, or could not be established - without labeling the app as safe or unsafe.
04 / Design System
From small parts to complete interfaces.
As the MVP evolved, the same controls appeared across search, upload, analysis, and reporting. I built these as reusable Figma components rather than designing them separately for each screen. Shared color and spacing variables, organized into primitive and semantic layers, sit alongside the product’s typography styles. I also worked through interaction states and layout rules for five viewport configurations.
Together with the assembled screens, these provide developers with a reference for how the interface should look and respond.
FOUNDATIONS
Shared rules for
an evolving product.
I defined the product’s colors, typography, spacing, and responsive layouts in one place. The website and product share a visual identity, but the product’s foundations focus on interface content: headings, explanations, technical data, and clearly differentiated states.
COMPONENTS
Designing the controls
A search field needs to do more than look right before someone uses it. I designed the navigation, buttons, search, and upload controls, along with their relevant states, including keyboard focus, selection, and loading feedback.
These reusable components carry the same interaction patterns across the product.
BUILDING BLOCKS
Clarify next steps when things don’t go as planned.
A search with no matches is different from results that couldn’t be retrieved. I designed separate messages and actions for each: clear the search or try retrieving the results again.
For failed analyses, the next step depends on how the user started. Someone who uploaded an APK needs to upload it again, while someone who selected an app from the catalog returns to its details to restart the analysis.
let's talk
Have a project in mind?
React Developer at Rimthan










