Spreadsheet Agent
mastra-ai/mastra
Authoring playbook for building agents that read or write tabular data — Google Sheets, Microsoft Excel, CSV, Airtable, Notion databases, or any spreadsheet.
A skill your agent uses when building an app on a no-code/low-code platform (Bubble, Softr, Glide over Airtable or Xano) — picking the platform, modeling the data, keeping usage-metered cost…
$ npx skills add ericrisco/rsc-harness --skill no-code-app -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness no-code-app --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/no-code-app .claude/skills/no-code-app && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "no-code-app" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/no-code-app into .claude/skills/no-code-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "no-code-app", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ericrisco/rsc-harness/tree/main/skills/no-code-appType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ericrisco/rsc-harness --skill no-code-app -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness no-code-app --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/no-code-app .agents/skills/no-code-app && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "no-code-app" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/no-code-app into .agents/skills/no-code-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "no-code-app", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill no-code-app -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness no-code-app --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/no-code-app .cursor/skills/no-code-app && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "no-code-app" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/no-code-app into .cursor/skills/no-code-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "no-code-app", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ericrisco/rsc-harness.git --path skills/no-code-app--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ericrisco/rsc-harness --skill no-code-app -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness no-code-app --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/no-code-app .gemini/skills/no-code-app && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "no-code-app" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/no-code-app into .gemini/skills/no-code-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "no-code-app", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ericrisco/rsc-harness no-code-appInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ericrisco/rsc-harness --skill no-code-app -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/no-code-app .github/skills/no-code-app && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "no-code-app" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/no-code-app into .github/skills/no-code-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "no-code-app", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill no-code-app -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness no-code-app --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/no-code-app .opencode/skills/no-code-app && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "no-code-app" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/no-code-app into .opencode/skills/no-code-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "no-code-app", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
no-code-appA skill your agent uses when building an app on a no-code/low-code platform (Bubble, Softr, Glide over Airtable or Xano) — picking the platform, modeling the data, keeping usage-metered cost…
No Code App is an agent skill from ericrisco/rsc-harness. Use when building an app on a no-code/low-code platform (Bubble, Softr, Glide over Airtable or Xano) — picking the platform, modeling the data, keeping usage-metered cost predictable, and planning the exit before lock-in. NOT a hand-written coded app (that is nextjs), NOT wiring SaaS tools together with no app UI (that is automation-flows).
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/platform-limits.md`).
It works with Next.js, Airtable and Notion. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
No Code App loads about 2.8k tokens when it runs, and up to ~4.5k if it reads all its reference files. Until then it costs about 90 tokens; SKILL.md has 1,415 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,415 words, ~2,819 tokens.
.claude/skills/no-code-app/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.You are deciding whether to build an app on a visual platform, which platform, how to model it, and where the wall is. No-code is not "the easy way" — it is a trade: you buy speed-to-first-user and pay it back in logic ceilings and metered cost. Your job is to make that trade with eyes open.
Decide the exit before you build the entrance. If you cannot describe how you would leave, you are not building an MVP — you are building a hostage.
No-code wins on speed-to-first-user — a working app in days, no deploy pipeline. That is the only thing it reliably wins. It dies on deep conditional logic and on scale economics: many-branch workflows get unmaintainable, and metering turns a $29 bill into a $400 one without warning.
Run this gate before touching any builder. If any line is a clear yes, route out — do not rationalize staying.
| If the user really wants... | Stop and go to |
|---|---|
| A hand-written app, full control over code | ../nextjs/SKILL.md (or ../react/SKILL.md) |
| A commerce storefront, products + checkout | ../shopify/SKILL.md |
| A content site / blog / CMS | ../wordpress/SKILL.md |
| To wire SaaS tools together, no app UI | ../automation-flows/SKILL.md |
| A spreadsheet as the deliverable itself | ../spreadsheet-ops/SKILL.md |
| A Notion workspace, not a published app | ../notion-connector/SKILL.md |
No-code is the right tool when ALL hold: there is a real app UI (screens + data + logic), the logic is mostly CRUD + a handful of rules, time-to-launch matters more than scale today, and you accept the platform owns your runtime. If logic is the heart of the product (pricing engine, matching algorithm, real-time anything), no-code is wrong even if the UI is simple — write code.
Match the platform to the app shape, then to the billing model you will have to defend in six months. Why this order: the billing model, not the feature list, is what kills no-code projects.
| App shape | Platform | Bills on | Why |
|---|---|---|---|
| Internal tool / client portal over existing data | Softr | Flat rate per workspace | No per-write metering, no charge for internal editors → predictable as you grow |
| Customer-facing, simple, mobile-feel | Glide | "Updates" (data writes) | Fast to ship; cost scales with write volume, and rows are capped per plan (a standard source tops out far below Glide's own tables) — watch both |
| Complex custom SaaS, heavy logic, custom workflows | Bubble | Workload Units (WU) | Most powerful builder; every query/workflow/API call burns WU, and tier allotments are small (Starter ~175K WU, Growth ~250K — only ~1.4x, not the 4x some stale write-ups claim) → cost is a function of usage, not seats |
Rules:
Exact tiers and numbers change — see references/platform-limits.md. Do not hardcode prices into your design; design against the metering model.
Tables and relations come before a single screen. Why: screens are cheap to rebuild, a wrong data model poisons every workflow and every cost estimate on top of it.
Pick the backend by logic complexity, not by familiarity:
| Backend | What it is | Use when | Watch out |
|---|---|---|---|
| Platform-native DB | Built into Bubble/Glide/Softr | Simple apps, one source of truth | Locked to the platform |
| Airtable | Relational DB with a spreadsheet UI | Simple read/create, admin data entry | ~50K records/base cap, slow API |
| Xano | Full backend (PostgreSQL + visual API builder) | Complex logic, performance, security | More setup; it is a real backend |
The hybrid pattern that scales: Airtable for human data entry/admin, Xano for API logic + performance + security.
Field-type and relation discipline:
bookings row links to customers and classes by relation, it does not copy the customer's name and email into every booking.Bad → Good:
Bad — one giant "Records" table, 40 columns, status in a text field,
customer name + email + class title all duplicated per row.
=> filtering is slow, a rename means editing every row, WU/updates balloon.
Good — customers | classes | bookings(customer→, class→, date, status:single-select)
=> rename once, filter by relation, aggregate cleanly, predictable cost.Sketch the model in plain text before you build it:
customers: { id, name, email, phone }
classes: { id, title, starts_at, capacity, instructor }
bookings: { id, customer: ->customers, class: ->classes, status: [pending|paid|cancelled], created_at }
payments: { id, booking: ->bookings, amount, provider_ref } # via stripePayments in any of these flows: see ../stripe/SKILL.md.
The metering model punishes the obvious-but-wrong way of doing things. Build defensively.
Bad → Good:
Bad — On booking confirmed: loop over all 2,000 customers, call email API per row.
=> 2,000 metered ops every run; WU/update bill spikes; rate limits hit.
Good — On booking confirmed: write one row; a scheduled batch job sends queued emails.
=> one metered write per booking; sending is amortized and rate-safe.The full 2026 tier/metering/record-cap table and worked cost examples live in references/platform-limits.md. Operating rules:
This is the section everyone skips and everyone regrets. Do it on day 1.
When two of those triggers fire, stop adding features and start the migration plan — do not keep pouring work into a runtime you are about to leave.
| Bad | Good | Why |
|---|---|---|
| Reaching for Bubble because "no-code is faster" | Run Step 0 gate first | Coded apps/stores/blogs route to nextjs/shopify/wordpress |
| Building screens, then bolting on data | Model tables + relations first | Wrong model poisons every workflow and cost estimate |
| One giant table, 40 columns, text-typed everything | Normalized tables linked by relation | Cheap renames, fast filters, predictable metering |
| Airtable for complex logic + scale | Xano (or hybrid: Airtable entry + Xano logic) | Airtable ~50K cap + slow API; Xano is a real backend |
| Per-row API call in a workflow loop | Batch writes / scheduled jobs | #1 cause of WU/update bill explosions |
| Client-side-only validation | Enforce rules server-side + permission gates | UI validation is trivially bypassed |
| Pricing off the monthly sticker | Estimate from the metering model | WU/updates scale with usage, not the headline price |
| Testing only at demo scale (100 rows) | Load-test at 10x expected rows early | Snappy at 100 can crawl at 10,000 |
| No export plan, hope you never leave | Export day 1, keep model portable | 68% offer no code export; rewrite is $50K-$250K |
| Picking Bubble for a simple internal portal | Softr (flat-rate) for portals over data | Predictable cost, no per-write surprise |
© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in skills/no-code-app of ericrisco/rsc-harness.
Open the folder on GitHubat commit 92fde8f
No Code App next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| No Code App this skillericrisco/rsc-harness | 156 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Spreadsheet Agentmastra-ai/mastra | 29k | — | ~2.1k | Automated safety check: Pass | Custom licence | |
| API GatewayCraftOS-dev/CraftBot | 392 | 3 repos | ~7.1k | Automated safety check: Pass | MIT | |
| Apify Reddit Scraperapify/awesome-skills | 262 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Code Design Rationale Investigatorcursor/plugins | 10k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| Vercel Optimize Auditvercel-labs/agent-skills | 32k | 8 repos | ~4.3k | Automated safety check: Pass | None |
mastra-ai/mastra
Authoring playbook for building agents that read or write tabular data — Google Sheets, Microsoft Excel, CSV, Airtable, Notion databases, or any spreadsheet.
CraftOS-dev/CraftBot
Connect to 100+ APIs (Google Workspace, Microsoft 365, Notion, Slack, Airtable, HubSpot, etc.) with managed OAuth.
apify/awesome-skills
Scrape Reddit with the harshmaur/reddit-scraper Apify Actor: keyword search across all of Reddit or inside one subreddit, full subreddit listings, post permalinks with complete comment threads, user…
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
vercel-labs/agent-skills
Runs a metrics-first audit of a deployed Vercel project, gating investigations on real signals to produce ranked, citation-backed cost and performance recommendations.
vercel-labs/ai-facts
Answer questions about the AI SDK and help build AI-powered features.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
A skill your agent uses when building an app on a no-code/low-code platform (Bubble, Softr, Glide over Airtable or Xano) — picking the platform, modeling the data, keeping usage-metered cost…. No Code App is an agent skill from ericrisco/rsc-harness. Use when building an app on a no-code/low-code platform (Bubble, Softr, Glide over Airtable or Xano) — picking the platform, modeling the data, keeping usage-metered cost predictable, and planning the exit before lock-in.
No Code App fits situations like: building an app on a no-code/low-code platform (Bubble; glide over Airtable; xano) — picking the platform; modeling the data.
Run `npx skills add ericrisco/rsc-harness --skill no-code-app -a claude-code`. Or copy the skill folder (skills/no-code-app in ericrisco/rsc-harness) into .claude/skills/no-code-app in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill no-code-app -a codex`. Or copy the skill folder (skills/no-code-app in ericrisco/rsc-harness) into .agents/skills/no-code-app in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill no-code-app -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/no-code-app, .gemini/skills/no-code-app, .github/skills/no-code-app and .opencode/skills/no-code-app in your project.
SKILL.md names no scripts, command-line tools or credentials: No Code App is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
No Code App is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with No Code App: Spreadsheet Agent (mastra-ai/mastra, 29k stars), API Gateway (CraftOS-dev/CraftBot, 392 stars), Apify Reddit Scraper (apify/awesome-skills, 262 stars) and Code Design Rationale Investigator (cursor/plugins, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.