Last month I needed a signup page for a weekend ceramics workshop — 12 seats, first come first served, and I wanted to drop the link into three group chats and pin it in a Discord. The catch: every builder I tried either gated the page behind "sign in to view" or handed me a URL that only rendered inside their own app. Fine for a portfolio. Useless for a group chat. A friend shoved me toward x-rush's text module. Five minutes later I had a live link that opened for anyone — no account, no app, no friction. Here's the exact path, buttons and all.
The problem, stated plainly
I run small in-person workshops. My marketing is, charitably, "I tell people in chats." So when I need a page, I need one thing above all: a URL that just works for whoever clicks it. Not "works if they register." Not "works in our app." Works.
Most "free landing page" tools fail this in one of two ways. Either the published link throws a login wall (because free tier equals gated), or it's a preview link that breaks the moment you close the tab. I'd burned a Saturday on two of them before I gave up and asked around. The answer came back the same each time: "try x-rush, the text module." So I did.
Step 1: Pick a starting point
Open /workbench/text/html. The whole page is keyed to one color — #00D4AA, a teal that shows up on every active tab and button. Sounds cosmetic, but it's a fast way to confirm you're in the right place.
You get two routes. Use Template forks something from the library — 12 categories, each with a count badge, plus a Featured row of Editor's Picks and a Recently Used strip. Hit ⌘K to focus the search box and type a few letters. + Create from Scratch is the AI route: a prompt, a type (landing / product / blog / personal / portfolio / game), a style (modern / minimal / cyber / glass), and feature toggles (responsive, dark-mode, animations, contact-form, seo, icons).
For the workshop I went template. Clicked Preview on a "Product Hero" card — a fullscreen modal, not a cramped side panel — and flipped through the four device tabs: Desktop, Tablet (768px), Mobile (375px), and Code (raw source). The pixel widths are fixed on purpose; 768 and 375 are the breakpoints the templates were designed against, so what you see is what ships. Mobile looked clean. I hit Use Template. It forked the template into a fresh workspace and bounced me straight into the editor.
Step 2: Make it yours
The editor runs in "clean mode" — no sidebar clutter, just the work. Four zones: a file tree on the left (new file, upload assets, right-click for rename/delete/copy, drag to reorder), Monaco in the center (same engine as VS Code, so your muscle memory carries over), an AI assistant panel on the right, and a live preview iframe at the bottom that refreshes on save.
I clicked the headline placeholder, typed "Wheel-Throwing Weekend," and the preview updated before my finger left the key. No rebuild spinner. That's the small hit that keeps you going — you stop wondering "will this render" and just type.
Then the part I always dread: a signup form. I don't write forms often enough to remember the right input types, and hand-styling validation is how evenings disappear. So I opened the AI panel and typed: "add a signup form below the hero — name, email, seat count 1 to 2, validate email, submit shows a confirmation."
Here's what surprised me. The assistant said it was reading my current file first, then came back with a diff — green for added, red for removed, the way git shows it. Not a wall of code dumped on me. I could read exactly what changed, line by line. I hit Apply. The form appeared in the preview, the email validation worked, and I hadn't written a line.
Didn't like the field spacing on a follow-up edit? Hit Reject, then Ctrl+Z a couple times — and I was back at the clean original template. Every fork starts from an undoSnapshot, so the AI genuinely cannot brick your starting point. That's the line between "AI edits your file" and "AI edits your file safely." A lot of tools nail the first half and skip the second.
One thing I check religiously: the console error count badge on the preview. If it reads anything above zero, fix it before you keep going — a single uncaught error can quietly break downstream scripts, and the visual preview won't always show it. Zero is the bar.
Step 3: Publish — and the part that actually mattered to me
Cmd+S to save (a dot lights up next to the workspace name when there's unsaved work — your "dirty" indicator). Then Publish.
A toast. A URL: x-rush.ai/p/ceramics-7f3a.
This is the whole reason I'm writing this. That URL is completely independent. I opened it in an incognito window — no login. Texted it to a friend — opened fine on her phone. Dropped it in the Discord — rendered inline. And because it's plain HTML, I could embed it in an iframe inside a Notion doc for the studio's internal calendar. Try that with a "view in our app" link.
Two details that sold me on staying:
- Take it down, republish later, the URL doesn't change. When the workshop filled, I pulled the page offline so the link wouldn't show a sold-out form forever. A week later I ran the same workshop again, hit Publish, and the original link — the one already pinned in three chats — just worked. No "update your bookmarks" message to 40 people.
- Version history keeps your last 10 publish snapshots. I bungled the button colors on a republish, opened the version panel, previewed the earlier snapshot, and restored it. Restoring doesn't delete your current state — it makes a new snapshot — so you can A/B two published versions without losing either.
Pro tips I picked up the hard way
- Apply AI diffs aggressively, undo just as aggressively. Because
undoSnapshotalways returns you to the clean fork, the cost of a bad apply is one keystroke. Don't babysit the assistant. - Switching templates with unsaved work pops a
ConfirmSwitchModal. Read it before you click — the default is not "discard," which has saved me more than once. - Version history is publish-snapshots only, most recent 10. If you need to keep more, publish intentionally rather than relying on autosave.
- Edit on desktop. Under 768px a
MobileEditorGuardtells you to switch — and it's right. Code editing on a 375px screen is a bad time. - Browse the Explore page. Other users' published work is forkable, and when someone forks yours they see a
ForkedBannercrediting your workspace. I found a better starting point through Explore than through the category tabs.
What's actually generating the page
One paragraph, because it matters and nobody explains it. x-rush is wired into the industry's top text models — Claude Fable 5, GPT-5.6, Gemini 3.5, Qwen3.7 Max — and smart-routes each task to whichever fits best. The from-scratch generation, the editor's diff assistant, and (if you loop in the chat module) the conversation replies all draw from this same pool. The diff felt instant because routing picks a fast model for a small page edit; a full "rewrite this whole section" takes longer, and the router handles that too. The pool refreshes as the world moves — whatever ships next, the router uses it where it wins. You don't pick a model. You hit a button.
Where to go deeper
If the five-minute version landed, the docs go further than I have room for:
- Smart page generator — the full T-1 surface: template library, the fork-vs-generate decision, the editor, and version history.
- Text module overview — how T-1, T-2 (Auto Content), and T-3 (AI Chat) chain together.
- Auto content generator — the daily-push system that feeds ideas into pages.
- AI characters & chat — building custom agents when you want to go deeper than a one-off page.
I came in needing one link that wouldn't embarrass me in a group chat. I stayed because the URL doesn't break when I take the page down and bring it back. Your workshop probably isn't ceramics — but if you've ever cursed a "sign in to view" wall, five minutes is a cheap way to never see one again.