A lightweight JavaScript and TypeScript SDK for submitting forms to StackVerify.
Collect submissions from any website or application without building your own backend. Every submission is securely stored, delivered to your StackVerify dashboard, and can trigger email notifications, webhooks, WhatsApp workflows, and future automations.
Building and maintaining infrastructure for a simple contact form shouldn't slow down your product.
StackVerify Forms gives you:
- Instant form endpoints
- Submission storage
- Dashboard for managing responses
- Email notifications
- Webhook support
- WhatsApp automation
- TypeScript support
- Framework-agnostic SDK
- Zero runtime dependencies
Instead of building APIs, databases, and notification systems, simply submit your data and let StackVerify handle the rest.
npm install @stackverify/formsyarn add @stackverify/formspnpm add @stackverify/formsCreate a form from your StackVerify dashboard.
You'll receive a unique Form ID.
import { submitForm } from "@stackverify/forms";
await submitForm({
formId: "frm_xxxxxxxxx",
data: {
name: "Jane Doe",
email: "jane@example.com",
company: "Acme Inc.",
message: "I'd like to schedule a demo."
}
});Your submission is immediately available inside your StackVerify dashboard.
import { submitForm } from "@stackverify/forms";
export default function ContactForm() {
async function handleSubmit(e) {
e.preventDefault();
const data = Object.fromEntries(
new FormData(e.target)
);
await submitForm({
formId: "frm_xxxxxxxxx",
data
});
}
return (
<form onSubmit={handleSubmit}>
<input name="name" />
<input name="email" />
<textarea name="message" />
<button>Send</button>
</form>
);
}import { submitForm } from "@stackverify/forms";
await submitForm({
formId: process.env.NEXT_PUBLIC_FORM_ID!,
data: {
email,
message
}
});import { submitForm } from "@stackverify/forms";
await submitForm({
formId: "frm_xxxxxxxxx",
data: {
name,
email
}
});import { submitForm } from "@stackverify/forms";
await submitForm({
formId: "frm_xxxxxxxxx",
data
});import { submitForm } from "@stackverify/forms";
await submitForm({
formId: "frm_xxxxxxxxx",
data: {
userId: 123,
event: "signup"
}
});import { submitForm } from "@stackverify/forms";
submitForm({
formId: "frm_xxxxxxxxx",
data: {
email: "john@example.com"
}
});Every form automatically includes a public endpoint.
<form action="https://stackverify.site/api/f/YOUR_FORM_ID" method="POST">
<input
name="name"
required>
<input
type="email"
name="email"
required>
<button type="submit">
Submit
</button>
</form>No backend required.
submitForm({
formId,
data,
timeout,
baseUrl,
fetch
});| Option | Type | Description |
|---|---|---|
| formId | string | StackVerify Form ID |
| data | Record<string, any> | Form data |
| timeout | number | Request timeout |
| baseUrl | string | Custom API URL |
| fetch | Fetch | Custom fetch implementation |
Built-in TypeScript definitions are included.
import type { SubmitOptions } from "@stackverify/forms";| Frontend | Backend |
|---|---|
| React | Node.js |
| Next.js | Express |
| Vue | Bun |
| Nuxt | Deno |
| Angular | Fastify |
| Svelte | NestJS |
| SvelteKit | Cloudflare Workers |
| Astro | |
| Remix | |
| SolidJS | |
| Vite | |
| Vanilla JavaScript |
Application
│
▼
StackVerify Forms SDK
│
▼
StackVerify API
│
├── Stores submissions
├── Dashboard
├── Email notifications
├── Webhooks
└── Automation
- Contact forms
- Newsletter subscriptions
- Lead generation
- Landing pages
- SaaS onboarding
- Product orders
- Event registration
- Customer feedback
- Internal business tools
- Booking requests
- Waitlists
You could send requests manually using fetch.
The SDK provides:
- Consistent API
- TypeScript support
- Validation
- Better error handling
- Cleaner code
- Future compatibility as StackVerify evolves
MIT
Built for developers who want to ship forms, not infrastructure.