diff --git a/.gitignore b/.gitignore index 24111c6..0536d95 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,3 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts - diff --git a/app/demo/page.tsx b/app/demo/page.tsx new file mode 100644 index 0000000..2e101ef --- /dev/null +++ b/app/demo/page.tsx @@ -0,0 +1,44 @@ +"use client"; + +export default function DemoPage() { + return ( +
+ 👉 Click the blue dot to begin the demo! +
+ +Absolutely! After the AI generates your form, you have full diff --git a/middleware.ts b/middleware.ts index 9d01a89..8febcb8 100644 --- a/middleware.ts +++ b/middleware.ts @@ -4,24 +4,24 @@ import { Ratelimit } from "@upstash/ratelimit"; import { Redis } from "@upstash/redis"; // Define public routes that don't require authentication -const isPublicRoute = createRouteMatcher(['/', '/sign-in(.*)', '/sign-up(.*)']); +const isPublicRoute = createRouteMatcher(['/', '/sign-in(.*)', '/sign-up(.*)', '/demo(.*)']); // Graceful Redis Initialization // This prevents crashes in CI/Build environments where env vars might be missing const redis = (process.env.UPSTASH_REDIS_REST_URL && process.env.UPSTASH_REDIS_REST_TOKEN) ? new Redis({ - url: process.env.UPSTASH_REDIS_REST_URL, - token: process.env.UPSTASH_REDIS_REST_TOKEN, - }) + url: process.env.UPSTASH_REDIS_REST_URL, + token: process.env.UPSTASH_REDIS_REST_TOKEN, + }) : null; // Return null if config is missing // Initialize Rate Limiter safely const ratelimit = redis ? new Ratelimit({ - redis: redis, - limiter: Ratelimit.slidingWindow(10, "10 m"), - analytics: true, - }) + redis: redis, + limiter: Ratelimit.slidingWindow(10, "10 m"), + analytics: true, + }) : null; export default clerkMiddleware(async (auth, req) => {