DEV Community

Cover image for Same app. Same taps. Why does one feel premium?
vatana7
vatana7

Posted on

Same app. Same taps. Why does one feel premium?

Revolut, Linear, and Apple Wallet feel expensive. Most apps don't. The gap is rarely the design. It is what happens in the 200 ms after every tap.

Before and after sample: the same app and the same taps

Sample demo. Same app, same taps. Left: before. Right: after.

I kept fixing the same problems feature by feature, so I turned the checklist into a Cursor skill: Premify.

The 7 things most apps skip

  1. Motion. Transitions explain where you went. 150 to 350 ms. No decoration.
  2. Touch and pointer feedback. Every tap answers at once: a press state, a haptic on mobile, hover and focus on desktop.
  3. Perceived performance. Cached data and skeletons, not full-screen spinners.
  4. Navigation. Keep context. Pick a sheet, popover, or page on purpose.
  5. Visual hierarchy. One spacing scale and clear type roles.
  6. Feedback. Idle, pressed, loading, success, and error, shown near the action.
  7. Micro-interactions. Only when they communicate something.

What Premify does

Run one command in Cursor:

/premify <feature>
Enter fullscreen mode Exit fullscreen mode

It then:

  • Detects the platform. Flutter, React Native, or native iOS and Android get the mobile toolkit. Web, Electron, Tauri, or native desktop get the desktop toolkit.
  • Maps every surface of the feature: entry points, screens, sheets, dialogs, and exits.
  • Audits each surface against the 7 systems and writes a Top 10 table.
  • Implements the fixes with your existing motion tokens, reduced motion support, and correct target sizes.
  • Verifies lint and tests, then hands off a production build to try.

It does not touch business logic or API contracts.

Rules learned from real device feedback

  • A placeholder that swaps with a value keeps the same size. Nothing shifts.
  • Disabled and busy states crossfade. They never hard-cut.
  • A toggle that waits for a refetch feels slow. Flip it on API success.
  • A hover effect must not move the layout.
  • Judge smoothness only in a profile or production build.

Try it

Open source, MIT license:

GitHub logo vatana7 / premify

Cursor skill for a premium UX pass on one feature. Audit motion, touch, loading, and feedback, then implement and hand off a device build.

Premify

Cursor skill for a premium UX pass on one feature, on mobile or desktop.

Every tap or click answers at once. Every state change moves with intent. Nothing jumps. Nothing looks dead.

Before and after sample

Sample demo: the same app and the same taps, before and after.

Install

Cursor Marketplace (after review): search premify in Customize → Plugins.

From GitHub:

https://github.com/vatana7/premify

Or copy skills/premify/ into .cursor/skills/premify/ in a project.

Use

/premify swap
/premify settings desktop

With no feature name, the agent suggests the next unfinished feature and asks.

Mobile or desktop

The skill picks the toolkit from the code:






















Project Toolkit
Flutter (iOS/Android), React Native, Expo, native iOS or Android Mobile
Web app, Electron, Tauri, native macOS or Windows, Flutter desktop Desktop
Both targets or a responsive web app Per feature branch, or asks once

Say "mobile" or "desktop" to override.

What it does

  1. Pick the toolkit
  2. Map every surface in the…




Copy skills/premify/ into .cursor/skills/ in your project, then run /premify <feature>.

What is the one interaction in your app that feels cheap? I would like to hear it.

Top comments (0)