<div align="center">
  <img src="https://raw.githubusercontent.com/TheEdoRan/next-safe-action/main/assets/logo.png" alt="next-safe-action logo" width="36" height="36">
  <a href="https://github.com/TheEdoRan/next-safe-action"><h1>next-safe-action</h1></a>
</div>

**next-safe-action** is a library that takes full advantage of the latest and greatest Next.js, React and TypeScript features to let you define **type safe** Server Actions and execute them inside React Components.

## How does it work?

Like magic. 🪄

https://github.com/TheEdoRan/next-safe-action/assets/1337629/664eb3ee-92f3-4d4a-ba1b-a3b1c13fff04

## Features

- ✅ Pretty simple
- ✅ End-to-end type safety
- ✅ Form Actions support
- ✅ Powerful middleware system
- ✅ Input/output validation using multiple validation libraries
- ✅ Advanced server error handling
- ✅ Optimistic updates

## Documentation

**Explore the documentation for the current stable version of the library on the [next-safe-action v7 website](https://next-safe-action.dev).** ✨

### Looking for v6 docs?

You can keep using version 6 and eventually upgrade to version 7. Check out the v6 documentation [here](https://v6.next-safe-action.dev).

## Migrate from v6 to v7

Check out the [v6 to v7 migration guide](https://next-safe-action.dev/docs/migrations/v6-to-v7) to learn how to update your code for v7.

## Installation

```bash
npm i next-safe-action
```

## Playground

You can find a basic working implementation of the library [here](https://github.com/TheEdoRan/next-safe-action/tree/main/apps/playground).

## Sponsors

A big shout-out to all our [sponsors](https://github.com/sponsors/TheEdoRan)! You’re the driving force behind this library's growth, and we're truly grateful for your support. ❤️

<table>
  <tr>
   <td align="center"><a href="https://arcjet.com/?ref=next-safe-action">  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://arcjet.com/logo/arcjet-dark-lockup-voyage-horizontal.svg">
    <img src="https://arcjet.com/logo/arcjet-light-lockup-voyage-horizontal.svg" alt="Arcjet Logo" height="128" width="auto">
  </picture><br />Arcjet</a></td>
  </tr>
</table>

## Contributing

If you want to contribute to next-safe-action, please check out the [contributing guide](https://github.com/TheEdoRan/next-safe-action/blob/main/CONTRIBUTING.md).

If you found bugs or just want to ask a question, feel free to open an issue or a discussion by following the [issue templates](https://github.com/TheEdoRan/next-safe-action/issues/new/choose).

## Contributors

<a href="https://github.com/TheEdoRan/next-safe-action/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=TheEdoRan/next-safe-action" />
</a>

Made with [contrib.rocks](https://contrib.rocks).

## License

next-safe-action is released under the [MIT License](https://github.com/TheEdoRan/next-safe-action/blob/main/LICENSE).
