velloo 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -225
- package/THIRD-PARTY-NOTICES.md +3 -3
- package/canvas/assets/index-CcPwhD7W.js +31 -0
- package/canvas/assets/index-CkVteRZ9.css +2 -0
- package/canvas/assets/lucide-all-Cezxn40A.js +1 -0
- package/canvas/index.html +2 -2
- package/{chunk-rjjc9vam.js → chunk-07fxzrx2.js} +2 -2
- package/{chunk-ff0jfn0v.js → chunk-32cq4wpr.js} +1 -1
- package/{chunk-nx09zqgs.js → chunk-3612470d.js} +1 -1
- package/{chunk-hf4adxe0.js → chunk-45wv1fs5.js} +8 -8
- package/chunk-4g4c9h7k.js +2 -0
- package/{chunk-8vgpffn7.js → chunk-6w42sr61.js} +1 -1
- package/{chunk-esb7n55g.js → chunk-8n07n0cr.js} +3 -3
- package/{chunk-96qhpth5.js → chunk-8qf0ne1p.js} +1 -1
- package/{chunk-56z5xd5b.js → chunk-8ztgcajz.js} +1 -1
- package/chunk-9g45c5md.js +815 -0
- package/{chunk-w2naqxqt.js → chunk-aefn23tr.js} +1 -1
- package/{chunk-jsvkqae2.js → chunk-asqpx5v7.js} +1 -1
- package/chunk-b4hny6hw.js +3 -0
- package/chunk-bntsn3wj.js +2 -0
- package/{chunk-bc7pkjcn.js → chunk-c4164x55.js} +1 -1
- package/{chunk-mfch0b0t.js → chunk-cg0sjdqt.js} +1 -1
- package/{chunk-3trkmgfr.js → chunk-cq2q36d1.js} +1 -1
- package/chunk-d19ttv1a.js +4 -0
- package/{chunk-8grzf8q1.js → chunk-djwvt6jx.js} +1 -1
- package/chunk-dqqpbmxt.js +22 -0
- package/{chunk-1td6z6ey.js → chunk-dy7qwj3t.js} +1 -1
- package/{chunk-dar6wbf2.js → chunk-ejpccmcj.js} +1 -1
- package/{chunk-pxaxgkaq.js → chunk-emty5315.js} +1 -1
- package/chunk-esg0x95a.js +5 -0
- package/{chunk-k423dkjz.js → chunk-ez720ked.js} +1 -1
- package/{chunk-h85hv05d.js → chunk-ffm2jpxp.js} +1 -1
- package/{chunk-6813v926.js → chunk-g3k8k6fq.js} +3 -3
- package/{chunk-63y5gdzw.js → chunk-h3ser37q.js} +1 -1
- package/{chunk-74yxy75r.js → chunk-hsk91jms.js} +1 -1
- package/chunk-jxgwdz2r.js +5 -0
- package/chunk-kvq7pcph.js +2 -0
- package/chunk-m0v3d581.js +2 -0
- package/chunk-majd3gx9.js +3 -0
- package/{chunk-t2x3mztc.js → chunk-mqtnj8ws.js} +1 -1
- package/{chunk-xtwx2p9g.js → chunk-mqx96m2g.js} +1 -1
- package/{chunk-c4spp880.js → chunk-nrxqr4v5.js} +1 -1
- package/{chunk-g185gx8a.js → chunk-nx0ex7qw.js} +1 -1
- package/{chunk-qwccndcd.js → chunk-q7wwqn03.js} +1 -1
- package/chunk-qgbat4fv.js +6 -0
- package/{chunk-08mjtg1e.js → chunk-qqagacne.js} +1 -1
- package/{chunk-69qb8p8s.js → chunk-qx83fdv2.js} +1 -1
- package/{chunk-ff2vt7cz.js → chunk-r5y1sh4f.js} +1 -1
- package/{chunk-2ba6edh8.js → chunk-rg86bhtb.js} +2 -2
- package/{chunk-x02z2ccm.js → chunk-rhfzy9c0.js} +1 -1
- package/{chunk-t6qr2ay9.js → chunk-rrrn1mkq.js} +1 -1
- package/{chunk-56vfy0db.js → chunk-s1cwck4c.js} +1 -1
- package/{chunk-tac2wvc7.js → chunk-sjxp2bx3.js} +1 -1
- package/chunk-skk6yvnw.js +3 -0
- package/{chunk-52m26hh4.js → chunk-t08391mh.js} +1 -1
- package/{chunk-2q561dec.js → chunk-t61vyqpd.js} +1 -1
- package/{chunk-ta84ehgg.js → chunk-v6ks5v53.js} +1 -1
- package/{chunk-hjc5eg5c.js → chunk-w30zfv3m.js} +1 -1
- package/{chunk-tbd6wn3q.js → chunk-x84qrz4q.js} +1 -1
- package/{chunk-chtv0yj6.js → chunk-xg49s85z.js} +147 -30
- package/{chunk-8cj4swpr.js → chunk-xxw67jpk.js} +3 -3
- package/{chunk-eqjtq673.js → chunk-yjwtdm71.js} +1 -1
- package/{chunk-8vam2893.js → chunk-z6r6wxm6.js} +1 -1
- package/{chunk-hsfpbjpc.js → chunk-zgwvkgsz.js} +1 -1
- package/cli.js +1 -1
- package/launcher.cjs +3 -1
- package/package.json +1 -1
- package/pkgs/helpers/src/box.tsx +12 -6
- package/pkgs/helpers/src/descriptors.ts +6 -0
- package/pkgs/helpers/src/icon.tsx +5 -3
- package/pkgs/helpers/src/index.ts +2 -2
- package/pkgs/helpers/src/text.tsx +29 -5
- package/pkgs/provider-antd/src/index.ts +1 -0
- package/pkgs/provider-antd/src/manifest.ts +1 -0
- package/pkgs/provider-chakra/src/manifest.ts +1 -0
- package/pkgs/provider-html/src/index.ts +1 -0
- package/pkgs/provider-mui/src/index.ts +10 -0
- package/pkgs/provider-mui/src/manifest.ts +1 -0
- package/pkgs/provider-none/src/components-inline.tsx +20 -14
- package/pkgs/provider-none/src/components.tsx +2 -4
- package/pkgs/provider-none/src/index.ts +1 -0
- package/pkgs/schema/src/board.ts +13 -1
- package/pkgs/schema/src/config.ts +38 -1
- package/pkgs/schema/src/flow.ts +230 -0
- package/pkgs/schema/src/frame.ts +7 -0
- package/pkgs/schema/src/index.ts +24 -0
- package/pkgs/schema/src/node-identity.ts +54 -1
- package/pkgs/schema/src/node.ts +114 -26
- package/pkgs/schema/src/snippet-resolve.ts +18 -12
- package/pkgs/schema/src/svg-sanitize.ts +3 -0
- package/pkgs/schema/src/theme.ts +56 -0
- package/pkgs/schema/src/typeset.ts +21 -4
- package/pkgs/shadcn-snapshot/dist/manifest.json +6 -0
- package/plugins/claude/velloo/agents/velloo-designer.md +7 -4
- package/plugins/claude/velloo/commands/setup.md +13 -0
- package/plugins/gemini/GEMINI.md +9 -5
- package/plugins/gemini/commands/velloo/setup.toml +11 -0
- package/skills/velloo-design/SKILL.md +11 -6
- package/skills/velloo-setup/SKILL.md +179 -36
- package/canvas/assets/index-CnyI3aig.js +0 -29
- package/canvas/assets/index-GNLd0pCG.css +0 -2
- package/canvas/assets/lucide-all-CH8LmVh0.js +0 -1
- package/chunk-1gkeepkm.js +0 -2
- package/chunk-2web93qz.js +0 -2
- package/chunk-ab8fga32.js +0 -22
- package/chunk-azeqkms7.js +0 -6
- package/chunk-e2btp1wd.js +0 -3
- package/chunk-ey65err5.js +0 -5
- package/chunk-rk238m15.js +0 -4
- package/chunk-wfhv9jg4.js +0 -2
- package/chunk-wnj432fw.js +0 -3
- package/chunk-yfvc8d2g.js +0 -716
- package/chunk-z73q4dq9.js +0 -2
- package/chunk-ztsckexy.js +0 -5
package/README.md
CHANGED
|
@@ -7,262 +7,175 @@
|
|
|
7
7
|
</picture>
|
|
8
8
|
</h1>
|
|
9
9
|
|
|
10
|
-
**
|
|
10
|
+
**Give your coding agent a place to design.**
|
|
11
11
|
|
|
12
|
-
Velloo is an open-source, local-first canvas for
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
rendered result, and write the chosen design back into your app while you keep
|
|
16
|
-
the taste and direction.
|
|
12
|
+
Velloo is an open-source, local-first canvas for exploring design with your
|
|
13
|
+
coding agent. Try directions in real components, refine them yourself or with
|
|
14
|
+
feedback from others, then implement the one you believe in.
|
|
17
15
|
|
|
18
16
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
19
17
|
[](https://www.npmjs.com/package/velloo)
|
|
20
18
|
[](https://github.com/velloo-design/velloo/actions/workflows/ci.yml)
|
|
21
19
|
[](https://github.com/velloo-design/velloo/discussions)
|
|
22
20
|
|
|
23
|
-
[Quickstart](#quickstart) · [Documentation](
|
|
21
|
+
[Quickstart](#quickstart) · [Watch the film](https://velloo.design/#walkthrough) · [Documentation](https://velloo.design/docs/) · [Contributing](./CONTRIBUTING.md) · [Discussions](https://github.com/velloo-design/velloo/discussions) · [velloo.design](https://velloo.design)
|
|
24
22
|
|
|
25
23
|
</div>
|
|
26
24
|
|
|
27
25
|
<p align="center">
|
|
28
|
-
<
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
<a href="https://velloo.design/#walkthrough">
|
|
27
|
+
<picture>
|
|
28
|
+
<source media="(prefers-color-scheme: dark)" srcset="./.github/assets/walkthrough-dark.gif">
|
|
29
|
+
<img src="./.github/assets/walkthrough.gif" alt="One real run of a coding agent driving Velloo: three directions for a booking flow from one prompt, notes pinned on the canvas and resolved, the board published to Velloo Cloud, a founder's comments answered in the thread, and the app shipped to match the design" width="100%">
|
|
30
|
+
</picture>
|
|
31
|
+
</a>
|
|
32
32
|
</p>
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
Designs are readable JSON that can live in your repo or outside it. The complete
|
|
43
|
-
solo workflow is local and account-free; Velloo Cloud is optional when you want
|
|
44
|
-
published boards, review links, and comments that return to the canvas.
|
|
45
|
-
|
|
46
|
-
**No Figma seats. No paste-ready JSX you babysit. No translation tax.**
|
|
34
|
+
<p align="center">
|
|
35
|
+
<a href="https://velloo.design/#walkthrough"><b>▶ Watch the 79-second film, with sound</b></a>
|
|
36
|
+
·
|
|
37
|
+
<a href="https://share.velloo.dev/s/db87dafb3d/">Open the board it published</a>
|
|
38
|
+
<br>
|
|
39
|
+
<sub>One real run, nothing mocked: Claude Code driving Velloo 0.6 from a blank folder to a running app.</sub>
|
|
40
|
+
</p>
|
|
47
41
|
|
|
48
|
-
|
|
49
|
-
> migrated by `velloo upgrade`, but expect rough edges and breaking changes
|
|
50
|
-
> before 1.0. Bug reports and design feedback are very welcome.
|
|
42
|
+
---
|
|
51
43
|
|
|
52
44
|
## Quickstart
|
|
53
45
|
|
|
54
|
-
Install the CLI. The npm package pulls an exact official Bun platform binary
|
|
55
|
-
with no install scripts — you don't install or manage Bun yourself:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
npm install -g velloo # or: pnpm add -g velloo
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Prefer a standalone install (macOS and Linux)?
|
|
62
|
-
|
|
63
46
|
```bash
|
|
64
|
-
|
|
47
|
+
npm install -g velloo # or: pnpm add -g velloo
|
|
48
|
+
cd your-app # or an empty folder, to start something new
|
|
49
|
+
velloo init # wizard: reads your routes, components and theme, connects your agent
|
|
50
|
+
velloo run # starts the canvas on http://localhost:7300
|
|
65
51
|
```
|
|
66
52
|
|
|
67
|
-
|
|
53
|
+
Restart your agent so it picks up the MCP config `init` wrote. In an app that
|
|
54
|
+
already exists, the first thing to ask for is setup — once:
|
|
68
55
|
|
|
69
|
-
|
|
70
|
-
cd ~/code/my-shadcn-app
|
|
71
|
-
velloo init # interactive wizard
|
|
72
|
-
velloo run velloo # the design folder it just created
|
|
73
|
-
```
|
|
56
|
+
> "Set up Velloo for this app." (`/velloo:setup` in Claude Code)
|
|
74
57
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
which prints the URL to use.
|
|
58
|
+
The agent imports your theme and real fonts, gets your own components
|
|
59
|
+
rendering on the canvas and checks every one of them, then proposes your
|
|
60
|
+
design language for you to review there. After that, ask for what you came for:
|
|
79
61
|
|
|
80
|
-
|
|
81
|
-
|
|
62
|
+
> "Use Velloo to explore three genuinely different directions for the billing
|
|
63
|
+
> page. Put them side by side on one board, and show me the canvas before you
|
|
64
|
+
> change any application code."
|
|
82
65
|
|
|
83
|
-
|
|
84
|
-
|
|
66
|
+
The agent builds on the canvas and you react to pixels instead of to a diff.
|
|
67
|
+
For the agent to see its own work, install the optional headless browser once
|
|
68
|
+
with `velloo browser install`.
|
|
85
69
|
|
|
86
|
-
|
|
87
|
-
|
|
70
|
+
`init` only creates a design folder and agent configuration; it never changes
|
|
71
|
+
your app's source. The [quickstart guide](https://velloo.design/docs/quickstart/)
|
|
72
|
+
covers the standalone installer, the wizard's choices, and what to do next;
|
|
73
|
+
[Connect an agent](https://velloo.design/docs/agent/connect/) covers every
|
|
74
|
+
supported agent and manual MCP setup.
|
|
88
75
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
component library, and theme, and connects supported coding agents through their
|
|
93
|
-
native MCP configuration and guidance format. It never changes your app source;
|
|
94
|
-
it only creates the design folder and agent configuration.
|
|
76
|
+
> **Status:** early and moving fast. The design-folder format is versioned and
|
|
77
|
+
> migrated by `velloo upgrade`, but expect rough edges and breaking changes
|
|
78
|
+
> before 1.0. Bug reports and design feedback are very welcome.
|
|
95
79
|
|
|
96
|
-
|
|
80
|
+
## Why Velloo
|
|
97
81
|
|
|
98
|
-
|
|
99
|
-
explore alternatives beside it, and compare the result with the running app.
|
|
100
|
-
- **Start from scratch.** Choose your component library, then begin with the
|
|
101
|
-
sample board or a blank canvas for a new screen or product idea.
|
|
102
|
-
- **Work from a live page.** Capture a public or authenticated page when the
|
|
103
|
-
useful starting point is a browser rather than a route in the current app.
|
|
82
|
+
**Making things got cheap. Deciding what to make did not.**
|
|
104
83
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
84
|
+
Exploring alternatives and refining them with feedback is how good design has
|
|
85
|
+
always worked. What changed is where screens start: in a code editor, with an
|
|
86
|
+
agent, often before anyone has talked about the design. When the first working
|
|
87
|
+
interface arrives looking finished, that conversation is easy to skip.
|
|
108
88
|
|
|
109
|
-
|
|
89
|
+
Velloo brings it to the repository and the agent you already use, so it can
|
|
90
|
+
happen before the code lands.
|
|
110
91
|
|
|
111
|
-
|
|
112
|
-
source of truth. When you want feedback from someone else, sign in and publish a
|
|
113
|
-
board from the canvas or the CLI:
|
|
92
|
+
## How it works
|
|
114
93
|
|
|
115
|
-
|
|
116
|
-
velloo login
|
|
117
|
-
velloo publish velloo
|
|
118
|
-
```
|
|
94
|
+
The loop the film shows:
|
|
119
95
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
## Features
|
|
130
|
-
|
|
131
|
-
- **Existing-screen redesign.** Start from a React or HTML route, or a captured
|
|
132
|
-
authenticated page, recreate a faithful baseline, explore alternatives, and
|
|
133
|
-
compare against the running product at the same viewport.
|
|
134
|
-
- **Real components, not approximations.** Components come from a
|
|
135
|
-
`ComponentProvider`, so the design folder stays pure data. For shadcn,
|
|
136
|
-
client-safe files from your app mount directly in the canvas; portal- and
|
|
137
|
-
state-heavy families are explicitly adapted; compile failures fall back per
|
|
138
|
-
component with diagnostics.
|
|
139
|
-
- **React and HTML/htmx adapters.** shadcn + Tailwind, Material UI, Ant Design,
|
|
140
|
-
Chakra UI, and no-library React render through their own adapters. The HTML
|
|
141
|
-
adapter previews live server fragments and emits native HTML.
|
|
142
|
-
- **Visual verification.** The agent inspects rendered nodes, takes screenshots,
|
|
143
|
-
diffs against a live URL, and fixes what it sees instead of guessing from code.
|
|
144
|
-
- **Board → Screen → Frame.** One design folder holds many boards; frames that
|
|
145
|
-
share a screen stay in sync, so a mobile and a desktop frame are one edit.
|
|
146
|
-
- **A real MCP surface.** Discovery, focused tree mutations, themes, screenshots,
|
|
147
|
-
comparison, comments, and agent-consumed implementation IR — plus bundled
|
|
148
|
-
skills for brand, design systems, logos, and design-to-code.
|
|
149
|
-
- **Optional collaboration.** Create a team, publish a board, share externally,
|
|
150
|
-
and pull review comments back into the local canvas.
|
|
151
|
-
|
|
152
|
-
## Requirements
|
|
153
|
-
|
|
154
|
-
| | |
|
|
155
|
-
|---|---|
|
|
156
|
-
| **OS** | macOS (arm64, x64), Linux (arm64, x64; glibc and musl), and Windows (x64, arm64) through npm. The standalone installer is macOS and Linux only. |
|
|
157
|
-
| **Your app** | React (shadcn + Tailwind, MUI, Ant Design, Chakra, or no-library) or a server-rendered HTML/htmx app. |
|
|
158
|
-
| **Screenshots** | Optional headless Chromium, one command away (below). |
|
|
96
|
+
1. **Explore.** One prompt, several directions, composed on the canvas from
|
|
97
|
+
real components and checked by the agent against its own screenshots.
|
|
98
|
+
2. **Refine.** Pin comments on the one you like. The agent addresses them and
|
|
99
|
+
replies in the thread, or you tune props and styles yourself.
|
|
100
|
+
3. **Publish and review** *(optional)*. Send a board to Velloo Cloud. Anyone
|
|
101
|
+
with the link comments in a browser, and their notes return to your canvas.
|
|
102
|
+
4. **Ship.** The agent reads the chosen screen as framework-native output,
|
|
103
|
+
writes real application code, and compares the running app to the design.
|
|
159
104
|
|
|
160
|
-
|
|
105
|
+
Under the canvas, each screen is a readable JSON tree of components, props, and
|
|
106
|
+
styles in a folder you own. You see the interface; your agent reads the same
|
|
107
|
+
structure, which is how it makes precise changes and carries a design into
|
|
108
|
+
code. [Concepts →](https://velloo.design/docs/concepts/)
|
|
161
109
|
|
|
162
|
-
|
|
163
|
-
tool (so it can *see* a design) and `velloo render <screen> --to=out.png`. The
|
|
164
|
-
canvas, editing, `publish`, `emit`, and everything else work without it. Install
|
|
165
|
-
it anytime (one-time, ~150 MB):
|
|
110
|
+
## Ways to use Velloo
|
|
166
111
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
112
|
+
- **Start from scratch.** No app required. Pick a component library, then
|
|
113
|
+
design a new product from the sample board or a blank canvas, as the film
|
|
114
|
+
does. [Design a screen →](https://velloo.design/docs/guides/design-a-screen/)
|
|
115
|
+
- **Redesign an existing screen.** Recreate a route as a faithful baseline,
|
|
116
|
+
explore alternatives beside it, and compare with the running app.
|
|
117
|
+
[Port an existing page →](https://velloo.design/docs/guides/port-a-page/)
|
|
118
|
+
- **Work from a live page.** Capture a public or signed-in page with
|
|
119
|
+
`velloo capture` when the starting point is a browser, not a route.
|
|
120
|
+
- **Act on feedback.** Hand the agent the open comments, local or from a
|
|
121
|
+
published link. [Velloo Cloud →](https://velloo.design/docs/cloud/)
|
|
122
|
+
- **Implement the chosen design.** Turn a screen into code in your app's
|
|
123
|
+
conventions. [From design to code →](https://velloo.design/docs/guides/emit/)
|
|
172
124
|
|
|
173
|
-
|
|
125
|
+
For the thinking behind this way of working, read
|
|
126
|
+
[Why I created Velloo](https://velloo.design/blog/why-i-created-velloo/).
|
|
174
127
|
|
|
175
|
-
|
|
176
|
-
repo-root **`velloo.json`** lists where the repo's designs are (several can
|
|
177
|
-
coexist in a monorepo). Every design-taking command accepts a design name or a
|
|
178
|
-
path, and resolves through `velloo.json` when you pass nothing. With several
|
|
179
|
-
designs, a connected agent is told which one it is on and can switch between them.
|
|
180
|
-
Commands that take something else as their argument, like `emit <screen>`, take
|
|
181
|
-
the design as `--design`.
|
|
128
|
+
## Works with your stack
|
|
182
129
|
|
|
183
|
-
|
|
|
130
|
+
| Your app | How it's styled and emitted |
|
|
184
131
|
|---|---|
|
|
185
|
-
|
|
|
186
|
-
|
|
|
187
|
-
|
|
|
188
|
-
|
|
|
189
|
-
|
|
|
190
|
-
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
Run `velloo init --library html --initial-content scan` from a server-rendered
|
|
211
|
-
app (Flask, FastAPI, Django, Rails, Laravel, …), or choose **HTML + htmx** in the
|
|
212
|
-
wizard; `init` picks it on its own for an app with templates and no React.
|
|
213
|
-
Velloo scans its routes into placeholder screens and copies the stylesheets its
|
|
214
|
-
templates link (`hostApp.stylesheets`) from the app's source into the design's
|
|
215
|
-
`assets/host/`. A design never contacts the running app: it is a fixed picture
|
|
216
|
-
that looks the same to everyone who opens it, with or without the app. To
|
|
217
|
-
reproduce a page, capture it from the running app with a capture session (you
|
|
218
|
-
sign in in a separate browser if it needs it) and have the agent rebuild it
|
|
219
|
-
from the capture. CSS that only exists once the app is built comes from the
|
|
220
|
-
capture too (`store_host_files`).
|
|
221
|
-
|
|
222
|
-
Use `Html` nodes with semantic `as` tags, native attributes, and `hx-*` props.
|
|
223
|
-
The canvas never fires the `hx-*` attributes; `emit_code` keeps them and
|
|
224
|
-
returns HTML with the classes and routes it relies on, `velloo emit <screen> --to
|
|
225
|
-
page.html` writes native markup for a template, and `emit_theme` writes the CSS
|
|
226
|
-
custom properties that inline styles reference. Integrate the markup with your
|
|
227
|
-
server's template language and handlers; Velloo does not generate server routes.
|
|
228
|
-
|
|
229
|
-
## Local-first by default
|
|
230
|
-
|
|
231
|
-
The local tool is free, complete, account-free, and telemetry-free.
|
|
232
|
-
|
|
233
|
-
The CLI makes exactly one anonymous request outside the solo loop: at most daily,
|
|
234
|
-
a detached check reads the public npm release version and caches it locally. It
|
|
235
|
-
sends no project or account data, and `VELLOO_DISABLE_UPDATE_CHECK=1` turns it
|
|
236
|
-
off. Everything else that touches the network is opt-in and gated behind an
|
|
237
|
-
explicit `velloo login`:
|
|
238
|
-
|
|
239
|
-
- `velloo login` / `velloo publish` — publish boards to a personal or team
|
|
240
|
-
workspace and create external review links
|
|
241
|
-
- comment tools — read and resolve team and external-review feedback
|
|
242
|
-
- `generate_asset` — hosted image/SVG generation, metered against your credits
|
|
243
|
-
- `send_feedback` — agent-side product feedback, only when enabled in the folder
|
|
244
|
-
config
|
|
245
|
-
|
|
246
|
-
You choose when — and whether — to use any of them.
|
|
132
|
+
| **shadcn/ui + Tailwind** | Your own component files, Tailwind `className` |
|
|
133
|
+
| **Material UI** | Real `@mui/material`, the `sx` prop |
|
|
134
|
+
| **Ant Design** | Real antd components, inline `style` |
|
|
135
|
+
| **Chakra UI** | Real Chakra v2 components, `sx` |
|
|
136
|
+
| **No-library React** | Plain HTML primitives, Tailwind or inline `style` |
|
|
137
|
+
| **HTML + htmx** | Your app's CSS, native markup with `hx-*` ([guide](https://velloo.design/docs/guides/html/)) |
|
|
138
|
+
| **Anything else your app renders** | Mantine, a private design system, your own `components/` ([how](https://velloo.design/docs/concepts/repository-components/)) |
|
|
139
|
+
|
|
140
|
+
It connects over MCP to Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI,
|
|
141
|
+
OpenCode, Windsurf, and other MCP clients, and runs on macOS, Linux, and
|
|
142
|
+
Windows. [Framework-native, in depth →](https://velloo.design/docs/concepts/frameworks/)
|
|
143
|
+
|
|
144
|
+
## Local-first, cloud optional
|
|
145
|
+
|
|
146
|
+
The local tool is free, complete, account-free, and telemetry-free. The only
|
|
147
|
+
request it makes on its own is an anonymous, at-most-daily check of the public
|
|
148
|
+
npm release version (`VELLOO_DISABLE_UPDATE_CHECK=1` turns it off).
|
|
149
|
+
|
|
150
|
+
[Velloo Cloud](https://velloo.design/docs/cloud/) is the opt-in half, behind an
|
|
151
|
+
explicit `velloo login`: published boards, review links, comments that return
|
|
152
|
+
to your canvas, and hosted asset generation. `velloo publish` uploads what your
|
|
153
|
+
machine rendered; the cloud never executes your app code. Reviewers need no
|
|
154
|
+
install, repo access, or paid seat. Plans are on the
|
|
155
|
+
[pricing page](https://velloo.design/pricing/).
|
|
247
156
|
|
|
248
157
|
## Documentation
|
|
249
158
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
159
|
+
**[velloo.design/docs](https://velloo.design/docs/)** has the guides, concepts,
|
|
160
|
+
and reference:
|
|
161
|
+
[CLI](https://velloo.design/docs/reference/cli/) ·
|
|
162
|
+
[MCP tools](https://velloo.design/docs/reference/mcp/) ·
|
|
163
|
+
[Design folder](https://velloo.design/docs/concepts/design-folder/) ·
|
|
164
|
+
[Themes](https://velloo.design/docs/guides/theme/) ·
|
|
165
|
+
[What's new](https://velloo.design/docs/whats-new/) ·
|
|
166
|
+
[FAQ](https://velloo.design/#faq)
|
|
167
|
+
|
|
168
|
+
For how Velloo itself is built, see [`docs/`](./docs): the
|
|
169
|
+
[architecture](./docs/architecture.md), the [MCP surface](./docs/mcp.md),
|
|
170
|
+
[writing a framework adapter](./docs/providers.md), and
|
|
171
|
+
[designs kept outside the repo](./docs/external-local-design-folders.md).
|
|
257
172
|
|
|
258
173
|
## Contributing
|
|
259
174
|
|
|
260
175
|
Contributions are welcome — bug reports, adapters, docs, and design feedback
|
|
261
176
|
alike. [`CONTRIBUTING.md`](./CONTRIBUTING.md) covers setup and the checks we
|
|
262
|
-
expect to be green; [`AGENTS.md`](./AGENTS.md) explains the
|
|
263
|
-
invariants before you change anything
|
|
264
|
-
|
|
265
|
-
The short version:
|
|
177
|
+
expect to be green; [`AGENTS.md`](./AGENTS.md) explains the package layout and
|
|
178
|
+
the architecture invariants before you change anything foundational.
|
|
266
179
|
|
|
267
180
|
```bash
|
|
268
181
|
bun install # also builds the snapshot manifest
|
|
@@ -275,23 +188,6 @@ bun run verify # typecheck + lint + knip + tests
|
|
|
275
188
|
Good first issues are labelled
|
|
276
189
|
[`good first issue`](https://github.com/velloo-design/velloo/labels/good%20first%20issue).
|
|
277
190
|
|
|
278
|
-
### Repo layout
|
|
279
|
-
|
|
280
|
-
Velloo is a Bun-workspaces monorepo with one-way dependencies:
|
|
281
|
-
|
|
282
|
-
| Package | Responsibility |
|
|
283
|
-
|---|---|
|
|
284
|
-
| `packages/schema` | Zod schemas + TS types for the on-disk design-folder format |
|
|
285
|
-
| `packages/protocol` | The wire contract: mutation arguments, typed errors, watch events |
|
|
286
|
-
| `packages/provider` | The `ComponentProvider` / `FrameworkAdapter` interface |
|
|
287
|
-
| `packages/provider-*` | shadcn, MUI, Ant Design, Chakra, no-library, and HTML/htmx adapters |
|
|
288
|
-
| `packages/shadcn-snapshot` | Pinned canvas-safe shadcn fallback, embedded in the binary |
|
|
289
|
-
| `packages/renderer` | Design JSON → HTML (and PNG via Playwright) |
|
|
290
|
-
| `packages/codegen` | Agent-consumed IR + theme emitters |
|
|
291
|
-
| `packages/server` | HTTP + MCP + mutations + theme + watcher |
|
|
292
|
-
| `packages/canvas` | Vite/React canvas UI |
|
|
293
|
-
| `packages/cli` | The `velloo` binary |
|
|
294
|
-
|
|
295
191
|
## Community and support
|
|
296
192
|
|
|
297
193
|
- **Questions, ideas, show-and-tell** →
|
package/THIRD-PARTY-NOTICES.md
CHANGED
|
@@ -200,7 +200,7 @@ archives.
|
|
|
200
200
|
| `framer-motion` | 12.42.2 | bundled | © 2018 Framer B.V | https://github.com/motiondivision/motion/ |
|
|
201
201
|
| `framesync` | 6.1.2 | bundled | © 2019 Framer BV | https://github.com/Popmotion/popmotion |
|
|
202
202
|
| `get-nonce` | 1.0.1 | bundled | © 2020 Anton Korzunov | https://github.com/theKashey/get-nonce |
|
|
203
|
-
| `hono` | 4.13.
|
|
203
|
+
| `hono` | 4.13.7 | bundled | © 2021 - present, Yusuke Wada and Hono contributors | https://github.com/honojs/hono |
|
|
204
204
|
| `html-tokenize` | 2.0.1 | bundled | © James Halliday | https://github.com/substack/html-tokenize |
|
|
205
205
|
| `isarray` | 0.0.1 | bundled | © 2013 Julian Gruber | https://github.com/juliangruber/isarray |
|
|
206
206
|
| `isarray` | 1.0.0 | bundled | © 2013 Julian Gruber | https://github.com/juliangruber/isarray |
|
|
@@ -297,10 +297,10 @@ archives.
|
|
|
297
297
|
|---|---|---|---|---|
|
|
298
298
|
| `diff` | 9.0.0 | bundled | © 2009-2015, Kevin Decker | https://github.com/kpdecker/jsdiff |
|
|
299
299
|
| `duplexer2` | 0.1.4 | bundled | © 2013, Deoxxa Development | https://github.com/deoxxa/duplexer2 |
|
|
300
|
-
| `fast-uri` | 3.1.
|
|
300
|
+
| `fast-uri` | 3.1.8 | bundled | © 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae; © 2021-present The Fastify team | https://github.com/fastify/fast-uri |
|
|
301
301
|
| `hoist-non-react-statics` | 3.3.2 | bundled | © 2015, Yahoo! Inc | https://github.com/mridgway/hoist-non-react-statics |
|
|
302
302
|
| `react-transition-group` | 4.4.5 | bundled | © 2018, React Community; © 2013-present, Facebook, Inc | https://github.com/reactjs/react-transition-group |
|
|
303
|
-
| `source-map-js` | 1.2.
|
|
303
|
+
| `source-map-js` | 1.2.2 | installed | © 2009-2011, Mozilla Foundation and contributors | https://github.com/7rulnik/source-map-js |
|
|
304
304
|
| `zrender` | 6.1.0 | bundled | © 2017, Baidu Inc | https://github.com/ecomfe/zrender |
|
|
305
305
|
|
|
306
306
|
### ISC
|