Install
$ agentstack add skill-edgesparkhq-agent-skills-building-edgespark-apps ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
EdgeSpark App Development
Use this skill for EdgeSpark-specific implementation and workflow decisions.
This skill is not EdgeSpark documentation. For exact contracts, read source, generated types, CLI help, and docs/Mintlify MCP. Use this skill for workflow, guardrails, and bug-prevention.
The reliable public surface in this repo is:
- the
edgesparkCLI - scaffolded project structure from
edgespark init - generated
src/__generated__/edgespark.d.ts - generated
src/__generated__/server-types.d.ts - the
@edgespark/webbrowser SDK
Use @edgespark/web and authUI.mount() as the default browser auth path for this repo unless custom forms are explicitly requested.
Read Order
Read only what is needed for the task:
edgespark.toml- repo or project agent instruction file (
AGENTS.md,CLAUDE.md, orGEMINI.md) src/__generated__/edgespark.d.tssrc/__generated__/server-types.d.tssrc/defs/index.ts,src/defs/db_schema.ts,src/defs/db_relations.ts,src/defs/runtime.ts,src/defs/storage_schema.tsnode_modules/@edgespark/web/dist/index.d.tswhen installed for exact browser SDK typesnode_modules/@edgespark/web/README.mdwhen installed for managed auth appearance variable meanings and defaults
Then load the specific reference you need:
- Day-to-day development workflows by surface: [dev-workflow.md](references/dev-workflow.md)
- Scaffold layout and generated-file rules: [project-structure.md](references/project-structure.md)
- Error-prone server-side usage patterns: [server-patterns.md](references/server-patterns.md)
- Small web usage patterns for
@edgespark/web: [web-patterns.md](references/web-patterns.md) - Auth config, OAuth providers, callback URLs, managed auth theming, and Google One Tap: [auth-patterns.md](references/auth-patterns.md)
Hard Rules
- Run
edgespark --helpbefore assuming flags or exact behavior. - Run
edgesparkcommands on behalf of the user. Only hand off steps that explicitly require a human browser action. - Never run multiple
edgesparkcommands in parallel. - Treat scaffolded
src/__generated__/edgespark.d.tsandsrc/__generated__/server-types.d.tsas placeholders untiledgespark pull typespopulates them. - Do not edit files under
src/__generated__/. - Use
@edgespark/webfor new browser code. - Use
es.api.fetch()for app API calls, not barefetch()to same-origin app routes. - Use
authUI.mount()for managed auth UI unless custom forms are explicitly requested. - For managed auth theming, use
appearance.themeandappearance.variablesfrom@edgespark/web; do not tell users to edit SDK CSS for routine light/dark or brand theming. - For custom browser auth flows, use
client.authfrom@edgespark/web, not manual/api/_es/auth/*calls. - Import
authfromedgespark/http, notedgespark. - Auth is a managed service at
/api/_es/auth/. OAuth callback URLs use/api/_es/auth/callback/, not/api/auth/. - Treat
/api/_es/auth/*, storage provider details, and deployment internals as platform implementation details unless the user is explicitly debugging them. - Do not import runtime SDK values from
edgesparkinsidesrc/defs/**. - Use
db.batch()instead ofdb.transaction(). - Use migration workflow for schema changes. Do not use DDL through
edgespark db sql. - Store S3 URIs in the database and return presigned URLs to clients.
- For client-originated uploads, generate presigned PUT URLs instead of streaming files through the Worker.
- Update
src/defs/runtime.tsbefore usingvars.get()orsecret.get(). - Use
edgespark ... --helpfor exact command syntax instead of duplicating help text in this skill. - If exact behavior is unclear, prefer source code, generated types, or docs MCP over guessing.
Default Workflow
For the operational workflow by area, read [dev-workflow.md](references/dev-workflow.md).
Existing project
- Read generated type files first.
- Read the relevant defs files before changing schema, storage, or runtime keys.
- Read the web SDK types before touching auth or browser API code.
Fresh scaffold
- Inspect
edgespark.tomlto confirm server-only vs full-stack layout. - If generated files are placeholders, run
edgespark pull typesbefore making SDK assumptions. - Follow the scaffolded root,
server/, andweb/agent instruction files for package boundaries.
When Stuck
- Read the generated type files again before assuming an API shape.
- Run the relevant
edgespark ... --helpcommand before guessing flags. - Use docs/Mintlify MCP for product documentation details.
Quick Start
Server:
import { db, storage, vars, secret, ctx } from "edgespark";
import { auth } from "edgespark/http";
import { posts, buckets } from "@defs";
import { Hono } from "hono";
import { eq } from "drizzle-orm";
const app = new Hono()
.get("/api/posts", async (c) => {
return c.json(await db.select().from(posts));
})
.post("/api/posts", async (c) => {
const data = await c.req.json();
const [post] = await db.insert(posts)
.values({ ...data, user_id: auth.user!.id })
.returning();
return c.json(post, 201);
});
export default app;
Web:
import { createEdgeSpark } from "@edgespark/web";
import "@edgespark/web/styles.css";
const es = createEdgeSpark();
es.authUI.mount(document.getElementById("auth")!, {
redirectTo: "/dashboard",
});
const res = await es.api.fetch("/api/posts");
const posts = await res.json();
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: edgesparkhq
- Source: edgesparkhq/agent-skills
- License: MIT
- Homepage: https://edgespark.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.