gitextract_l86r4jct/ ├── .autorc ├── .cursorrules.example ├── .github/ │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── SECURITY.md │ ├── copilot-instructions.md.example │ ├── dependabot.yml │ ├── pull_request_template.md │ └── workflows/ │ └── release.yml ├── .gitignore ├── .vscode/ │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── CHANGELOG.md ├── README.md ├── apps/ │ ├── api/ │ │ ├── .gitignore │ │ ├── __tests__/ │ │ │ └── health.test.ts │ │ ├── app/ │ │ │ ├── cron/ │ │ │ │ └── keep-alive/ │ │ │ │ └── route.ts │ │ │ ├── global-error.tsx │ │ │ ├── health/ │ │ │ │ └── route.ts │ │ │ ├── layout.tsx │ │ │ └── webhooks/ │ │ │ ├── auth/ │ │ │ │ └── route.ts │ │ │ └── payments/ │ │ │ └── route.ts │ │ ├── env.ts │ │ ├── instrumentation-client.ts │ │ ├── instrumentation.ts │ │ ├── next.config.ts │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── skip-ci.js │ │ ├── sentry.edge.config.ts │ │ ├── sentry.server.config.ts │ │ ├── tsconfig.json │ │ ├── vercel.json │ │ └── vitest.config.mts │ ├── app/ │ │ ├── .gitignore │ │ ├── __tests__/ │ │ │ ├── sign-in.test.tsx │ │ │ └── sign-up.test.tsx │ │ ├── app/ │ │ │ ├── (authenticated)/ │ │ │ │ ├── components/ │ │ │ │ │ ├── avatar-stack.tsx │ │ │ │ │ ├── collaboration-provider.tsx │ │ │ │ │ ├── cursors.tsx │ │ │ │ │ ├── header.tsx │ │ │ │ │ ├── notifications-provider.tsx │ │ │ │ │ ├── search.tsx │ │ │ │ │ └── sidebar.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── page.tsx │ │ │ │ ├── search/ │ │ │ │ │ └── page.tsx │ │ │ │ └── webhooks/ │ │ │ │ └── page.tsx │ │ │ ├── (unauthenticated)/ │ │ │ │ ├── layout.tsx │ │ │ │ ├── sign-in/ │ │ │ │ │ └── [[...sign-in]]/ │ │ │ │ │ └── page.tsx │ │ │ │ └── sign-up/ │ │ │ │ └── [[...sign-up]]/ │ │ │ │ └── page.tsx │ │ │ ├── .well-known/ │ │ │ │ └── vercel/ │ │ │ │ └── flags/ │ │ │ │ └── route.ts │ │ │ ├── actions/ │ │ │ │ └── users/ │ │ │ │ ├── get.ts │ │ │ │ └── search.ts │ │ │ ├── api/ │ │ │ │ └── collaboration/ │ │ │ │ └── auth/ │ │ │ │ └── route.ts │ │ │ ├── global-error.tsx │ │ │ ├── layout.tsx │ │ │ └── styles.css │ │ ├── env.ts │ │ ├── instrumentation-client.ts │ │ ├── instrumentation.ts │ │ ├── liveblocks.config.ts │ │ ├── next.config.ts │ │ ├── package.json │ │ ├── postcss.config.mjs │ │ ├── proxy.ts │ │ ├── scripts/ │ │ │ └── skip-ci.js │ │ ├── sentry.edge.config.ts │ │ ├── sentry.server.config.ts │ │ ├── tsconfig.json │ │ ├── vercel.json │ │ └── vitest.config.mts │ ├── docs/ │ │ ├── api-reference/ │ │ │ ├── endpoint/ │ │ │ │ ├── create.mdx │ │ │ │ ├── delete.mdx │ │ │ │ └── get.mdx │ │ │ ├── introduction.mdx │ │ │ └── openapi.json │ │ ├── development.mdx │ │ ├── essentials/ │ │ │ ├── code.mdx │ │ │ ├── images.mdx │ │ │ ├── markdown.mdx │ │ │ ├── navigation.mdx │ │ │ ├── reusable-snippets.mdx │ │ │ └── settings.mdx │ │ ├── introduction.mdx │ │ ├── mint.json │ │ ├── package.json │ │ ├── quickstart.mdx │ │ └── snippets/ │ │ └── snippet-intro.mdx │ ├── email/ │ │ ├── package.json │ │ └── tsconfig.json │ ├── storybook/ │ │ ├── .storybook/ │ │ │ ├── main.ts │ │ │ ├── preview-head.html │ │ │ └── preview.tsx │ │ ├── README.md │ │ ├── next.config.ts │ │ ├── package.json │ │ ├── postcss.config.mjs │ │ ├── scripts/ │ │ │ └── skip-ci.js │ │ ├── stories/ │ │ │ ├── accordion.stories.tsx │ │ │ ├── alert-dialog.stories.tsx │ │ │ ├── alert.stories.tsx │ │ │ ├── aspect-ratio.stories.tsx │ │ │ ├── avatar.stories.tsx │ │ │ ├── badge.stories.tsx │ │ │ ├── breadcrumb.stories.tsx │ │ │ ├── button.stories.tsx │ │ │ ├── calendar.stories.tsx │ │ │ ├── card.stories.tsx │ │ │ ├── carousel.stories.tsx │ │ │ ├── chart.stories.tsx │ │ │ ├── checkbox.stories.tsx │ │ │ ├── collapsible.stories.tsx │ │ │ ├── command.stories.tsx │ │ │ ├── context-menu.stories.tsx │ │ │ ├── dialog.stories.tsx │ │ │ ├── drawer.stories.tsx │ │ │ ├── dropdown-menu.stories.tsx │ │ │ ├── form.stories.tsx │ │ │ ├── hover-card.stories.tsx │ │ │ ├── input-otp.stories.tsx │ │ │ ├── input.stories.tsx │ │ │ ├── label.stories.tsx │ │ │ ├── menubar.stories.tsx │ │ │ ├── navigation-menu.stories.tsx │ │ │ ├── pagination.stories.tsx │ │ │ ├── popover.stories.tsx │ │ │ ├── progress.stories.tsx │ │ │ ├── radio-group.stories.tsx │ │ │ ├── resizable.stories.tsx │ │ │ ├── scroll-area.stories.tsx │ │ │ ├── select.stories.tsx │ │ │ ├── separator.stories.tsx │ │ │ ├── sheet.stories.tsx │ │ │ ├── sidebar.stories.tsx │ │ │ ├── skeleton.stories.tsx │ │ │ ├── slider.stories.tsx │ │ │ ├── sonner.stories.tsx │ │ │ ├── switch.stories.tsx │ │ │ ├── table.stories.tsx │ │ │ ├── tabs.stories.tsx │ │ │ ├── textarea.stories.tsx │ │ │ ├── toggle-group.stories.tsx │ │ │ ├── toggle.stories.tsx │ │ │ └── tooltip.stories.tsx │ │ ├── tsconfig.json │ │ └── vercel.json │ ├── studio/ │ │ ├── package.json │ │ └── tsconfig.json │ └── web/ │ ├── .gitignore │ ├── app/ │ │ ├── .well-known/ │ │ │ └── vercel/ │ │ │ └── flags/ │ │ │ └── route.ts │ │ └── [locale]/ │ │ ├── (home)/ │ │ │ ├── components/ │ │ │ │ ├── cases.tsx │ │ │ │ ├── cta.tsx │ │ │ │ ├── faq.tsx │ │ │ │ ├── features.tsx │ │ │ │ ├── hero.tsx │ │ │ │ ├── stats.tsx │ │ │ │ └── testimonials.tsx │ │ │ └── page.tsx │ │ ├── blog/ │ │ │ ├── [slug]/ │ │ │ │ └── page.tsx │ │ │ └── page.tsx │ │ ├── components/ │ │ │ ├── footer.tsx │ │ │ └── header/ │ │ │ ├── index.tsx │ │ │ └── language-switcher.tsx │ │ ├── contact/ │ │ │ ├── actions/ │ │ │ │ └── contact.tsx │ │ │ ├── components/ │ │ │ │ └── contact-form.tsx │ │ │ └── page.tsx │ │ ├── global-error.tsx │ │ ├── layout.tsx │ │ ├── legal/ │ │ │ ├── [slug]/ │ │ │ │ └── page.tsx │ │ │ └── layout.tsx │ │ ├── pricing/ │ │ │ └── page.tsx │ │ ├── robots.ts │ │ ├── sitemap.ts │ │ └── styles.css │ ├── components/ │ │ └── sidebar.tsx │ ├── env.ts │ ├── instrumentation-client.ts │ ├── instrumentation.ts │ ├── next.config.ts │ ├── package.json │ ├── postcss.config.mjs │ ├── proxy.ts │ ├── scripts/ │ │ └── skip-ci.js │ ├── sentry.edge.config.ts │ ├── sentry.server.config.ts │ ├── tsconfig.json │ └── vercel.json ├── biome.jsonc ├── docs/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── [lang]/ │ │ │ ├── (home)/ │ │ │ │ ├── components/ │ │ │ │ │ ├── apps/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── cta.tsx │ │ │ │ │ ├── demo.tsx │ │ │ │ │ ├── features/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── hero.tsx │ │ │ │ │ ├── installer.tsx │ │ │ │ │ ├── social.tsx │ │ │ │ │ └── video.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ │ ├── docs/ │ │ │ │ ├── [[...slug]]/ │ │ │ │ │ └── page.tsx │ │ │ │ └── layout.tsx │ │ │ ├── layout.tsx │ │ │ ├── llms.mdx/ │ │ │ │ └── [[...slug]]/ │ │ │ │ └── route.ts │ │ │ ├── llms.txt/ │ │ │ │ └── route.ts │ │ │ ├── og/ │ │ │ │ └── [...slug]/ │ │ │ │ └── route.tsx │ │ │ ├── rss.xml/ │ │ │ │ └── route.ts │ │ │ └── sitemap.md/ │ │ │ └── route.ts │ │ ├── actions/ │ │ │ └── feedback/ │ │ │ ├── emotions.ts │ │ │ └── index.ts │ │ ├── api/ │ │ │ ├── chat/ │ │ │ │ ├── route.ts │ │ │ │ ├── tools.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ └── search/ │ │ │ └── route.ts │ │ ├── global.css │ │ ├── robots.ts │ │ ├── sitemap.ts │ │ └── styles/ │ │ └── geistdocs.css │ ├── components/ │ │ ├── ai-elements/ │ │ │ ├── code-block.tsx │ │ │ ├── conversation.tsx │ │ │ ├── message.tsx │ │ │ ├── open-in-chat.tsx │ │ │ ├── prompt-input.tsx │ │ │ ├── shimmer.tsx │ │ │ ├── sources.tsx │ │ │ └── suggestion.tsx │ │ ├── geistdocs/ │ │ │ ├── ask-ai.tsx │ │ │ ├── callout.tsx │ │ │ ├── chat.tsx │ │ │ ├── code-block-tabs.tsx │ │ │ ├── code-block.tsx │ │ │ ├── copy-chat.tsx │ │ │ ├── copy-page.tsx │ │ │ ├── desktop-menu.tsx │ │ │ ├── docs-layout.tsx │ │ │ ├── docs-page.tsx │ │ │ ├── edit-source.tsx │ │ │ ├── feedback.tsx │ │ │ ├── footer.tsx │ │ │ ├── github-button.tsx │ │ │ ├── home-layout.tsx │ │ │ ├── icons.tsx │ │ │ ├── installer.tsx │ │ │ ├── language-selector.tsx │ │ │ ├── mdx-components.tsx │ │ │ ├── mermaid.tsx │ │ │ ├── message-metadata.tsx │ │ │ ├── mobile-menu.tsx │ │ │ ├── navbar.tsx │ │ │ ├── open-in-chat.tsx │ │ │ ├── provider.tsx │ │ │ ├── rss-button.tsx │ │ │ ├── scroll-top.tsx │ │ │ ├── search.tsx │ │ │ ├── sidebar.tsx │ │ │ ├── theme-toggle.tsx │ │ │ └── video.tsx │ │ ├── ui/ │ │ │ ├── badge.tsx │ │ │ ├── button-group.tsx │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── command.tsx │ │ │ ├── dialog.tsx │ │ │ ├── drawer.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── input-group.tsx │ │ │ ├── input.tsx │ │ │ ├── kbd.tsx │ │ │ ├── navigation-menu.tsx │ │ │ ├── popover.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── sonner.tsx │ │ │ ├── spinner.tsx │ │ │ ├── textarea.tsx │ │ │ └── tooltip.tsx │ │ └── vercel.tsx │ ├── components.json │ ├── content/ │ │ └── docs/ │ │ ├── addons/ │ │ │ ├── c15t.mdx │ │ │ ├── dub.mdx │ │ │ ├── fuse.mdx │ │ │ ├── joyful.mdx │ │ │ ├── metabase.mdx │ │ │ ├── motion.mdx │ │ │ ├── next-safe-action.mdx │ │ │ ├── nuqs.mdx │ │ │ ├── react-wrap-balancer.mdx │ │ │ ├── trunk.mdx │ │ │ └── zustand.mdx │ │ ├── apps/ │ │ │ ├── api.mdx │ │ │ ├── app.mdx │ │ │ ├── docs.mdx │ │ │ ├── email.mdx │ │ │ ├── storybook.mdx │ │ │ ├── studio.mdx │ │ │ └── web.mdx │ │ ├── deployment/ │ │ │ ├── docker.mdx │ │ │ ├── netlify.mdx │ │ │ └── vercel.mdx │ │ ├── examples/ │ │ │ └── ai-chatbot.mdx │ │ ├── faq.mdx │ │ ├── index.mdx │ │ ├── meta.json │ │ ├── migrations/ │ │ │ ├── authentication/ │ │ │ │ ├── appwrite.mdx │ │ │ │ ├── authjs.mdx │ │ │ │ ├── better-auth.mdx │ │ │ │ └── supabase.mdx │ │ │ ├── cms/ │ │ │ │ └── content-collections.mdx │ │ │ ├── database/ │ │ │ │ ├── appwrite.mdx │ │ │ │ ├── convex.mdx │ │ │ │ ├── drizzle.mdx │ │ │ │ ├── edgedb.mdx │ │ │ │ ├── planetscale.mdx │ │ │ │ ├── prisma-postgres.mdx │ │ │ │ ├── supabase.mdx │ │ │ │ └── turso.mdx │ │ │ ├── documentation/ │ │ │ │ └── fumadocs.mdx │ │ │ ├── flags/ │ │ │ │ └── hypertune.mdx │ │ │ ├── formatting/ │ │ │ │ └── eslint.mdx │ │ │ ├── notifications/ │ │ │ │ └── novu.mdx │ │ │ ├── payments/ │ │ │ │ ├── lemon-squeezy.mdx │ │ │ │ └── paddle.mdx │ │ │ └── storage/ │ │ │ ├── appwrite.mdx │ │ │ └── upload-thing.mdx │ │ ├── packages/ │ │ │ ├── analytics/ │ │ │ │ ├── product.mdx │ │ │ │ └── web.mdx │ │ │ ├── authentication.mdx │ │ │ ├── cms/ │ │ │ │ ├── components.mdx │ │ │ │ ├── meta.json │ │ │ │ ├── metadata.mdx │ │ │ │ └── overview.mdx │ │ │ ├── collaboration.mdx │ │ │ ├── cron.mdx │ │ │ ├── database.mdx │ │ │ ├── design-system/ │ │ │ │ ├── colors.mdx │ │ │ │ ├── components.mdx │ │ │ │ ├── dark-mode.mdx │ │ │ │ ├── meta.json │ │ │ │ ├── provider.mdx │ │ │ │ └── typography.mdx │ │ │ ├── email.mdx │ │ │ ├── flags.mdx │ │ │ ├── formatting.mdx │ │ │ ├── internationalization.mdx │ │ │ ├── meta.json │ │ │ ├── next-config/ │ │ │ │ ├── bundle-analysis.mdx │ │ │ │ ├── meta.json │ │ │ │ └── overview.mdx │ │ │ ├── notifications.mdx │ │ │ ├── observability/ │ │ │ │ ├── debugging.mdx │ │ │ │ ├── error-capture.mdx │ │ │ │ ├── logging.mdx │ │ │ │ └── uptime.mdx │ │ │ ├── payments.mdx │ │ │ ├── security/ │ │ │ │ ├── application.mdx │ │ │ │ ├── dependencies.mdx │ │ │ │ ├── headers.mdx │ │ │ │ ├── ip-geolocation.mdx │ │ │ │ └── rate-limiting.mdx │ │ │ ├── seo/ │ │ │ │ ├── json-ld.mdx │ │ │ │ ├── meta.json │ │ │ │ ├── metadata.mdx │ │ │ │ └── sitemap.mdx │ │ │ ├── storage.mdx │ │ │ ├── toolbar.mdx │ │ │ └── webhooks/ │ │ │ ├── inbound.mdx │ │ │ └── outbound.mdx │ │ ├── philosophy.mdx │ │ ├── setup/ │ │ │ ├── env.mdx │ │ │ ├── installation.mdx │ │ │ ├── meta.json │ │ │ ├── prerequisites.mdx │ │ │ └── quickstart.mdx │ │ ├── structure.mdx │ │ └── updates.mdx │ ├── geistdocs.tsx │ ├── hooks/ │ │ ├── geistdocs/ │ │ │ ├── use-chat.ts │ │ │ └── use-sidebar.ts │ │ └── use-mobile.ts │ ├── lib/ │ │ ├── geistdocs/ │ │ │ ├── db.ts │ │ │ ├── fonts.ts │ │ │ ├── i18n.ts │ │ │ ├── md-tracking.ts │ │ │ └── source.ts │ │ └── utils.ts │ ├── next.config.ts │ ├── package.json │ ├── postcss.config.mjs │ ├── proxy.ts │ ├── source.config.ts │ ├── tsconfig.json │ └── turbo.json ├── license.md ├── package.json ├── packages/ │ ├── ai/ │ │ ├── components/ │ │ │ ├── message.tsx │ │ │ └── thread.tsx │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── lib/ │ │ │ ├── models.ts │ │ │ └── react.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── analytics/ │ │ ├── index.ts │ │ ├── instrumentation-client.ts │ │ ├── keys.ts │ │ ├── package.json │ │ ├── provider.tsx │ │ ├── server.ts │ │ └── tsconfig.json │ ├── auth/ │ │ ├── client.ts │ │ ├── components/ │ │ │ ├── sign-in.tsx │ │ │ └── sign-up.tsx │ │ ├── keys.ts │ │ ├── package.json │ │ ├── provider.tsx │ │ ├── proxy.ts │ │ ├── server.ts │ │ └── tsconfig.json │ ├── cms/ │ │ ├── basehub-types.d.ts │ │ ├── basehub.config.ts │ │ ├── components/ │ │ │ ├── body.tsx │ │ │ ├── code-block.tsx │ │ │ ├── feed.tsx │ │ │ ├── image.tsx │ │ │ ├── toc.tsx │ │ │ └── toolbar.tsx │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── next-config.ts │ │ ├── package.json │ │ ├── tsconfig.json │ │ └── typescript-config.json │ ├── collaboration/ │ │ ├── auth.ts │ │ ├── config.ts │ │ ├── hooks.ts │ │ ├── keys.ts │ │ ├── package.json │ │ ├── room.tsx │ │ └── tsconfig.json │ ├── database/ │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── package.json │ │ ├── prisma/ │ │ │ └── schema.prisma │ │ ├── prisma.config.ts │ │ └── tsconfig.json │ ├── design-system/ │ │ ├── components/ │ │ │ ├── mode-toggle.tsx │ │ │ └── ui/ │ │ │ ├── accordion.tsx │ │ │ ├── alert-dialog.tsx │ │ │ ├── alert.tsx │ │ │ ├── aspect-ratio.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── button-group.tsx │ │ │ ├── button.tsx │ │ │ ├── calendar.tsx │ │ │ ├── card.tsx │ │ │ ├── carousel.tsx │ │ │ ├── chart.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── command.tsx │ │ │ ├── context-menu.tsx │ │ │ ├── dialog.tsx │ │ │ ├── drawer.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── empty.tsx │ │ │ ├── field.tsx │ │ │ ├── form.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── input-group.tsx │ │ │ ├── input-otp.tsx │ │ │ ├── input.tsx │ │ │ ├── item.tsx │ │ │ ├── kbd.tsx │ │ │ ├── label.tsx │ │ │ ├── menubar.tsx │ │ │ ├── navigation-menu.tsx │ │ │ ├── pagination.tsx │ │ │ ├── popover.tsx │ │ │ ├── progress.tsx │ │ │ ├── radio-group.tsx │ │ │ ├── resizable.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── sidebar.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── slider.tsx │ │ │ ├── sonner.tsx │ │ │ ├── spinner.tsx │ │ │ ├── switch.tsx │ │ │ ├── table.tsx │ │ │ ├── tabs.tsx │ │ │ ├── textarea.tsx │ │ │ ├── toggle-group.tsx │ │ │ ├── toggle.tsx │ │ │ └── tooltip.tsx │ │ ├── components.json │ │ ├── hooks/ │ │ │ └── use-mobile.ts │ │ ├── index.tsx │ │ ├── lib/ │ │ │ ├── fonts.ts │ │ │ └── utils.ts │ │ ├── package.json │ │ ├── postcss.config.mjs │ │ ├── providers/ │ │ │ └── theme.tsx │ │ ├── styles/ │ │ │ └── globals.css │ │ └── tsconfig.json │ ├── email/ │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── package.json │ │ ├── templates/ │ │ │ └── contact.tsx │ │ └── tsconfig.json │ ├── feature-flags/ │ │ ├── access.ts │ │ ├── components/ │ │ │ └── toolbar.tsx │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── lib/ │ │ │ ├── create-flag.ts │ │ │ └── toolbar.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── internationalization/ │ │ ├── dictionaries/ │ │ │ ├── de.json │ │ │ ├── en.json │ │ │ ├── es.json │ │ │ ├── fr.json │ │ │ ├── pt.json │ │ │ └── zh.json │ │ ├── index.ts │ │ ├── languine.json │ │ ├── package.json │ │ ├── proxy.ts │ │ └── tsconfig.json │ ├── next-config/ │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── notifications/ │ │ ├── components/ │ │ │ ├── provider.tsx │ │ │ └── trigger.tsx │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── package.json │ │ ├── styles.css │ │ └── tsconfig.json │ ├── observability/ │ │ ├── client.ts │ │ ├── edge.ts │ │ ├── error.ts │ │ ├── instrumentation.ts │ │ ├── keys.ts │ │ ├── log.ts │ │ ├── next-config.ts │ │ ├── package.json │ │ ├── server.ts │ │ ├── status/ │ │ │ ├── index.tsx │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── payments/ │ │ ├── ai.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── rate-limit/ │ │ ├── index.ts │ │ ├── keys.ts │ │ └── package.json │ ├── security/ │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── package.json │ │ ├── proxy.ts │ │ └── tsconfig.json │ ├── seo/ │ │ ├── json-ld.tsx │ │ ├── metadata.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── storage/ │ │ ├── client.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── typescript-config/ │ │ ├── base.json │ │ ├── nextjs.json │ │ ├── package.json │ │ └── react-library.json │ └── webhooks/ │ ├── index.ts │ ├── keys.ts │ ├── lib/ │ │ └── svix.ts │ ├── package.json │ └── tsconfig.json ├── scripts/ │ ├── index.ts │ ├── initialize.ts │ ├── update.ts │ └── utils.ts ├── skills/ │ └── next-forge/ │ ├── SKILL.md │ └── references/ │ ├── architecture.md │ ├── customization.md │ ├── packages.md │ └── setup.md ├── tsconfig.json ├── tsup.config.ts ├── turbo/ │ └── generators/ │ ├── config.ts │ ├── package.json │ └── templates/ │ ├── package.json.hbs │ └── tsconfig.json.hbs └── turbo.json