QuasarUI has been rebuilt from the ground up. There are more Components, a hundred of them are free to copy, your AI editor can fetch them, and the Theme Builder is new. Buying is simpler too: no account needed, one payment, lifetime access. This post covers everything that changed, first for people who use the site, then for developers who want to know what runs under it.
The catalogue is now one flat list of Blocks: Hero Sections, Pricing Sections, Data Tables, Sign-in and Registration, App Bars and so on. There are 56 Blocks holding 440 Components. The old split into three Categories, each sold separately, is gone.
Before, almost nothing was free. Now 100 Components are Free, and nearly every Block page has at least one. A Free Component is free all the way:
<script setup>.Every Component is marked Free or Paid, so you are never surprised by a lock. Paid Components still show their live preview to everyone. Their code tab tells you what unlocks them.
The Theme Builder is new. It's a port of the Nuxt UI Theme Studio to Quasar, and it stays free.
quasar-theme.css file, quasar.variables.scss and the config to merge. A share link brings the same theme back later.The custom Quasar theme guide walks through theming by hand and then through the export, step by step.
Ten new Paid Components restyle themselves from a Theme Builder theme. Their preview has a picker for the 12 presets and a light and dark switch, so you can see a Component in your style before you copy it. Each one carries a Themeable tag on its Block page, and searching "themeable" lists them all.
Six are marketing sections:
Four are app pieces:
Their source reads the CSS variables the Theme Builder exports. Pasted on its own, a Themeable Component won't look themed: export your theme's quasar-theme.css from the Theme Builder too.
AI editors are how many of us pull in UI code now, and they tend to guess at Quasar markup. The QuasarUI MCP Server gives them real Components instead. Your editor can list the Blocks, search Components by what they are ("a pricing table with a toggle", "login", "navbar"), fetch a Component's source and read a setup guide.
You create Access Keys on your dashboard. Each key has a name, is shown only once, and comes with a ready setup for Claude Code, Claude Desktop and Cursor. You can see when each key was last used and revoke it at any time.
The MCP post covers the setup for each editor, prompts to try, and Quasar's own docs server, which works well alongside it.
There are now three kinds of Product. Every one is a single payment, with lifetime access that includes what is added later.
Prices on the site are read from Polar, the checkout provider, so what you see is what you pay. The pricing page compares All Access and Blocks Pro.
You don't need an account to buy. Enter your email, pay, and we create an account for you. You get an email that signs you in and lists what you bought. If that email already owns the Product, you are told before you pay, so you never pay twice.
Template buyers no longer wait for a repo link by hand. You get a GitHub invite to the Template's repo automatically, and your dashboard links to it.
The sign-in page marks the method you used last, so you don't create a duplicate account by picking the wrong one.
This part is for developers who like to know how a site is built. The rebuild was a fresh repo, porting what worked from the old site.
The data moved from MongoDB to SQL: Turso (libSQL) in production and a plain SQLite file in local development, with Drizzle ORM on top. One libSQL database works on any host, so the site can move between Vercel and Cloudflare without moving data. Migrations are generated by drizzle-kit and applied with one command.
Payments moved from Lemon Squeezy to Polar. The main reason is Template delivery: each Template is now its own private repo in a GitHub organisation, and Polar's GitHub benefit invites buyers to it automatically. Before, every Template lived in one shared repo and links went out by hand.
Polar takes the payment, but it doesn't decide what you can see. Its webhook writes a Purchase to our own database, and the site and the MCP Server check access against those Purchases. That keeps access checks fast and means a page view never waits on Polar. It also let earlier buyers come across as plain Purchases, with full access from day one. The webhook is idempotent, so a repeated or replayed notification changes nothing, and a refund revokes access.
On the old site, the paywall was only visual: Paid Component source was shipped to the browser. Now every Component is one Vue file that is both the preview and the copyable source, and the raw source is available to server code only. It only leaves the server after an access check. A test builds the whole site and searches the public output, payloads and client chunks for a line from a Paid Component, and it must find nothing.
The site runs on Nuxt 4.6, Quasar 2.35 and nuxt-quasar-ui 3.1, with Nuxt Content 3 for the docs and this blog. The Nuxt and Quasar setup post shows how the two fit together.
We looked at Docus for the documentation. It is built on Nuxt UI and Tailwind, whose global CSS clashes with Quasar, so it would have needed a separate app. A docs site for a Quasar component library should be built with Quasar, so the documentation stays inside the main app, written in Markdown with Nuxt Content and rendered with Quasar components.
The new site is tested from the outside, the way a visitor, a buyer or an AI client sees it:
Your account and your Purchases came across to the new site. An old All Access purchase is All Access, a Category purchase is Blocks Pro, and a Template purchase is that Template.
Something may still not work the first time. If it doesn't:
If anything is still missing, email us and we'll sort it out.
Browse the Components and copy a Free one, open the Theme Builder and make your theme, or connect your editor to the MCP Server. When you want everything, get All Access.
Launch Offer: 50% off All Access and Blocks Pro for the first 50 buyers. Use code LAUNCH50 at checkout.