About ux-skill — and the person who built it.
ux-skill is an open-source design engine that lives inside your AI coding tool. It catches the design fingerprints that every LLM produces by default — purple gradients, generic SaaS cards, screenshot-trained sameness — before they ever hit your repo. This page explains what it is, why it exists, and who made it.
About the project
ux-skill is a Python design engine packaged as a CLI plugin. It's 1,161 entries across nine manifests (anti-patterns, generators, styles, components, brands, foundations, output formats, conditionals, processes), 22 slash-commands, 100 anti-slop linter rules, a 5-parallel-search recommender, and a discovery protocol that forces the model to ask before it generates. You install it once via npx uxskill@alpha init and from then on every /ux-design, /ux-component, /ux-system command in your editor knows exactly what to refuse and what to recommend.
It exists because every AI coding tool produces the same design. Claude Code, Cursor, Windsurf, Copilot — they all reach for the same purple-to-blue gradient, the same three-column pricing card, the same SaaS hero. Those patterns aren't wrong; they're recognized. After enough of them, the work looks AI-generated regardless of who shipped it. ux-skill is a corrective layer: a forcing function for restraint, taste, and specificity that runs before code is written, not after.
It is not a competitor to ui-ux-pro-max-skill, taste-skill, or hallmark — it is a different shape. ui-ux-pro-max-skill is a 1,161-entry recommender (the canonical pattern this project borrows from). Leonxlnx/taste-skill is a single 50KB SKILL.md with the strongest anti-slop voice in the ecosystem. hallmark is Anthropic's design system for Anthropic-flavored apps. ux-skill combines the recommender pattern with the anti-slop voice and the linter — and adds a brand spec library (110 brands), a runtime CLI, and an enforcement layer. The compare page has the scored side-by-side.
The numbers
| Count | What | Where it lives |
|---|---|---|
| 1,161 | Manifest entries | Anti-patterns, generators, styles, components, brands, foundations |
| 22 | Slash commands | /ux-design, /ux-component, /ux-system, /ux-audit, etc. |
| 17 | IDE adapters | Claude Code, Cursor, Windsurf, Copilot, Continue, Codeium, Cline, +10 |
| 72 | Brand specs | Apple, Stripe, Linear, Vercel, Notion, Airbnb, +66 more under references/brands/ |
| 35 | Linter rules | CI-runnable anti-slop checks (gradient regex, font-pair lockout, +33 more) |
About the maker — Laith Aljunaidy
Laith is the solo founder of Dot, a MENA-first loyalty platform that gives merchants in Amman, Riyadh, Dubai, and Cairo a way to build customer relationships beyond points and discounts. Dot is the daily product — phone-first identity, no email required for customers, RTL Arabic as the primary locale, multi-tenant Laravel + Blade + Alpine + HTMX, live on a Devloops VPS at thedotwallet.com. ux-skill is the engineering exhaust: the design discipline that runs every Dot screen, packaged so other builders can install it.
The aesthetic is Apple-clean monochrome with deep respect for restraint. Black is chrome, white is canvas, negative space is the system. The brand mark — a single colored dot — is the only chromatic accent on most surfaces; semantic colors (success / warning / danger / accent) carry meaning, not decoration. Tenants and user content bring color; the system itself stays out of the way. That philosophy is hardcoded into ux-skill's manifests: anti-patterns flag purple-to-blue gradients before they're suggested, the discovery protocol forces 10 fields of intent before generation, and the linter blocks emoji shipping in any user-facing string.
He built ux-skill because he was tired of the AI design slop in his own Claude Code sessions. Every new landing page assignment started the same way: a hero with a gradient, a pricing card with three tiers, a feature grid with Lucide icons. The model wasn't broken — it was averaging. ux-skill is what happens when you write down what not to average to. It's not a personal style guide; it's a forcing function that asks the model to commit to a brand voice and refuse the seventeen default escape hatches before it writes a single line of HTML.
Contact
- LinkedIn linkedin.com/in/laithaljunaidy
- Email laith.aljunaidy.laith@gmail.com
- GitHub github.com/Laith0003
- Dot thedotwallet.com
No contact form — those collect spam and ghost replies. The email above is the real one. If you found a bug, file it on GitHub issues first so the fix lives in the open.
Open source ethos
- MIT license. Use it commercially, fork it, ship it inside a product, sell that product. No attribution required, no field-of-use clause, no carve-outs.
- No telemetry. The CLI does not phone home. No usage events, no error reporting, no anonymous IDs. The only network calls are to PyPI for package install and to your local AI coding tool for the prompt itself.
- No account. There is nothing to sign up for.
npx uxskill@alpha initworks on a fresh machine with no credentials. - No donation funnel. No Buy Me A Coffee, no GitHub Sponsors page, no Patreon. If you want to support the project, file a real bug or send a real PR.
- No paid tier ever. ux-skill will not have a Pro plan, a hosted SaaS edition, or a premium brand pack. The whole thing is the manifest plus the CLI plus the linter — and the manifest is the thing that needs to stay open to stay honest.
Acknowledgments
The recommender pattern — the idea of scoring an intent against a large catalog of brand + style + component combinations and returning a structured plan — comes from nextlevelbuilder/ui-ux-pro-max-skill. That repo set the bar for catalog depth; ux-skill borrows the shape and adds linter + brand specs + cross-IDE adapters on top.
The anti-slop voice — the refusal-first tone of "do not reach for purple, do not center the hero, do not paginate the testimonials" — comes from Leonxlnx/taste-skill. That single SKILL.md is the strongest design-taste prompt in the ecosystem. ux-skill takes the principle and explodes it into 35 enforceable linter rules.
The runtime — Claude Code as the host environment for an agentic design plugin — comes from Anthropic. Without the SKILL.md format, the slash-command surface, and the agent-loop primitives, this project does not exist.
And to every solo founder who has ever opened a fresh Claude Code session at 1am and shipped a feature with a purple-to-blue gradient because that was what the model wrote first — this skill is for you. Stop averaging.