
Who
I kept paying the WordPress tax.
The other tax: Elementor for layout, Dynamic.ooo when Elementor ran out of road, WooCommerce when something had to sell, a pile of PHP templates that only one agency intern understood, and a publish button that still felt like deploying a missile.
HMS is for operators who already know that stack and are done leasing their content model from it. Marketing teams that need a revision trail and a split-test variant without forking a theme. Builders who are happier in Convex + Clerk + Vite+ than in another page-builder SaaS seat.
If you have ever opened a live URL, winced, and opened a totally different admin URL to fix one sentence, this is for you.
What
I shipped HMS (Hustle Management System). The public site is the product. Pages, posts, products, forms, and templates are block trees stored as JSON. Signed-in, you append ?edit=1 and edit in place. Visitors keep the same URL. That is the whole thesis.
Stack facts from the lockfile, not the README brochure: Vite+ (vp for dev/build/lint/test), React 19, react-router-dom 7, Tailwind 4, shadcn + Base UI, Zod 4 schemas driving Convex tables through zodToConvexFields, Clerk for auth, Resend as a Convex email action. Package version 0.0.0. Public repo under michaelmonetized. Six commits. HEAD 6f8fa73.

The catalog is blunt: Basics, Media, Layout, Proof, Dynamic. Hero, CTA, features, columns, stats, testimonials, FAQ, pricing, logos, collections, menu, search, add-to-cart, cart, forms, document-body. Collections pull pages, posts, products, or media into grid, table, carousel, gallery, or list. and can paint each row with a loop item blueprint.
Blueprints are one kinded table (ADR 0001): component, form, loop-item, template. Templates carry appliesTo. header, footer, 404, search, blog archive/single, shop archive, product single. Tokens like {{site.name}}, {{doc.title}}, {{cart.count}} resolve with modifiers. Visibility groups AND/OR on field, schedule, role, referrer, cookie. Revisions snapshot on content update. Variants sit ready for split tests.
Data layer: local store with seed data for offline/dev; Convex when Clerk + Convex env are real (isLive). Cart lines live in localStorage. Commerce key fields exist on site settings and products. treat full checkout as schema-ready, not a finished money path in this window.

Where
Code lives at github.com/michaelmonetized/hms. No homepage URL is set on the GitHub repo. this pack does not invent a marketing domain. Local path is vp install then vp dev. Manage workspace under /manage/*. Public surfaces: /, /blog, /shop, /search, plus typed entries and slugs.
Audience sits next to every thread still arguing Elementor vs Webflow while the real cost is "two URLs for one sentence." Sibling mail default in the Resend action points at the uncap.us from-address. same operator family.

When
2026-08-12, 11:17 ET. a62d31d initialize. Vite+ scaffold, Max fonts, a full shadcn dump, hero PNG. Two hours later 07e6672 configured.
2026-08-13, 09:40 ET. d95789a needs work. Convex pages, posts, products, media, sites, users. First page-builder. Manage shell routes. The CMS bones.
That evening, 20:57 ET. 2404b20 Ship public site, live editor, revisions, and manage workspace. The thesis lands: the site is the editor.
2026-08-14, 10:34 ET. 12835c6 new page builder. Catalog depth, finder, blueprints, collections, cart, theme templates. Four minutes later 6f8fa73 documents theme templates, search, cart, and library in the changelog. HEAD. Six commits total. Two per day for three days.

Why
I did not want another theme marketplace. I wanted the visitor URL to be the edit surface, with block JSON on Convex, revisions you can restore, and variants you can assign. without opening a separate Elementor canvas that misrepresents the front end.
So I compressed the escape into six commits: scaffold, configure, Convex bones, ship public+editor, deepen the builder, write the changelog. Version 0.0.0 on purpose. The README still talks like tanstack-start and zustand are still named there; the lockfile says Vite+ and react-router-dom. I would rather say that out loud than ship a brochure.
What would you put on the first HMS page: the home hero, the shop archive, or the form that finally emails without a PHP plugin?
