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.
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
- Motion. Transitions explain where you went. 150 to 350 ms. No decoration.
- Touch and pointer feedback. Every tap answers at once: a press state, a haptic on mobile, hover and focus on desktop.
- Perceived performance. Cached data and skeletons, not full-screen spinners.
- Navigation. Keep context. Pick a sheet, popover, or page on purpose.
- Visual hierarchy. One spacing scale and clear type roles.
- Feedback. Idle, pressed, loading, success, and error, shown near the action.
- Micro-interactions. Only when they communicate something.
What Premify does
Run one command in Cursor:
/premify <feature>
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:
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.
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
- Pick the toolkit
- 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)