Awesome
<p align="center"> <img src="https://github.com/ciscoheat/sveltekit-superforms/raw/main/logo.svg" width="150px" align="center" alt="Superforms logo" /> <h1 align="center">Superforms 💥</h1> <p align="center">Making SvelteKit forms a pleasure to use!</p> </p> <div align="center"> <a align="center" href="https://superforms.rocks/">https://superforms.rocks/</a> <br /> <a href="https://discord.gg/g5GHjGtU2W">Discord</a> <span> • </span> <a href="https://superforms.rocks/api">API</a> <span> • </span> <a href="https://superforms.rocks/faq">FAQ</a> <span> • </span> <a href="https://www.npmjs.com/package/sveltekit-superforms">npm</a> <span> • </span> <a href="https://github.com/ciscoheat/sveltekit-superforms/issues">Issues</a> </div>Feature list
- Server- and client-side validation with your favorite validation libraries, and more to come: 💥 Arktype 💥 class-validator 💥 Effect 💥 Joi 💥 Superstruct 💥 TypeBox 💥 Valibot 💥 VineJS 💥 Yup 💥 Zod 💥 or use JSON Schema directly.
- Seamless merging of
PageData
andActionData
- Forget about how to combine them, just focus on your form data, always strongly typed. - Auto-centering and focusing on invalid form fields.
- Tainted form detection, prevents the user from losing data if navigating away from an unsaved form. Or use snapshots to save the form state.
- Automatically coerces
FormData
into correct types, including arrays and files. - For advanced data structures, forget about the limitations of
FormData
- Post nested data structures like a RPC call. - Generates default form values from many validation schemas.
- Handles multiple forms on the same page.
- Works both on the server and with single-page applications (SPA)!
- Convenient handling and validation of file uploads, both on server and client and even in nested data.
- Proxy objects for handling data conversions to string and back again.
- Realtime client-side validation for the best possible UX.
- Create loading spinners easily with three auto-updating timers, based on human perception research.
- Hook into a number of events for full control over the validation data and the
ActionResult
, with a possibility to cancel the update at every step. - Complete customization with a huge list of options.
- No JavaScript required as default, but full support for progressive enhancement.
- Comes with a Super Debugging Svelte Component: SuperDebug.
Get started
Follow the Get started tutorial on the website to get a hands-on introduction to Superforms: https://superforms.rocks/get-started
You can also watch this excellent introduction video to see what's possible: https://www.youtube.com/watch?v=MiKzH3kcVfs
Help & support
- If you're using Superforms in non-profit circumstances, support is completely free; a star on Github is more than enough to show your appreciation. Join the #free-support channel on Discord and ask away!
- If you're making or aiming to make money on your project, a donation proportional to the current profit of the project or the company you work for, will give you a month of commercial support. Donate with one of the options on the website, then ask in the #commercial-support channel on Discord.
Contributing
General feedback, feature requests, bug reports, PR:s, are very welcome as a Github issue or on the Discord server!
Donating
If you appreciate the hard work behind Superforms, please support open source software with a donation.