softr-vibe-coding 1.1.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/LICENSE +21 -0
- package/README.md +262 -0
- package/SKILL.md +480 -0
- package/bin/cli.js +140 -0
- package/datasources/airtable.md +91 -0
- package/datasources/bigquery.md +36 -0
- package/datasources/clickup.md +82 -0
- package/datasources/coda.md +44 -0
- package/datasources/fields.md +203 -0
- package/datasources/google-sheets.md +46 -0
- package/datasources/hubspot.md +51 -0
- package/datasources/monday.md +52 -0
- package/datasources/notion.md +56 -0
- package/datasources/overview.md +41 -0
- package/datasources/reading.md +222 -0
- package/datasources/rest-api.md +206 -0
- package/datasources/shared-patterns.md +9 -0
- package/datasources/smartsuite.md +39 -0
- package/datasources/softr-database.md +47 -0
- package/datasources/sql-database.md +48 -0
- package/datasources/supabase.md +38 -0
- package/datasources/writing.md +256 -0
- package/datasources/xano.md +37 -0
- package/package.json +40 -0
- package/references/advanced-integrations.md +69 -0
- package/references/airtable-automations.md +350 -0
- package/references/anti-patterns.md +86 -0
- package/references/common-patterns.md +102 -0
- package/references/helper-blocks.md +370 -0
- package/references/quick-reference.md +207 -0
- package/ui-ux-guidelines.md +746 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Leo Selie
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
# Softr Vibe Coding Block — Claude Skill
|
|
2
|
+
|
|
3
|
+
> Turn Claude into a Softr Vibe Coding expert — generate production-ready JSX blocks with polished UI, correct data fetching, and all 14 Softr data sources supported out of the box.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
> **UNOFFICIAL** — This is a community-maintained Claude skill. It is not affiliated with, endorsed by, or officially supported by Softr. Use as-is.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## TL;DR
|
|
14
|
+
|
|
15
|
+
This Claude skill teaches Claude Code how to generate complete, polished Softr Vibe Coding blocks as `.jsx` files. It includes:
|
|
16
|
+
|
|
17
|
+
- **Complete Vibe Coding API reference** — `useRecords`, `q.select()`, mutations, uploads, metrics, charts, editable settings, `useProxyFetch` for REST APIs
|
|
18
|
+
- **All 14 Softr data sources** — Airtable, Softr Database, Google Sheets, HubSpot, Notion, Coda, monday.com, SmartSuite, ClickUp, Xano, Supabase, BigQuery, SQL Database, and REST API — each with field mapping, rate limits, and gotchas
|
|
19
|
+
- **Helper blocks & cross-block patterns** — Invisible helper blocks for multi-table access via `window` globals + `CustomEvent`, `useWindowData` hook, breadcrumb navigation, saved views architecture
|
|
20
|
+
- **Advanced integrations** — Shadow DOM CSS isolation for third-party libraries (Leaflet, Mapbox, TinyMCE, Quill, FullCalendar)
|
|
21
|
+
- **UI/UX design guidelines** — 26 sections covering visual hierarchy, color, typography, spacing, motion design, accessibility, responsive patterns, and an AI slop anti-pattern checklist
|
|
22
|
+
- **Self-validation** — Claude checks for Softr bundler compatibility (no optional chaining, correct imports, container wrappers, `getFieldValue()` wrapping, hooks ordering) before delivering code
|
|
23
|
+
- **Premium visual baseline** — Every block ships polished from v1: gradient backgrounds, card elevation, loading skeletons, empty states, error states
|
|
24
|
+
- **Debug utilities** — Field Inspector, API Response Inspector, and User Inspector blocks for diagnosing data source and permissions issues
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
### Recommended: One-line install with auto-updates
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx softr-vibe-coding@latest init
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This installs the skill into `~/.claude/skills/softr-vibe-coding/` and adds a `SessionStart` hook to `~/.claude/settings.json` so the skill auto-updates to the latest published version on every Claude Code session. No manual `git pull` needed.
|
|
37
|
+
|
|
38
|
+
Requires Node.js 18+.
|
|
39
|
+
|
|
40
|
+
### Manual alternatives
|
|
41
|
+
|
|
42
|
+
<details>
|
|
43
|
+
<summary>Clone the repo directly into your Claude skills directory</summary>
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
git clone https://github.com/leo-softr/Softr-Vibe-Coding-Block-Claude-Skill.git ~/.claude/skills/softr-vibe-coding
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
</details>
|
|
50
|
+
|
|
51
|
+
<details>
|
|
52
|
+
<summary>Download the latest tarball</summary>
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
mkdir -p ~/.claude/skills/softr-vibe-coding
|
|
56
|
+
curl -L https://github.com/leo-softr/Softr-Vibe-Coding-Block-Claude-Skill/archive/refs/heads/main.tar.gz | \
|
|
57
|
+
tar -xz --strip-components=1 -C ~/.claude/skills/softr-vibe-coding
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
</details>
|
|
61
|
+
|
|
62
|
+
<details>
|
|
63
|
+
<summary>Manual download (ZIP)</summary>
|
|
64
|
+
|
|
65
|
+
1. Download this repository as a ZIP from the green **Code** button above
|
|
66
|
+
2. Extract the ZIP
|
|
67
|
+
3. Rename the extracted folder to `softr-vibe-coding` and place it in `~/.claude/skills/`
|
|
68
|
+
|
|
69
|
+
</details>
|
|
70
|
+
|
|
71
|
+
### Verify installation
|
|
72
|
+
|
|
73
|
+
Start a new Claude Code session and ask:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
What skills are available?
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
You should see `softr-vibe-coding` in the list. Or invoke it directly:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Build me a Softr Vibe Coding block that shows a team directory with cards
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Updating
|
|
88
|
+
|
|
89
|
+
**If you used the recommended `npx ... init` install**, updates are automatic — the SessionStart hook pulls the latest published version on every Claude Code session, so you're always at most one session behind the latest release.
|
|
90
|
+
|
|
91
|
+
**Manual installs** (git clone / tarball / ZIP):
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
cd ~/.claude/skills/softr-vibe-coding
|
|
95
|
+
git pull origin main
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Or re-run the tarball install — the extraction overwrites the existing files.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Usage
|
|
103
|
+
|
|
104
|
+
The skill activates automatically when you mention Softr, Vibe Coding, or ask to build a custom UI component for a Softr app. You can also invoke it directly with `/softr-vibe-coding`.
|
|
105
|
+
|
|
106
|
+
### Example prompts
|
|
107
|
+
|
|
108
|
+
**Simple card grid:**
|
|
109
|
+
```
|
|
110
|
+
Build a team directory with cards showing name, role, and photo from Airtable
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**REST API integration:**
|
|
114
|
+
```
|
|
115
|
+
Create a block that fetches events from the Luma API and lets me select one to send a webhook
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Dashboard with metrics:**
|
|
119
|
+
```
|
|
120
|
+
Build a KPI dashboard showing revenue, active users, and churn rate from our Softr Database
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Form with mutations:**
|
|
124
|
+
```
|
|
125
|
+
Create a contact form that creates records in our Airtable Contacts table
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### What the skill does
|
|
129
|
+
|
|
130
|
+
1. **Asks only what it needs** — data source type and field IDs. Everything else (folder, colors, filename) uses smart defaults.
|
|
131
|
+
2. **Loads the relevant guides** — reads the specific data source guide (Airtable, REST API, etc.) and reference files (helper blocks, Shadow DOM) as needed.
|
|
132
|
+
3. **Generates a complete `.jsx` file** — production-ready, visually polished, with loading/error/empty states. Never delivers code inline (prevents JSX character corruption).
|
|
133
|
+
4. **Self-validates** — checks 13 items including Softr bundler compatibility, `getFieldValue()` wrapping, hooks ordering, and mutation patterns before delivering code.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## What's Included
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
softr-vibe-coding/
|
|
141
|
+
├── SKILL.md # Main skill (330 lines)
|
|
142
|
+
│ # Workflow, code structure, visual baseline,
|
|
143
|
+
│ # components, settings, 20 hard constraints
|
|
144
|
+
│
|
|
145
|
+
├── ui-ux-guidelines.md # Design reference (746 lines)
|
|
146
|
+
│ # 26 sections: hierarchy, color, typography,
|
|
147
|
+
│ # spacing, motion, accessibility, AI slop checklist
|
|
148
|
+
│
|
|
149
|
+
├── references/ # Advanced patterns (loaded on demand)
|
|
150
|
+
│ ├── helper-blocks.md # Cross-block communication (327 lines)
|
|
151
|
+
│ │ # Invisible helper blocks, window globals,
|
|
152
|
+
│ │ # CustomEvent, useWindowData hook, breadcrumbs,
|
|
153
|
+
│ │ # saved views, companion field helpers
|
|
154
|
+
│ ├── advanced-integrations.md # Shadow DOM CSS isolation (69 lines)
|
|
155
|
+
│ │ # Leaflet, Mapbox, TinyMCE, Quill, FullCalendar
|
|
156
|
+
│ ├── anti-patterns.md # Categorized violation catalog (69 lines)
|
|
157
|
+
│ │ # Data access, mutations, hooks, layout,
|
|
158
|
+
│ │ # permissions, helper blocks
|
|
159
|
+
│ └── quick-reference.md # Syntax cheat sheet (156 lines)
|
|
160
|
+
│ # Imports, hook signatures, mutation shapes,
|
|
161
|
+
│ # field mapping, component skeleton
|
|
162
|
+
│
|
|
163
|
+
└── datasources/ # Data source guides (loaded on demand)
|
|
164
|
+
├── overview.md # Comparison matrix, selection guide
|
|
165
|
+
├── shared-patterns.md # Index → reading, writing, fields
|
|
166
|
+
├── reading.md # useRecords, filtering, sorting, pagination,
|
|
167
|
+
│ # metrics, charts, current user (198 lines)
|
|
168
|
+
├── writing.md # Mutations, uploads, linked record format,
|
|
169
|
+
│ # cross-table REST API writes (146 lines)
|
|
170
|
+
├── fields.md # getFieldValue(), field type shapes, record
|
|
171
|
+
│ # structure, debug utilities (160 lines)
|
|
172
|
+
├── rest-api.md # useProxyFetch + useQuery (full docs)
|
|
173
|
+
├── softr-database.md # Native DB — field IDs, no rate limits
|
|
174
|
+
├── airtable.md # Column names, PAT vs OAuth, rate limits
|
|
175
|
+
├── google-sheets.md # Text formatting, 50-100 user cap
|
|
176
|
+
├── hubspot.md # CRM objects, Sensitive Data Scopes
|
|
177
|
+
├── notion.md # Database pages only, Relation workarounds
|
|
178
|
+
├── coda.md # API token auth, limitations
|
|
179
|
+
├── monday.md # API token, Connected Boards
|
|
180
|
+
├── smartsuite.md # OAuth, linked records
|
|
181
|
+
├── clickup.md # Extensive fields, rate limit tiers
|
|
182
|
+
├── xano.md # Database Connector, IP whitelisting
|
|
183
|
+
├── supabase.md # Session Pooler, pool size, RLS
|
|
184
|
+
├── bigquery.md # Read-only, custom SQL
|
|
185
|
+
└── sql-database.md # 4 SQL engines, ports, IP whitelisting
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### How context loading works
|
|
189
|
+
|
|
190
|
+
Only `SKILL.md` loads into Claude's context when the skill triggers (~330 lines). The data source guides, reference files, and UI/UX guidelines load **on demand** — Claude reads only the files relevant to your specific block. This keeps context lean even with 24 files totaling 3,100+ lines.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Supported Data Sources
|
|
195
|
+
|
|
196
|
+
| Data Source | Approach | Plan |
|
|
197
|
+
|---|---|---|
|
|
198
|
+
| Softr Databases | `useRecords` + `q.select()` | All plans |
|
|
199
|
+
| Airtable | `useRecords` + `q.select()` | Basic+ |
|
|
200
|
+
| Google Sheets | `useRecords` + `q.select()` | Basic+ |
|
|
201
|
+
| HubSpot | `useRecords` + `q.select()` | Business+ |
|
|
202
|
+
| Notion | `useRecords` + `q.select()` | Basic+ |
|
|
203
|
+
| Coda | `useRecords` + `q.select()` | Basic+ |
|
|
204
|
+
| monday.com | `useRecords` + `q.select()` | Professional+ |
|
|
205
|
+
| SmartSuite | `useRecords` + `q.select()` | Professional+ |
|
|
206
|
+
| ClickUp | `useRecords` + `q.select()` | Professional+ |
|
|
207
|
+
| Xano | `useRecords` + `q.select()` | Professional+ |
|
|
208
|
+
| Supabase | `useRecords` + `q.select()` | Professional+ |
|
|
209
|
+
| BigQuery | `useRecords` + `q.select()` | Business+ |
|
|
210
|
+
| SQL Database | `useRecords` + `q.select()` | Business+ |
|
|
211
|
+
| REST API | `useProxyFetch` + `useQuery` | Business+ |
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Key Softr Bundler Constraints
|
|
216
|
+
|
|
217
|
+
The skill enforces these automatically, but good to know:
|
|
218
|
+
|
|
219
|
+
- No optional chaining (`?.`) or nullish coalescing (`??`) — Softr's bundler fails on these
|
|
220
|
+
- No `import React from 'react'` — use named imports (`import { useState } from "react"`)
|
|
221
|
+
- No arrow functions in JSX callback props — use `function() {}`
|
|
222
|
+
- Must use `export default function Block()`
|
|
223
|
+
- Must wrap layout in `<div className="container py-6"><div className="content">`
|
|
224
|
+
- Only ONE `useRecords` call per block (use helper blocks for multi-table)
|
|
225
|
+
- `fetchNextPage` only inside `useEffect` — in render body causes infinite loops
|
|
226
|
+
- All hooks declared before any conditional `return` — React error #310
|
|
227
|
+
- Every field value rendered in JSX must pass through `getFieldValue()`
|
|
228
|
+
- Mutations use `recordId` (not `id`) and always call `refetch()` in `onSuccess`
|
|
229
|
+
- REST API data sources use `useProxyFetch`, NOT `useRecords`
|
|
230
|
+
- Use relative paths in navigation, never hardcoded domains
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Disclaimer
|
|
235
|
+
|
|
236
|
+
This is an **UNOFFICIAL**, community-maintained Claude skill. It is provided **as-is** with no warranty.
|
|
237
|
+
|
|
238
|
+
- Not affiliated with, endorsed by, or officially supported by [Softr](https://www.softr.io)
|
|
239
|
+
- Not affiliated with or endorsed by [Anthropic](https://www.anthropic.com)
|
|
240
|
+
- The Softr Vibe Coding API may change — if something breaks, check the [official Softr docs](https://docs.softr.io/vibe-coding-developer-guide)
|
|
241
|
+
- This skill is based on publicly available documentation and community testing
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Contributing
|
|
246
|
+
|
|
247
|
+
Pull requests are what make open source great, and we appreciate the spirit behind them. That said, this skill is maintained for a specific personal workflow, so PRs won't be merged here. We highly recommend forking this repo and making it your own — customize it for your team, your data sources, your design system. That's the beauty of open source.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## References
|
|
252
|
+
|
|
253
|
+
- [Softr Vibe Coding Developer Guide](https://docs.softr.io/vibe-coding-developer-guide) — Official Softr Vibe Coding documentation
|
|
254
|
+
- [Softr Data Sources](https://docs.softr.io/data-sources) — Official Softr data source documentation
|
|
255
|
+
- [Impeccable](https://github.com/pbakaus/impeccable) — Design patterns and UI/UX anti-pattern principles by Paul Bakaus (referenced in the UI/UX guidelines)
|
|
256
|
+
- [Claude Code Skills Documentation](https://code.claude.com/docs/en/skills) — How Claude Code skills work
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## License
|
|
261
|
+
|
|
262
|
+
[MIT](LICENSE)
|