https://github.com/arcjet/example-remix
An example Remix application protected by Arcjet.
https://github.com/arcjet/example-remix
bot-detection developer javascript nodejs pii-detection rate-limiting remix remix-run security security-tools typescript
Last synced: 7 months ago
JSON representation
An example Remix application protected by Arcjet.
- Host: GitHub
- URL: https://github.com/arcjet/example-remix
- Owner: arcjet
- License: apache-2.0
- Created: 2024-10-30T00:19:14.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-10T11:32:56.000Z (about 1 year ago)
- Last Synced: 2025-04-10T12:52:23.076Z (about 1 year ago)
- Topics: bot-detection, developer, javascript, nodejs, pii-detection, rate-limiting, remix, remix-run, security, security-tools, typescript
- Language: TypeScript
- Homepage: https://example.arcjet.com
- Size: 712 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
> [!IMPORTANT]
>
> [Remix is now React Router v7](https://remix.run/blog/incremental-path-to-react-19).
# Arcjet Remix example app
[Arcjet](https://arcjet.com) helps developers protect their apps in just a few
lines of code. Bot detection. Rate limiting. Email validation. Attack
protection. Data redaction. A developer-first approach to security.
This is an example Remix application demonstrating the use of multiple features.
There is a version deployed at
[https://example.arcjet.com](https://example.arcjet.com).
## Features
- [Signup form protection](https://example.arcjet.com/signup) uses Arcjet's
server-side email verification configured to block disposable providers and
ensure that the domain has a valid MX record. It also includes rate limiting
and bot protection to prevent automated abuse.
- [Bot protection](https://example.arcjet.com/bots) shows how a page can be
protected from automated clients.
- [Rate limiting](https://example.arcjet.com/rate-limiting) shows the use of
different rate limit configurations depending on the authenticated user. A
logged-in user can make more requests than an anonymous user.
- [Attack protection](https://example.arcjet.com/attack) demonstrates Arcjet
Shield, which detects suspicious behavior, such as SQL injection and
cross-site scripting attacks.
- [Sensitive info](https://example.arcjet.com/sensitive-info) protects against
clients sending you sensitive information such as PII that you do not wish to
handle.
## Run locally
1. [Register for a free Arcjet account](https://app.arcjet.com).
2. Install dependencies:
```bash
npm ci
```
3. Rename `.env.example` to `.env` and add your Arcjet key. If you want to test
the rate limiting authentication, you will also need to add a GitHub app key
and secret after [creating a GitHub OAuth
app](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app).
4. Start the dev server
```bash
npm run dev
```
5. Open [http://localhost:3000](http://localhost:3000) in your browser.
## Deploy
If you use this for production, edit the `app/sessions.server.ts` file to
include your domain.
## Need help?
Check out [the docs](https://docs.arcjet.com/), [contact
support](https://docs.arcjet.com/support), or [join our Discord
server](https://arcjet.com/discord).
## Stack
- Auth: [Auth.js](https://authjs.dev/)
- App: [Remix](https://remix.run/)
- UI: [shadcn/ui](https://ui.shadcn.com/) + [Tailwind
CSS](https://tailwindcss.com/)
- Security: [Arcjet](https://arcjet.com/)