vibespot 1.3.1 → 1.5.1
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 +79 -241
- package/assets/readme/00-hero-banner.png +0 -0
- package/assets/readme/00-hero-banner.svg +59 -0
- package/assets/readme/01-vibe-coding-hero.png +0 -0
- package/assets/readme/02-plan-mode.png +0 -0
- package/assets/readme/03-figma-import.png +0 -0
- package/assets/readme/04-multi-page-sites.png +0 -0
- package/assets/readme/05-inline-wysiwyg.png +0 -0
- package/assets/readme/06-hubspot-upload.png +0 -0
- package/dist/index.js +388 -388
- package/dist/index.js.map +1 -1
- package/package.json +7 -3
- package/ui/dashboard.js +4 -3
- package/ui/docs/index.html +144 -4
- package/ui/docs/screenshots/module-overview-slideout.png +0 -0
- package/ui/docs/screenshots.zip +0 -0
- package/ui/index.html +26 -21
- package/ui/settings.js +90 -18
- package/ui/docs/screenshots/asset-type-cards.png +0 -0
- package/ui/docs/screenshots/deploy-progress.png +0 -0
- package/ui/docs/screenshots/email-client-preview.png +0 -0
- package/ui/docs/screenshots/pipeline-progress.png +0 -0
- package/ui/docs/screenshots/project-overview-table.png +0 -0
package/README.md
CHANGED
|
@@ -1,285 +1,123 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/readme/00-hero-banner.svg" alt="vibeSpot — Build HubSpot landing pages with AI" width="100%">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.npmjs.com/package/vibespot"><img src="https://img.shields.io/npm/v/vibespot?style=flat&color=e8613a&labelColor=1f2937" alt="npm version"></a>
|
|
7
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-FSL--1.1--Apache--2.0-e8613a?style=flat&labelColor=1f2937" alt="License"></a>
|
|
8
|
+
<img src="https://img.shields.io/badge/node-%E2%89%A518-e8613a?style=flat&labelColor=1f2937" alt="Node 18+">
|
|
9
|
+
<a href="https://vibespot.letsplaywith.tech"><img src="https://img.shields.io/badge/site-vibespot.letsplaywith.tech-e8613a?style=flat&labelColor=1f2937" alt="Website"></a>
|
|
10
|
+
</p>
|
|
4
11
|
|
|
5
|
-
|
|
6
|
-
|
|
12
|
+
<p align="center"><b>Build HubSpot landing pages with AI.</b></p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
Describe what you want in plain English — or paste a Figma URL. vibeSpot generates a native HubSpot theme: editable modules, real fields, your design tokens. Local-first. Your keys, your portal, your code.
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<img src="assets/readme/01-vibe-coding-hero.png" alt="vibeSpot — chat on the left, live preview on the right" width="100%">
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
## Quickstart
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx vibespot
|
|
7
26
|
```
|
|
8
27
|
|
|
9
|
-
|
|
10
|
-
**LinkedIn:** [myvibespot](https://www.linkedin.com/company/myvibespot/)
|
|
28
|
+
A browser opens. Pick an AI engine, drop in an API key, describe your page. That's the whole product.
|
|
11
29
|
|
|
12
|
-
|
|
30
|
+
Requires Node.js 18+. No HubSpot CLI install needed — vibeSpot talks to HubSpot directly via API.
|
|
13
31
|
|
|
14
|
-
##
|
|
32
|
+
## The tour
|
|
15
33
|
|
|
16
|
-
|
|
34
|
+
### 1. Talk to it. Ship a HubSpot page.
|
|
17
35
|
|
|
18
|
-
|
|
36
|
+
<img src="assets/readme/01-vibe-coding-hero.png" alt="Chat-driven page generation with live preview" width="100%">
|
|
19
37
|
|
|
20
|
-
|
|
38
|
+
Type what you want on the left. Watch real HubSpot modules render on the right — Split, Plan, and Code views, all live. A four-stage agentic pipeline (Intent → Architect → Module Developer → Quality Check) generates modules in parallel and auto-fixes common HubL issues before they reach you.
|
|
21
39
|
|
|
22
|
-
|
|
23
|
-
npx vibespot
|
|
24
|
-
```
|
|
40
|
+
### 2. Deliberate before you generate — Plan mode
|
|
25
41
|
|
|
26
|
-
|
|
27
|
-
- **Chat on the left** — describe your landing page in natural language
|
|
28
|
-
- **Live preview on the right** — see your page render in real-time, with Split, Plan, and Code views
|
|
29
|
-
- **Agentic pipeline** — multi-stage AI generation with real-time progress
|
|
30
|
-
- **Multi-page sites** — create full HubSpot sites from a single prompt with shared header/footer, per-page layouts, and cross-page navigation validation
|
|
31
|
-
- **Inline WYSIWYG editing** — click text, images, and links directly in the live preview to edit them inline
|
|
32
|
-
- **Per-section visual controls** — hover any module for a floating toolbar with color pickers, spacing sliders, image swap, and font size controls
|
|
33
|
-
- **Plan mode** — toggle on to deliberate before generating: the AI asks elicitation questions, builds a markdown plan in a resizable sidebar, and only generates after you approve. Pre-canned plan templates for common page types skip the cold-start phase.
|
|
34
|
-
- **Onboarding walkthrough** — 3-step intro for first-time users covering what vibeSpot is, how it maps to HubSpot, and a guided first prompt
|
|
35
|
-
- **Workspace tabs** — Pages, Brand, Library, Marketplace, Settings tabs organize the dashboard. Brand tab includes a live visual preview of your brand kit.
|
|
36
|
-
- **Project sidebar** — create, open, resume, or delete projects; page tree shows all templates with type badges and module counts
|
|
37
|
-
- **Module management** — reorder via drag-and-drop, edit fields, delete modules from module list or module library
|
|
38
|
-
- **Starter templates** — SaaS, Portfolio, Restaurant, Event, Coming Soon, Blog — pre-built page bundles for instant preview with no AI wait
|
|
39
|
-
- **Content types** — landing pages, email templates, and blog templates all supported from asset-type cards and the page type dropdown
|
|
40
|
-
- **Email client preview** — renders your email in Gmail, Outlook Desktop, and Apple Mail with per-client rendering notes
|
|
41
|
-
- **Split-pane view** — preview + code editor side by side in a 50/50 layout
|
|
42
|
-
- **Project overview table** — sortable table with page, email, module, and brand asset counts per project, plus bulk duplicate/delete
|
|
43
|
-
- **Brand kit enforcement** — colors, fonts, and logo are injected as constraints into AI generation; validator warns on off-brand values
|
|
44
|
-
- **Interact mode** — unified mode that auto-detects whether you're editing content inline or referencing modules in chat
|
|
45
|
-
- **Undo/redo** — Ctrl+Z / Ctrl+Y step through version history; a compact timeline strip shows every generation step
|
|
46
|
-
- **Smart suggestions** — contextual suggestion chips appear after pipeline completion, filtered by existing modules
|
|
47
|
-
- **From Figma** *(Beta)* — paste a Figma URL to extract design tokens, text, and assets, then generate a full page that translates the design verbatim
|
|
48
|
-
- **From React** *(Beta)* — convert existing React/Lovable projects from a Git URL
|
|
49
|
-
- **From HubSpot** — fetch an existing theme, then run inverse analysis to extract design tokens, module graph, and round-trip risks
|
|
50
|
-
- **Field editor** — tweak text, colors, images directly
|
|
51
|
-
- **File uploads** — attach images and documents via drag-and-drop or paperclip button
|
|
52
|
-
- **Upload to HubSpot** — per-file progress, auto-fix, celebration popup with direct portal link
|
|
53
|
-
- **Version history** — per-template git commits with rollback in a collapsible bottom panel
|
|
54
|
-
- **Light/dark mode** — toggle or auto-detect system preference
|
|
55
|
-
- **Tabbed settings** — AI engines (with extended-thinking toggle), HubSpot accounts, Figma, GitHub, vibeSpot config
|
|
56
|
-
- **Mobile responsive** — tablet breakpoint collapses the rail; sub-768px shows a gate dialog
|
|
57
|
-
- **ZIP download** — export your theme as a ZIP file
|
|
58
|
-
|
|
59
|
-
### Agentic Pipeline
|
|
60
|
-
|
|
61
|
-
When you send a message, vibeSpot runs a 4-stage pipeline:
|
|
62
|
-
|
|
63
|
-
1. **Intent Analyzer** — classifies your request and plans which modules to create, modify, or keep unchanged. Uses conversation history to resolve back-references ("same section") and corrections ("I meant the hero").
|
|
64
|
-
2. **Page Architect** — designs the visual system (CSS variables, shared styles) then plans module specs. Reports font limitations when web fonts are requested.
|
|
65
|
-
3. **Module Developer** — generates all modules in parallel (up to 20 concurrent)
|
|
66
|
-
4. **Quality Check** — auto-fixes common issues (unbalanced HubL tags, reserved field names, deprecated types, CDN imports). Verifies all modules are in the page order.
|
|
67
|
-
|
|
68
|
-
Completed modules appear in the live preview immediately as each finishes, with themed skeleton placeholders for modules still generating.
|
|
69
|
-
|
|
70
|
-
### Plan Mode
|
|
71
|
-
|
|
72
|
-
Plan mode is a deliberation phase that runs *before* any code is generated. Toggle it from the prominent **Plan Mode** pill above the chat input. While active:
|
|
73
|
-
|
|
74
|
-
- The AI asks elicitation questions to surface gaps in your brief: who's the audience, what's the primary CTA, what sections should the page have, what's the brand voice.
|
|
75
|
-
- Each response builds up a markdown plan, persisted to `{theme}/.vibespot/plan.md` and rendered in a dedicated **Plan** tab in the right pane.
|
|
76
|
-
- The AI may emit clickable answer chips for common questions (e.g. "What's your primary goal? [Lead capture] [Sign-ups] [Demo bookings]") to keep the conversation fast.
|
|
77
|
-
- You can **edit the plan inline** (pencil icon → textarea → Save) — refinements without typing chat messages.
|
|
78
|
-
- Generation is **hard-gated**: the agentic pipeline is refused while plan mode is on. The only way to generate is the explicit **Approve plan** button, which prepends the plan to the user message as a design brief and runs the pipeline against the approved spec.
|
|
79
|
-
- **Discard & start over** clears the plan and exits plan mode.
|
|
80
|
-
|
|
81
|
-
Plan mode is ideal when:
|
|
82
|
-
- You're starting from a vague brief and want the AI to help you scope the page.
|
|
83
|
-
- Multiple stakeholders need to review the plan before code is generated.
|
|
84
|
-
- You're generating a high-stakes page and want to control content/structure decisions explicitly.
|
|
85
|
-
|
|
86
|
-
When plan mode is off, vibeSpot generates immediately — the existing fast path. Mode state persists across sessions.
|
|
87
|
-
|
|
88
|
-
### Figma Import (Beta)
|
|
89
|
-
|
|
90
|
-
Translate a Figma design into a HubSpot CMS theme without re-implementing it. The pipeline preserves the design's exact colors, typography, copy, and section order — the AI is only used to translate each section to HubL, not to make creative decisions.
|
|
91
|
-
|
|
92
|
-
**Setup:**
|
|
93
|
-
1. Open **Settings → Figma** and paste a Figma Personal Access Token (generate one in your Figma account settings).
|
|
94
|
-
2. Click **From Figma** on the setup screen and paste a Figma file URL or a specific frame URL.
|
|
95
|
-
|
|
96
|
-
**What the importer extracts:**
|
|
97
|
-
- **Design tokens** — colors (with usage counts), typography styles (family, size, weight per role), spacing scale, effects (shadows, border radii). These map mechanically to `:root` CSS variables — no AI guessing.
|
|
98
|
-
- **Section structure** — top-level frames become modules, in their original Figma order.
|
|
99
|
-
- **Per-section content** — exact headlines, body copy, and CTAs are extracted with role and font-size annotations, fed to the AI as field defaults.
|
|
100
|
-
- **Image assets** — downloaded from Figma's image API as PNGs (2× resolution).
|
|
101
|
-
|
|
102
|
-
**Two image modes (toggle on the import screen):**
|
|
103
|
-
- **Import images as assets** *(default)* — images land in `{theme}/assets/` and are referenced via `get_asset_url()`. The page looks identical to Figma out of the box.
|
|
104
|
-
- **Image fields with placeholders** — modules use HubSpot image fields with placehold.co defaults. Content editors swap in their own images via the HubSpot editor.
|
|
105
|
-
|
|
106
|
-
**The conversion pipeline (streamlined):**
|
|
107
|
-
1. **Generate shared CSS** — deterministic mapping of design tokens to CSS variables and utility classes. No AI.
|
|
108
|
-
2. **Map sections to module specs** — each section's exact text and layout becomes a module specification.
|
|
109
|
-
3. **AI translation** — for each module, the AI converts the Figma section into HubL. Parallel, concurrency-limited. The system prompt forbids inventing content; everything comes from Figma.
|
|
110
|
-
4. **Quality check** — the same auto-fix layer used by the agentic pipeline.
|
|
111
|
-
|
|
112
|
-
The result is a HubSpot theme where every color, word, and pixel of spacing matches the original design — fully editable in HubSpot's drag-and-drop editor.
|
|
113
|
-
|
|
114
|
-
### Classic Wizard Mode
|
|
42
|
+
<img src="assets/readme/02-plan-mode.png" alt="Plan mode: AI asks elicitation questions and builds a markdown plan" width="100%">
|
|
115
43
|
|
|
116
|
-
|
|
117
|
-
npx vibespot wizard
|
|
118
|
-
```
|
|
44
|
+
Vague brief? Toggle Plan mode. vibeSpot asks the questions a senior designer would — audience, primary CTA, sections, voice — and builds a markdown plan in the right pane. Generation is hard-gated until you approve. Pre-canned templates skip the cold start for common page types.
|
|
119
45
|
|
|
120
|
-
|
|
46
|
+
### 3. Translate Figma 1:1
|
|
121
47
|
|
|
122
|
-
|
|
48
|
+
<img src="assets/readme/03-figma-import.png" alt="Figma import: paste a URL, extract design tokens and copy" width="100%">
|
|
123
49
|
|
|
124
|
-
|
|
50
|
+
Paste a Figma URL. vibeSpot extracts the exact design tokens (colors, type, spacing, shadows), the literal copy, and the section structure — then translates each section to HubL. The AI translates; it doesn't invent. What ships matches the Figma file.
|
|
125
51
|
|
|
126
|
-
|
|
127
|
-
node -v
|
|
128
|
-
```
|
|
52
|
+
### 4. Build whole sites in one prompt
|
|
129
53
|
|
|
130
|
-
|
|
54
|
+
<img src="assets/readme/04-multi-page-sites.png" alt="Multi-page site with shared header/footer and page tree" width="100%">
|
|
131
55
|
|
|
132
|
-
|
|
56
|
+
One prompt → multi-page HubSpot site. Shared header and footer, per-page layouts, cross-page navigation validation. The project sidebar shows the page tree with type badges and module counts. Drag to reorder, click to open.
|
|
133
57
|
|
|
134
|
-
|
|
58
|
+
### 5. Edit in the live preview
|
|
135
59
|
|
|
136
|
-
|
|
137
|
-
|--------|---------|-------|
|
|
138
|
-
| Anthropic API | No install — just need an API key | Get one at [console.anthropic.com](https://console.anthropic.com) |
|
|
139
|
-
| Claude OAuth | Run `claude setup-token` → paste token | Uses your Claude Pro/Max subscription |
|
|
140
|
-
| OpenAI API | No install — just need an API key | Any OpenAI model |
|
|
141
|
-
| Gemini API | No install — just need an API key | Google Gemini models |
|
|
142
|
-
| [Claude Code](https://claude.ai/code) | `npm install -g @anthropic-ai/claude-code` | Uses your Claude subscription |
|
|
143
|
-
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `npm install -g @google/gemini-cli` | Uses your Google AI account |
|
|
144
|
-
| [OpenAI Codex](https://github.com/openai/codex) | `npm install -g @openai/codex` | Uses your OpenAI account |
|
|
60
|
+
<img src="assets/readme/05-inline-wysiwyg.png" alt="Inline WYSIWYG editing with per-section hover toolbar" width="100%">
|
|
145
61
|
|
|
146
|
-
|
|
62
|
+
Click text, images, and links directly in the live preview to edit them inline. Hover any module for a floating toolbar: color picker, spacing slider, image swap, font size. Undo/redo through every generation step.
|
|
147
63
|
|
|
148
|
-
|
|
149
|
-
npx vibespot
|
|
150
|
-
```
|
|
64
|
+
### 6. Upload straight to HubSpot
|
|
151
65
|
|
|
152
|
-
|
|
66
|
+
<img src="assets/readme/06-hubspot-upload.png" alt="Celebration popup after a successful HubSpot upload, with a direct link to the portal" width="100%">
|
|
153
67
|
|
|
154
|
-
|
|
68
|
+
Click Upload. Per-file progress, auto-fix for common errors, celebration popup with a direct link to your HubSpot portal (EU and NA regions auto-detected). From there it's Content → Landing Pages → Create → drop your modules onto the page.
|
|
155
69
|
|
|
156
|
-
|
|
70
|
+
## Choose your AI engine
|
|
157
71
|
|
|
158
|
-
|
|
72
|
+
vibeSpot runs the same pipeline across seven engines. Use whichever subscription you already pay for.
|
|
159
73
|
|
|
160
|
-
|
|
74
|
+
| Engine | Install | Notes |
|
|
75
|
+
|--------|---------|-------|
|
|
76
|
+
| Anthropic API | API key only | [console.anthropic.com](https://console.anthropic.com) |
|
|
77
|
+
| Claude OAuth | `claude setup-token` | Uses your Claude Pro/Max subscription |
|
|
78
|
+
| OpenAI API | API key only | Any OpenAI model |
|
|
79
|
+
| Gemini API | API key only | Google Gemini models |
|
|
80
|
+
| [Claude Code](https://claude.ai/code) | `npm i -g @anthropic-ai/claude-code` | Uses your Claude subscription |
|
|
81
|
+
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `npm i -g @google/gemini-cli` | Uses your Google AI account |
|
|
82
|
+
| [OpenAI Codex](https://github.com/openai/codex) | `npm i -g @openai/codex` | Uses your OpenAI account |
|
|
83
|
+
|
|
84
|
+
## Setup
|
|
161
85
|
|
|
162
|
-
1.
|
|
163
|
-
2.
|
|
164
|
-
3.
|
|
165
|
-
4.
|
|
166
|
-
5. Choose your uploaded theme
|
|
167
|
-
6. Drag your modules onto the page
|
|
168
|
-
7. Edit text, images, and colors in the page editor
|
|
169
|
-
8. Preview and publish!
|
|
86
|
+
1. **Node 18+** — `node -v` to check, [nodejs.org](https://nodejs.org) to install.
|
|
87
|
+
2. **An AI engine key** — pick one from the table above.
|
|
88
|
+
3. **Run it** — `npx vibespot`. The browser opens.
|
|
89
|
+
4. **Connect HubSpot** — Settings → HubSpot → add a Personal Access Key. vibeSpot connects via the HubSpot API directly. No CLI install.
|
|
170
90
|
|
|
171
91
|
## Commands
|
|
172
92
|
|
|
93
|
+
Most users only need `npx vibespot`. The web UI handles everything else.
|
|
94
|
+
|
|
173
95
|
```bash
|
|
174
96
|
vibespot # Vibe coding web UI (default)
|
|
175
|
-
vibespot
|
|
176
|
-
vibespot wizard # Classic CLI wizard
|
|
177
|
-
vibespot init # Check and install required tools
|
|
97
|
+
vibespot wizard # Classic CLI wizard for React → HubSpot
|
|
178
98
|
vibespot convert # Convert a React project (no upload)
|
|
179
|
-
vibespot upload # Upload theme to HubSpot
|
|
180
|
-
vibespot inverse
|
|
181
|
-
vibespot marketplace check [--fix] [--json] # Audit theme for HubSpot Marketplace submission
|
|
182
|
-
vibespot marketplace edit # Edit Marketplace listing metadata (marketplace.json)
|
|
99
|
+
vibespot upload # Upload a theme to HubSpot
|
|
100
|
+
vibespot inverse # Reverse-engineer an imported HubSpot theme
|
|
183
101
|
vibespot doctor # Diagnose environment issues
|
|
184
102
|
```
|
|
185
103
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
- `anthropicApiKey`, `openaiApiKey`, `geminiApiKey` — API keys (stored locally, never sent except to the provider)
|
|
194
|
-
- `hubspotAccounts` — Connected HubSpot accounts (PAK-based auth)
|
|
195
|
-
- `hubspotUploadMode` — `api` (default, direct API) or `cli` (legacy, requires HubSpot CLI)
|
|
196
|
-
- `agenticConcurrency` — Max parallel module generation calls (default: 20)
|
|
197
|
-
- `figmaToken` — Figma Personal Access Token for design import
|
|
198
|
-
- `enabledCLITools` — Which CLI tools to detect on settings load
|
|
199
|
-
|
|
200
|
-
## What's New
|
|
201
|
-
|
|
202
|
-
### v1.3.1
|
|
203
|
-
- **Project overview table** — sortable table view for all projects with page, email, module, and brand asset counts
|
|
204
|
-
- **Bulk operations** — select multiple projects for bulk duplicate or delete
|
|
205
|
-
- **Email client preview** — preview emails as they render in Gmail, Outlook Desktop, and Apple Mail
|
|
206
|
-
- **Pipeline robustness** — auto-regenerate modules with broken fieldsJson; tightened similarity checks
|
|
207
|
-
- **Email deploy fixes** — correct dnd_area naming, module references for drag-and-drop editor, deploy UX improvements
|
|
208
|
-
- **Security hardening** — eliminated shell injection in git operations, path-traversal guards on theme routes
|
|
209
|
-
|
|
210
|
-
### v1.3.0
|
|
211
|
-
- **Email template generation** — full pipeline support for HubSpot email templates: email-specific prompts, table-based layout, MSO/VML compatibility, 3 email starters, 5 email plan templates, and email validator auto-fix
|
|
212
|
-
- **Multi-page sites** — create full HubSpot sites from a single prompt with shared modules, page tree sidebar, and cross-page navigation validation
|
|
213
|
-
- **Inline WYSIWYG editing** — click text, images, and links directly in the live preview to edit inline
|
|
214
|
-
- **Per-section visual controls** — hover toolbar with color pickers, spacing sliders, image swap, and font size controls
|
|
215
|
-
- **Blog template generation** — blog as a content type with HubSpot blog variable support and a Blog Content Hub starter template
|
|
216
|
-
- **Split-pane view** — preview + code editor side by side
|
|
217
|
-
- **Brand kit enforcement** — colors, fonts, and logo injected as AI constraints with off-brand warnings
|
|
218
|
-
- **Workspace tab navigation** — Pages, Brand, Library, Marketplace, Settings tabs
|
|
219
|
-
- **Guided entry with asset-type cards** — Landing Page, Email, Website, Blog Post, From Template, and Import
|
|
220
|
-
- **First-visit onboarding** — 3-step walkthrough for new users
|
|
221
|
-
- **Material Design SVG icons** — replaced UI emoji glyphs with crisp SVG icons
|
|
222
|
-
- **Project assets browser** — Library tab shows project files (images, fonts, scripts) instead of starter templates
|
|
223
|
-
|
|
224
|
-
### v1.2.0
|
|
225
|
-
- **Inverse pipeline (HubSpot → vibeSpot)** — reverse-engineer imported HubSpot themes: design token extraction, module graph, field schema flags, and round-trip risk detection
|
|
226
|
-
- **Simplified setup** — returning users land on a recent projects rail; new users see a chat-style prompt as the primary path
|
|
227
|
-
- **Select mode** — click elements in the live preview to reference them in chat
|
|
228
|
-
- **Undo/redo with visual timeline** — Ctrl+Z / Ctrl+Y step through version history with hover tooltips
|
|
229
|
-
- **Smart chat suggestions** — contextual suggestion chips filtered by existing modules
|
|
230
|
-
- **Plan-mode templates** — 7 pre-canned plan structures that skip cold-start elicitation
|
|
231
|
-
- **Starter templates** — 5 bundled page templates for instant preview with no AI wait
|
|
232
|
-
- **HubSpot Marketplace publication path** — rule-based audit, auto-fix, and listing metadata editor
|
|
233
|
-
|
|
234
|
-
### v1.1.3
|
|
235
|
-
- **Model selection persists for Codex CLI, Gemini CLI, and Gemini API** — picking a non-default model used to revert because the `/api/settings/engine` route had no cases for those engines, no config fields existed, and `getCurrentModel` returned `null` (so the dropdown reset to the first option). Added the config fields, route persistence, UI lookup, and runtime `--model`/`-m` flag plumbing into the CLI subprocess invocation.
|
|
236
|
-
|
|
237
|
-
### v1.1.2
|
|
238
|
-
- **Honest model dropdowns** — replaced generic `opus`/`sonnet`/`haiku` aliases in the Claude Code dropdown with specific version IDs (Opus 4.7, Sonnet 4.6, Haiku 4.5, etc.) so picking a version actually pins it. Codex CLI dropdown now lists GPT-5.5, GPT-5.5 Pro, GPT-5.3 Codex, GPT-5.2 Codex, GPT-5.1 Codex Max/Mini, GPT-5.4 Mini/Nano, Codex Mini — no more outdated `o4-mini` / `o3` / `gpt-4o` only.
|
|
239
|
-
- **Live model catalog covers Codex CLI** — when an OpenAI API key is configured, both OpenAI API and Codex CLI dropdowns get populated from `/v1/models` (cached 10 min). New OpenAI releases show up automatically.
|
|
240
|
-
- **Settings dialog opens to AI tab** — fixed a click-handler bug that left the dialog blank on open.
|
|
241
|
-
|
|
242
|
-
### v1.1.0
|
|
243
|
-
- **Plan mode** — deliberation phase before generation. Prominent toggle above chat input; AI asks elicitation questions, builds a markdown plan in a dedicated tab, only generates after Approve. Plan persists to `.vibespot/plan.md` across sessions.
|
|
244
|
-
- **Streamlined Figma import** — replaces the old agentic-pipeline path with a translation pipeline that preserves Figma's exact design tokens, copy, and section order. Image assets copy into the theme automatically.
|
|
245
|
-
- **Anthropic SDK upgrade** (0.39 → 0.91) — unlocks extended thinking, improved prompt caching, and tool/schema-level cache control.
|
|
246
|
-
- **AI Capabilities settings panel** — toggle Extended Thinking (Anthropic API engines, with Low/Medium/High budget) and Web Search (Anthropic API + Claude Code CLI). Prompt Caching shows as auto-active; Citations is the remaining "coming soon" item. Claude Code engines see honest "Auto (CLI-managed)" badges where the CLI handles the feature internally.
|
|
247
|
-
- **Cache control on tool definitions** — Module Developer's identical tool schema is now cached, saving schema-encoding tokens on every parallel call after the first.
|
|
248
|
-
- **Claude Code stream-json output** — both single-call mode and the agentic CLI path now use `--output-format stream-json --include-partial-messages --verbose`. Tool calls (`Read`, `Edit`, `Bash`, `WebSearch`, `WebFetch`, `Grep`, `Glob`) flow into the pipeline status pane as concrete activity ("Searching: '…'", "Reading hero/module.html") instead of generic rotating placeholders.
|
|
249
|
-
|
|
250
|
-
### v1.0.x
|
|
251
|
-
- **Figma design import** (v1.0.10) — paste a Figma URL to extract design tokens, text, section structure, and image assets, then generate a full HubSpot page via the agentic pipeline
|
|
252
|
-
- **Template & module deletion** (v1.0.4) — delete templates from disk, option to delete exclusive modules, delete module button in module library preview
|
|
253
|
-
- **Brand assets redesign** (v1.0.2) — hover-expand cards with per-asset Upload/Extract, Extract All, brand voice extractor, cross-template product context sharing via rendered preview HTML
|
|
254
|
-
- **Agentic pipeline** (v1.0.0) — 4-stage AI generation: Intent Analyzer → Page Architect (Design System + Module Planner) → Module Developer (parallel) → Quality Check (auto-fix)
|
|
255
|
-
- **Incremental preview** (v1.0.0) — completed modules appear immediately with themed placeholders for pending ones
|
|
256
|
-
- **Quality Check agent** (v1.0.0) — auto-fixes unbalanced HubL tags, reserved fields, deprecated types, CDN imports
|
|
257
|
-
- **Security hardening** (v0.9.5) — shell injection prevention, CORS restriction, XSS prevention, security headers, API key file permissions
|
|
258
|
-
- **Code editor** (v0.9.3) — CodeMirror 6 with syntax highlighting, file browser, Preview/Code toggle, dark/light theme
|
|
259
|
-
- **Design extraction** (v0.9.3) — AI-powered styleguide generation from existing themes
|
|
260
|
-
- **HubSpot API mode** (v0.9.0) — upload, download, and manage themes without the HubSpot CLI
|
|
261
|
-
- **File uploads** (v0.8.0) — attach images and documents to chat (drag-and-drop or paperclip)
|
|
262
|
-
- **Per-template version history** (v0.7.0) — scoped git commits, filtered history, safe rollback
|
|
263
|
-
- **Light/dark mode** (v0.6.0) — system preference detection, persisted toggle
|
|
264
|
-
|
|
265
|
-
See [CHANGELOG.md](CHANGELOG.md) for the full history.
|
|
266
|
-
|
|
267
|
-
## Troubleshooting
|
|
268
|
-
|
|
269
|
-
**"command not found: node"** — Install Node.js from [nodejs.org](https://nodejs.org) and restart your terminal.
|
|
270
|
-
|
|
271
|
-
**"vibeSpot has not been built yet"** — Use `npx vibespot` instead, or run `npm run build` first.
|
|
272
|
-
|
|
273
|
-
**HubSpot upload failing** — Open Settings → HubSpot and verify your account is connected. Run `vibespot doctor` for diagnostics.
|
|
274
|
-
|
|
275
|
-
**Preview shows default template instead of modules** — Delete the boilerplate modules (button, card, menu, pricing-card, social-follow) using the × button on each module in the sidebar.
|
|
104
|
+
## What's new in v1.3
|
|
105
|
+
|
|
106
|
+
- **Email template generation** — full pipeline for HubSpot emails: table layouts, MSO/VML compatibility, email validator auto-fix, 3 email starters.
|
|
107
|
+
- **Multi-page sites** — single prompt → full site with shared header/footer, page tree, navigation validation.
|
|
108
|
+
- **Inline WYSIWYG editing** — edit text, images, and links directly in the live preview with per-section visual controls.
|
|
109
|
+
|
|
110
|
+
Full history: [CHANGELOG.md](CHANGELOG.md).
|
|
276
111
|
|
|
277
112
|
## Links
|
|
278
113
|
|
|
279
|
-
- **Website
|
|
280
|
-
- **LinkedIn
|
|
281
|
-
- **npm
|
|
114
|
+
- **Website** — [vibespot.letsplaywith.tech](https://vibespot.letsplaywith.tech)
|
|
115
|
+
- **LinkedIn** — [myvibespot](https://www.linkedin.com/company/myvibespot/)
|
|
116
|
+
- **npm** — [vibespot](https://www.npmjs.com/package/vibespot)
|
|
117
|
+
- **Contributing** — [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
118
|
+
- **Code of Conduct** — [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
|
|
282
119
|
|
|
283
120
|
## License
|
|
284
121
|
|
|
285
122
|
FSL-1.1-Apache-2.0 — see [LICENSE](LICENSE) for details.
|
|
123
|
+
|
|
Binary file
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 400" width="1600" height="400">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400&family=Space+Grotesk:wght@700&display=swap');
|
|
5
|
+
</style>
|
|
6
|
+
<linearGradient id="star-grad" x1="0" y1="0" x2="1" y2="1">
|
|
7
|
+
<stop offset="0%" stop-color="#e8613a"/>
|
|
8
|
+
<stop offset="100%" stop-color="#f2825f"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
<linearGradient id="bar-grad" x1="0" y1="0" x2="1" y2="0">
|
|
11
|
+
<stop offset="0%" stop-color="#e8613a"/>
|
|
12
|
+
<stop offset="100%" stop-color="#f2825f"/>
|
|
13
|
+
</linearGradient>
|
|
14
|
+
<radialGradient id="glow1" cx="75%" cy="10%" r="45%">
|
|
15
|
+
<stop offset="0%" stop-color="#e8613a" stop-opacity="0.08"/>
|
|
16
|
+
<stop offset="40%" stop-color="#e8613a" stop-opacity="0.02"/>
|
|
17
|
+
<stop offset="65%" stop-color="#e8613a" stop-opacity="0"/>
|
|
18
|
+
</radialGradient>
|
|
19
|
+
<radialGradient id="glow2" cx="20%" cy="95%" r="35%">
|
|
20
|
+
<stop offset="0%" stop-color="#e8613a" stop-opacity="0.06"/>
|
|
21
|
+
<stop offset="40%" stop-color="#e8613a" stop-opacity="0.01"/>
|
|
22
|
+
<stop offset="65%" stop-color="#e8613a" stop-opacity="0"/>
|
|
23
|
+
</radialGradient>
|
|
24
|
+
</defs>
|
|
25
|
+
|
|
26
|
+
<!-- Background -->
|
|
27
|
+
<rect width="1600" height="400" fill="#faf9f7"/>
|
|
28
|
+
<rect width="1600" height="400" fill="url(#glow1)"/>
|
|
29
|
+
<rect width="1600" height="400" fill="url(#glow2)"/>
|
|
30
|
+
|
|
31
|
+
<!-- Decorative stars -->
|
|
32
|
+
<g opacity="0.10"><path d="M214 69 C214.6 78.6,221.4 85.4,231 86 C221.4 86.6,214.6 93.4,214 103 C213.4 93.4,206.6 86.6,197 86 C206.6 85.4,213.4 78.6,214 69Z" fill="#e8613a"/></g>
|
|
33
|
+
<g opacity="0.07"><path d="M149 295 C149.4 301.4,153.6 305.6,160 306 C153.6 306.4,149.4 310.6,149 317 C148.6 310.6,144.4 306.4,138 306 C144.4 305.6,148.6 301.4,149 295Z" fill="#e8613a"/></g>
|
|
34
|
+
<g opacity="0.09"><path d="M1372 88 C1372.6 97,1378.6 103,1388 103.6 C1378.6 104.2,1372.6 110.2,1372 119.2 C1371.4 110.2,1365.4 104.2,1356 103.6 C1365.4 103,1371.4 97,1372 88Z" fill="#e8613a"/></g>
|
|
35
|
+
<g opacity="0.06"><path d="M1428 325 C1428.8 337,1437 345.2,1449 346 C1437 346.8,1428.8 355,1428 367 C1427.2 355,1419 346.8,1407 346 C1419 345.2,1427.2 337,1428 325Z" fill="#e8613a"/></g>
|
|
36
|
+
<g opacity="0.05"><path d="M371 175 C371.3 179.8,374.2 182.7,379 183 C374.2 183.3,371.3 186.2,371 191 C370.7 186.2,367.8 183.3,363 183 C367.8 182.7,370.7 179.8,371 175Z" fill="#e8613a"/></g>
|
|
37
|
+
<g opacity="0.07"><path d="M413 303 C413.4 310,418 314.6,425 315 C418 315.4,413.4 320,413 327 C412.6 320,408 315.4,401 315 C408 314.6,412.6 310,413 303Z" fill="#e8613a"/></g>
|
|
38
|
+
<g opacity="0.06"><path d="M1188 57 C1188.3 62.4,1191.6 65.7,1197 66 C1191.6 66.3,1188.3 69.6,1188 75 C1187.7 69.6,1184.4 66.3,1179 66 C1184.4 65.7,1187.7 62.4,1188 57Z" fill="#e8613a"/></g>
|
|
39
|
+
<g opacity="0.05"><path d="M1172 340 C1172.5 348,1177.8 353.3,1186 353.8 C1177.8 354.3,1172.5 359.6,1172 367.6 C1171.5 359.6,1166.2 354.3,1158 353.8 C1166.2 353.3,1171.5 348,1172 340Z" fill="#e8613a"/></g>
|
|
40
|
+
<g opacity="0.04"><path d="M1288 326 C1288.2 330,1290.6 332.4,1295 332.6 C1290.6 332.8,1288.2 335.2,1288 339.2 C1287.8 335.2,1285.4 332.8,1281 332.6 C1285.4 332.4,1287.8 330,1288 326Z" fill="#e8613a"/></g>
|
|
41
|
+
<g opacity="0.04"><path d="M533 138 C533.2 141.6,535.4 143.8,539 144 C535.4 144.2,533.2 146.4,533 150 C532.8 146.4,530.6 144.2,527 144 C530.6 143.8,532.8 141.6,533 138Z" fill="#e8613a"/></g>
|
|
42
|
+
|
|
43
|
+
<!-- Logo mark (dark container + star) -->
|
|
44
|
+
<g transform="translate(680, 128)">
|
|
45
|
+
<rect width="80" height="80" rx="18" fill="#0c0a09"/>
|
|
46
|
+
<g transform="translate(15, 15) scale(0.0977)">
|
|
47
|
+
<path d="M256 28 C260 140, 372 252, 484 256 C372 260, 260 372, 256 484 C252 372, 140 260, 28 256 C140 252, 252 140, 256 28Z" fill="url(#star-grad)"/>
|
|
48
|
+
</g>
|
|
49
|
+
</g>
|
|
50
|
+
|
|
51
|
+
<!-- Wordmark -->
|
|
52
|
+
<text x="784" y="183" font-family="'Space Grotesk', system-ui, -apple-system, sans-serif" font-weight="700" font-size="60" fill="#1a1715" letter-spacing="-1.8">vibeSpot</text>
|
|
53
|
+
|
|
54
|
+
<!-- Tagline -->
|
|
55
|
+
<text x="800" y="234" font-family="'DM Sans', system-ui, -apple-system, sans-serif" font-weight="400" font-size="21" fill="#78716c" text-anchor="middle" letter-spacing="0.2">Build HubSpot landing pages with AI</text>
|
|
56
|
+
|
|
57
|
+
<!-- Accent bar -->
|
|
58
|
+
<rect x="776" y="256" width="48" height="3" rx="1.5" fill="url(#bar-grad)" opacity="0.6"/>
|
|
59
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|