Vibeleaderboard
Index / tool
Visit moldui.vercel.app
Category
Developer Tools
Rank
No. 2884Tools index

Previous survey · No. 2761 ·

Pricing
Open Source
Type
TOOL
Use case
Coding
Interfaces
Web
GitHub
20 stars
Latest release
v2.4.2
Date

About

Visual drag-and-drop editor for your real codebase. Click, drag, resize, edit text in the browser — Claude writes the code.

What it does

A local Node command sits in front of whatever dev server you already run, rewrites every HTML page it passes through to add an editing overlay, and lets you nudge, reorder, restyle and retype elements on the live page. Tweaks show up instantly as temporary style overrides. On save, the pending changes are squashed into a small batch and handed to the Claude Code command line in headless mode, which finds the matching components and templates and patches them so hot reload shows the real result.

Why it's ranked here

The architecture is framework-agnostic in a way that holds up in the code: it proxies plain HTML, so any stack that serves pages gets the overlay, and a lookup table of route conventions covers Next.js, Nuxt, SvelteKit, Angular, Vue, Django, Rails and Laravel. It is MIT licensed and ships as a single npx command. The verdict is mixed, though: the manifest in the default branch contains an unresolved merge conflict, and the local control socket accepts file operations without checking origin or path.

What's good

Edit batching is thoughtful. Repeated drags on one element collapse into a single change that keeps the original starting value and the latest end value, and changes that net to zero are dropped, so the model sees a short, clean instruction list. The source lookup ranks candidates sensibly: a matching element id first, then matching visible text, then the route file, then a distinctive class name, while common utility classes are skipped. The overlay lives inside a shadow root, so its styling cannot bleed into your page, and it blocks form submits while active.

Tradeoffs

The package manifest on the default branch contains leftover merge-conflict markers, which makes it invalid JSON, so installing from a clone will fail until that is fixed. The local socket server listens without an origin check, and its reject handler deletes whatever file path the message names, with no check that the path sits inside the batch folder. Auto-apply requires the Claude Code command line; other assistants only get instruction files to apply by hand. Source mapping is heuristic text search capped at ten hits, so pages built from generic markup may map to the wrong file.

How to use it well

Best for a solo developer polishing spacing, copy and ordering on an existing site where finding the right component is the slow part. Keep the default preview step on rather than auto-apply, and read the resulting diff before committing, as the author also advises. Run it only on a trusted machine and close it when finished, since the control socket is reachable by other local pages. Add stable ids to elements you edit often, because ids are the strongest mapping signal. It does not replace a design tool for building new layouts from scratch.

Technical notes+

bin/moldui.js wires a Commander CLI: it detects the dev server port, starts createProxy (src/proxy.js) on a free port from 4444 and createWebSocketHub (src/websocket.js) on the next, debounces incoming changes for 1500 ms, and runs compressChanges before building the prompt with buildSyncPrompt (src/differ.js), which adds px-divided-by-4 Tailwind hints. src/proxy.js deletes accept-encoding, buffers text/html responses and injects the editor script before the closing body tag. src/mapper.js weights id 0.9, text 0.85, route 0.8, class 0.7. The reject handler in bin/moldui.js calls unlinkSync on payload.batchFile unchecked. package.json holds conflict markers inside dependencies. src/inject/editor.js caps its undo stack at 100 entries.

Observed

License
MIT
Language
JavaScript, ES modules, Node 20 or newer
Install surface
npx or global npm install; optional Claude Code plugin
Interfaces
CLI plus a browser overlay injected by a local HTTP proxy
AI dependency
Auto-apply shells out to the Claude Code CLI in headless mode
Manifest state
package.json on the default branch contains unresolved merge-conflict markers
Local socket
WebSocket server with no origin check; reject message deletes the named file path

Read from README.md, package.json, bin/moldui.js, src/index.js, src/proxy.js, src/mapper.js, src/differ.js, src/inject/editor.js, src/websocket.js, LICENSE.

What it can do

  • Edit UI elements through visual drag-and-drop interface

    Mouse interactions (click, drag, resize) on UI components → Modified visual layout and component positioning

  • Generate code from visual UI modifications

    Visual changes made through drag-and-drop editor → Updated source code written by Claude AI

  • Edit text content directly in browser

    Text input typed directly on UI elements → Updated text content in both visual interface and underlying code

  • Resize UI components visually

    Drag gestures on component resize handles → Resized components with corresponding code changes

  • Manipulate existing codebase through visual interface

    Real application codebase and visual interactions → Modified source code files reflecting visual changes

Tags

visual-editorclaudedrag-and-dropdesign-toolslovable-alternative

Tech Stack

Node.js

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.