summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/rate-limit.ts
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2025-06-22 13:21:03 +0200
committerMaze Winther <mazewinther@gmail.com>2025-06-22 13:21:03 +0200
commitfaca97f1ae1ba870673347f98557191fcd5c123a (patch)
tree4c245e85f07677bb8545dd4068bca1b156e853d6 /apps/web/src/lib/rate-limit.ts
parentceb253f5853e5f8f813b970c09cc5edceb6f9727 (diff)
downloadopencut-faca97f1ae1ba870673347f98557191fcd5c123a.tar.gz
add upstash rate limiting
Diffstat (limited to 'apps/web/src/lib/rate-limit.ts')
-rw-r--r--apps/web/src/lib/rate-limit.ts14
1 files changed, 14 insertions, 0 deletions
diff --git a/apps/web/src/lib/rate-limit.ts b/apps/web/src/lib/rate-limit.ts
new file mode 100644
index 00000000..bf1cce02
--- /dev/null
+++ b/apps/web/src/lib/rate-limit.ts
@@ -0,0 +1,14 @@
+// lib/rate-limit.ts
+import { Ratelimit } from "@upstash/ratelimit";
+import { Redis } from "@upstash/redis";
+
+const redis = new Redis({
+ url: process.env.UPSTASH_REDIS_REST_URL!,
+ token: process.env.UPSTASH_REDIS_REST_TOKEN!,
+});
+
+export const waitlistRateLimit = new Ratelimit({
+ redis,
+ limiter: Ratelimit.slidingWindow(5, "1 m"), // 5 requests per minute
+ analytics: true,
+});