diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml
deleted file mode 100644
index b9f8fb7b64..0000000000
--- a/.github/workflows/build-docs.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-name: Build Docs
-on:
- workflow_call:
-
-permissions:
- contents: read
-
-jobs:
- build:
- name: Build Docs
- runs-on: ubuntu-latest
- timeout-minutes: 30
-
- steps:
- - uses: actions/checkout@v3
- - uses: ./.github/actions/dangerous-git-checkout
-
- - name: Setup Node.js 20.x
- uses: actions/setup-node@v3
- with:
- node-version: 20.x
-
- - name: Install pnpm
- uses: pnpm/action-setup@v4
-
- - name: Install dependencies
- run: pnpm install --config.platform=linux --config.architecture=x64
- shell: bash
-
- - run: |
- pnpm build --filter=@formbricks/docs...
- shell: bash
diff --git a/apps/docs/.env.example b/apps/docs/.env.example
deleted file mode 100644
index 223df0abfd..0000000000
--- a/apps/docs/.env.example
+++ /dev/null
@@ -1,10 +0,0 @@
-NEXT_PUBLIC_FORMBRICKS_COM_API_HOST=http://localhost:3000
-NEXT_PUBLIC_FORMBRICKS_COM_ENVIRONMENT_ID=
-NEXT_PUBLIC_FORMBRICKS_COM_DOCS_FEEDBACK_SURVEY_ID=
-
-# Strapi API Key
-STRAPI_API_KEY=
-
-NEXT_PUBLIC_DOCSEARCH_APP_ID=
-NEXT_PUBLIC_DOCSEARCH_API_KEY=
-NEXT_PUBLIC_DOCSEARCH_INDEX_NAME=
diff --git a/apps/docs/.eslintrc.js b/apps/docs/.eslintrc.js
deleted file mode 100644
index 8e930ff596..0000000000
--- a/apps/docs/.eslintrc.js
+++ /dev/null
@@ -1,19 +0,0 @@
-module.exports = {
- root: true,
- extends: ["@formbricks/eslint-config/next.js"],
- parserOptions: {
- project: "tsconfig.json",
- tsconfigRootDir: __dirname,
- },
- rules: {
- "@typescript-eslint/restrict-template-expressions": "off",
- "import/no-cycle": "off",
- },
- settings: {
- "import/resolver": {
- typescript: {
- project: "tsconfig.json",
- },
- },
- },
-};
diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore
deleted file mode 100644
index aeb7219b23..0000000000
--- a/apps/docs/.gitignore
+++ /dev/null
@@ -1,38 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-/.pnp
-.pnp.js
-
-# testing
-/coverage
-
-# next.js
-/.next/
-/out/
-
-# production
-/build
-
-# misc
-.DS_Store
-*.pem
-
-# debug
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# local env files
-.env*.local
-
-# vercel
-.vercel
-
-# typescript
-*.tsbuildinfo
-next-env.d.ts
-
-public/sitemap*.xml
-public/robots.txt
\ No newline at end of file
diff --git a/apps/docs/LICENSE.md b/apps/docs/LICENSE.md
deleted file mode 100644
index 3a28c7d33e..0000000000
--- a/apps/docs/LICENSE.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# Tailwind UI License
-
-## Personal License
-
-Tailwind Labs Inc. grants you an on-going, non-exclusive license to use the Components and Templates.
-
-The license grants permission to **one individual** (the Licensee) to access and use the Components and Templates.
-
-You **can**:
-
-- Use the Components and Templates to create unlimited End Products.
-- Modify the Components and Templates to create derivative components and templates. Those components and templates are subject to this license.
-- Use the Components and Templates to create unlimited End Products for unlimited Clients.
-- Use the Components and Templates to create End Products where the End Product is sold to End Users.
-- Use the Components and Templates to create End Products that are open source and freely available to End Users.
-
-You **cannot**:
-
-- Use the Components and Templates to create End Products that are designed to allow an End User to build their own End Products using the Components and Templates or derivatives of the Components and Templates.
-- Re-distribute the Components and Templates or derivatives of the Components and Templates separately from an End Product, neither in code or as design assets.
-- Share your access to the Components and Templates with any other individuals.
-- Use the Components and Templates to produce anything that may be deemed by Tailwind Labs Inc, in their sole and absolute discretion, to be competitive or in conflict with the business of Tailwind Labs Inc.
-
-### Example usage
-
-Examples of usage **allowed** by the license:
-
-- Creating a personal website by yourself.
-- Creating a website or web application for a client that will be owned by that client.
-- Creating a commercial SaaS application (like an invoicing app for example) where end users have to pay a fee to use the application.
-- Creating a commercial self-hosted web application that is sold to end users for a one-time fee.
-- Creating a web application where the primary purpose is clearly not to simply re-distribute the components (like a conference organization app that uses the components for its UI for example) that is free and open source, where the source code is publicly available.
-
-Examples of usage **not allowed** by the license:
-
-- Creating a repository of your favorite Tailwind UI components or templates (or derivatives based on Tailwind UI components or templates) and publishing it publicly.
-- Creating a React or Vue version of Tailwind UI and making it available either for sale or for free.
-- Create a Figma or Sketch UI kit based on the Tailwind UI component designs.
-- Creating a "website builder" project where end users can build their own websites using components or templates included with or derived from Tailwind UI.
-- Creating a theme, template, or project starter kit using the components or templates and making it available either for sale or for free.
-- Creating an admin panel tool (like [Laravel Nova](https://nova.laravel.com/) or [ActiveAdmin](https://activeadmin.info/)) that is made available either for sale or for free.
-
-In simple terms, use Tailwind UI for anything you like as long as it doesn't compete with Tailwind UI.
-
-### Personal License Definitions
-
-Licensee is the individual who has purchased a Personal License.
-
-Components and Templates are the source code and design assets made available to the Licensee after purchasing a Tailwind UI license.
-
-End Product is any artifact produced that incorporates the Components or Templates or derivatives of the Components or Templates.
-
-End User is a user of an End Product.
-
-Client is an individual or entity receiving custom professional services directly from the Licensee, produced specifically for that individual or entity. Customers of software-as-a-service products are not considered clients for the purpose of this document.
-
-## Team License
-
-Tailwind Labs Inc. grants you an on-going, non-exclusive license to use the Components and Templates.
-
-The license grants permission for **up to 25 Employees and Contractors of the Licensee** to access and use the Components and Templates.
-
-You **can**:
-
-- Use the Components and Templates to create unlimited End Products.
-- Modify the Components and Templates to create derivative components and templates. Those components and templates are subject to this license.
-- Use the Components and Templates to create unlimited End Products for unlimited Clients.
-- Use the Components and Templates to create End Products where the End Product is sold to End Users.
-- Use the Components and Templates to create End Products that are open source and freely available to End Users.
-
-You **cannot**:
-
-- Use the Components or Templates to create End Products that are designed to allow an End User to build their own End Products using the Components or Templates or derivatives of the Components or Templates.
-- Re-distribute the Components or Templates or derivatives of the Components or Templates separately from an End Product.
-- Use the Components or Templates to create End Products that are the property of any individual or entity other than the Licensee or Clients of the Licensee.
-- Use the Components or Templates to produce anything that may be deemed by Tailwind Labs Inc, in their sole and absolute discretion, to be competitive or in conflict with the business of Tailwind Labs Inc.
-
-### Example usage
-
-Examples of usage **allowed** by the license:
-
-- Creating a website for your company.
-- Creating a website or web application for a client that will be owned by that client.
-- Creating a commercial SaaS application (like an invoicing app for example) where end users have to pay a fee to use the application.
-- Creating a commercial self-hosted web application that is sold to end users for a one-time fee.
-- Creating a web application where the primary purpose is clearly not to simply re-distribute the components or templates (like a conference organization app that uses the components or a template for its UI for example) that is free and open source, where the source code is publicly available.
-
-Examples of use **not allowed** by the license:
-
-- Creating a repository of your favorite Tailwind UI components or template (or derivatives based on Tailwind UI components or templates) and publishing it publicly.
-- Creating a React or Vue version of Tailwind UI and making it available either for sale or for free.
-- Creating a "website builder" project where end users can build their own websites using components or templates included with or derived from Tailwind UI.
-- Creating a theme or template using the components or templates and making it available either for sale or for free.
-- Creating an admin panel tool (like [Laravel Nova](https://nova.laravel.com/) or [ActiveAdmin](https://activeadmin.info/)) that is made available either for sale or for free.
-- Creating any End Product that is not the sole property of either your company or a client of your company. For example your employees/contractors can't use your company Tailwind UI license to build their own websites or side projects.
-
-### Team License Definitions
-
-Licensee is the business entity who has purchased a Team License.
-
-Components and Templates are the source code and design assets made available to the Licensee after purchasing a Tailwind UI license.
-
-End Product is any artifact produced that incorporates the Components or Templates or derivatives of the Components or Templates.
-
-End User is a user of an End Product.
-
-Employee is a full-time or part-time employee of the Licensee.
-
-Contractor is an individual or business entity contracted to perform services for the Licensee.
-
-Client is an individual or entity receiving custom professional services directly from the Licensee, produced specifically for that individual or entity. Customers of software-as-a-service products are not considered clients for the purpose of this document.
-
-## Enforcement
-
-If you are found to be in violation of the license, access to your Tailwind UI account will be terminated, and a refund may be issued at our discretion. When license violation is blatant and malicious (such as intentionally redistributing the Components or Templates through private warez channels), no refund will be issued.
-
-The copyright of the Components and Templates is owned by Tailwind Labs Inc. You are granted only the permissions described in this license; all other rights are reserved. Tailwind Labs Inc. reserves the right to pursue legal remedies for any unauthorized use of the Components or Templates outside the scope of this license.
-
-## Liability
-
-Tailwind Labs Inc.’s liability to you for costs, damages, or other losses arising from your use of the Components or Templates — including third-party claims against you — is limited to a refund of your license fee. Tailwind Labs Inc. may not be held liable for any consequential damages related to your use of the Components or Templates.
-
-This Agreement is governed by the laws of the Province of Ontario and the applicable laws of Canada. Legal proceedings related to this Agreement may only be brought in the courts of Ontario. You agree to service of process at the e-mail address on your original order.
-
-## Questions?
-
-Unsure which license you need, or unsure if your use case is covered by our licenses?
-
-Email us at [support@tailwindui.com](mailto:support@tailwindui.com) with your questions.
diff --git a/apps/docs/app/[survey-type]/global/access-roles/images/add-member.webp b/apps/docs/app/[survey-type]/global/access-roles/images/add-member.webp
deleted file mode 100644
index dba6f062f5..0000000000
Binary files a/apps/docs/app/[survey-type]/global/access-roles/images/add-member.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/access-roles/images/bulk-invite.webp b/apps/docs/app/[survey-type]/global/access-roles/images/bulk-invite.webp
deleted file mode 100644
index cdd2189d5d..0000000000
Binary files a/apps/docs/app/[survey-type]/global/access-roles/images/bulk-invite.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/access-roles/images/individual-invite.webp b/apps/docs/app/[survey-type]/global/access-roles/images/individual-invite.webp
deleted file mode 100644
index fd9426ccc3..0000000000
Binary files a/apps/docs/app/[survey-type]/global/access-roles/images/individual-invite.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/access-roles/images/organization-settings-menu.webp b/apps/docs/app/[survey-type]/global/access-roles/images/organization-settings-menu.webp
deleted file mode 100644
index 63794142c6..0000000000
Binary files a/apps/docs/app/[survey-type]/global/access-roles/images/organization-settings-menu.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/access-roles/images/team-settings-menu.webp b/apps/docs/app/[survey-type]/global/access-roles/images/team-settings-menu.webp
deleted file mode 100644
index 63794142c6..0000000000
Binary files a/apps/docs/app/[survey-type]/global/access-roles/images/team-settings-menu.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/access-roles/page.mdx b/apps/docs/app/[survey-type]/global/access-roles/page.mdx
deleted file mode 100644
index 741d362571..0000000000
--- a/apps/docs/app/[survey-type]/global/access-roles/page.mdx
+++ /dev/null
@@ -1,173 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AddMember from "./images/add-member.webp";
-import BulkInvite from "./images/bulk-invite.webp";
-import IndvInvite from "./images/individual-invite.webp";
-import MenuItem from "./images/organization-settings-menu.webp";
-
-export const metadata = {
- title: "User Management",
- description:
- "Assign different roles to organization members to grant them specific rights like creating surveys, viewing responses, or managing organization members.",
-};
-
-# Organization Access Roles
-
-Learn about the different organization-level and team-level roles and how they affect permissions in Formbricks.
-
-## Memberships
-
-Permissions in Formbricks are broadly handled using organization-level roles, which apply to all teams and projects in the organization. Users on a self-hosting and Enterprise plan, have access to team-level roles, which enable more granular permissions.
-
-
- Access Roles is a feature of the **Enterprise Edition**. In the **Community Edition** and on the **Free** and **Startup** plan in the Cloud you can invite unlimited organization members as `Owner`.
-
-
-Here are the different access permissions, ranked from highest to lowest access
-
-1. Owner
-2. Manager
-3. Billing
-4. Member
-
-### Organisational level
-
-All users and their organization-level roles are listed in **Organization Settings > General**. Users can hold any of the following org-level roles:
-
-- **Billing** users can manage payment and compliance details in the organization.
-- **Org Members** can view most data in the organization and act in the projects they are members of. They cannot join projects on their own and need to be assigned.
-- **Org Managers** have full management access to all teams and projects. They can also manage the organization's membership. Org Managers can perform Team Admin actions without needing to join the team. They cannot change other organization settings.
-- **Org Owners** have full access to the organization, its data, and settings. Org Owners can perform Team Admin actions without needing to join the team.
-
-### Permissions at project level
-
-- **read**: read access to all resources (except settings) in the project.
-- **read & write**: read & write access to all resources (except settings) in the project.
-- **manage**: read & write access to all resources including settings in the project.
-
-### Team-level Roles
-
-- **Team Contributors** can view and act on surveys and responses.
-- **Team Admins** have additional permissions to manage their team's membership and projects. These permissions are granted at the team-level, and don't apply to teams where they're not a Team Admin.
-
-For more information on user roles & permissions, see below:
-
-| | Owner | Manager | Billing | Member |
-| -------------------------------- | ----- | ------- | ------- | ------ |
-| **Organization** | | | | |
-| Update organization | ✅ | ❌ | ❌ | ❌ |
-| Delete organization | ✅ | ❌ | ❌ | ❌ |
-| Add new Member | ✅ | ✅ | ❌ | ❌ |
-| Delete Member | ✅ | ✅ | ❌ | ❌ |
-| Update Member Access | ✅ | ✅ | ❌ | ❌ |
-| Update Billing | ✅ | ✅ | ✅ | ❌ |
-| **Project** | | | | |
-| Create Project | ✅ | ✅ | ❌ | ❌ |
-| Update Project Name | ✅ | ✅ | ❌ | ✅\*\* |
-| Update Project Recontact Options | ✅ | ✅ | ❌ | ✅\*\* |
-| Update Look & Feel | ✅ | ✅ | ❌ | ✅\*\* |
-| Update Survey Languages | ✅ | ✅ | ❌ | ✅\*\* |
-| Delete Project | ✅ | ✅ | ❌ | ❌ |
-| **Surveys** | | | | |
-| Create New Survey | ✅ | ✅ | ❌ | ✅\* |
-| Edit Survey | ✅ | ✅ | ❌ | ✅\* |
-| Delete Survey | ✅ | ✅ | ❌ | ✅\* |
-| View survey results | ✅ | ✅ | ❌ | ✅ |
-| **Response** | | | | |
-| Delete response | ✅ | ✅ | ❌ | ✅\* |
-| Add tags on response | ✅ | ✅ | ❌ | ✅\* |
-| Edit tags on response | ✅ | ✅ | ❌ | ✅\* |
-| **Actions** | | | | |
-| Create Action | ✅ | ✅ | ❌ | ✅\* |
-| Update Action | ✅ | ✅ | ❌ | ✅\* |
-| Delete Action | ✅ | ✅ | ❌ | ✅\* |
-| **API Keys** | | | | |
-| Create API key | ✅ | ✅ | ❌ | ✅\*\* |
-| Update API key | ✅ | ✅ | ❌ | ✅\*\* |
-| Delete API key | ✅ | ✅ | ❌ | ✅\*\* |
-| **Tags** | | | | |
-| Create tags | ✅ | ✅ | ❌ | ✅\* |
-| Update tags | ✅ | ✅ | ❌ | ✅\* |
-| Delete tags | ✅ | ✅ | ❌ | ✅\*\* |
-| **People** | | | | |
-| Delete Person | ✅ | ✅ | ❌ | ✅\* |
-| **Integrations** | | | | |
-| Manage Integrations | ✅ | ✅ | ❌ | ✅\* |
-
-\* - for the read & write permissions team members
-
-\*\* - for the manage permissions team members
-
-## Inviting organization members
-
-There are two ways to invite organization members: One by one or in bulk.
-
-### Invite organization members one by one
-
-1. Go to the `Organization Settings` page via the menu in the lower right corner:
-
-
-
-2. Click on the `Add member` button:
-
-
-
-3. In the modal, add the Name, Email and Role of the organization member you want to invite:
-
-
-
-
- Access Roles is a feature of the **Enterprise Edition**. In the **Community Edition** and on the **Free** and **Startup** plan in the Cloud you can invite unlimited organization members as `Owners`.
-
-
-Formbricks sends an email to the organization member with an invitation link. The organization member can accept the invitation or create a new account by clicking on the link.
-
-### Invite organization members in bulk
-
-1. Go to the `Organization Settings` page via the menu in the lower right corner:
-
-
-
-2. Click on the `Add member` button:
-
-
-
-3. In the modal, switch to `Bulk Invite`. You can download an example .CSV file to fill in the Name, Email and Role of the organization members you want to invite:
-
-
-
-4. Upload the filled .CSV file and invite the organization members in bulk ✅
-
-Formbricks sends an email to each organization member in the CSV. The member can accept the invitation or create a new account by clicking on the link.
-
----
diff --git a/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question-image.webp b/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question-image.webp
deleted file mode 100644
index 838117dc32..0000000000
Binary files a/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question-image.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question-video.webp b/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question-video.webp
deleted file mode 100644
index cb4b0536bc..0000000000
Binary files a/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question-video.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question.webp b/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question.webp
deleted file mode 100644
index 54ea67f3ff..0000000000
Binary files a/apps/docs/app/[survey-type]/global/add-image-or-video-question/images/add-image-or-video-to-question.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/add-image-or-video-question/page.mdx b/apps/docs/app/[survey-type]/global/add-image-or-video-question/page.mdx
deleted file mode 100644
index ca588519b0..0000000000
--- a/apps/docs/app/[survey-type]/global/add-image-or-video-question/page.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import AddImageOrVideoToQuestionImage from "./images/add-image-or-video-to-question-image.webp";
-import AddImageOrVideoToQuestionVideo from "./images/add-image-or-video-to-question-video.webp";
-import AddImageOrVideoToQuestion from "./images/add-image-or-video-to-question.webp";
-
-# Add Image or Video to a Question
-
-Enhance your questions by adding images or videos. This makes instructions clearer and the survey more engaging.
-
-## How to Add Images
-
-Click the icon on the right side of the question to add an image or video:
-
-
-
-Upload an image by clicking the upload icon or dragging the file:
-
-
-
-## How to Add Videos
-
-Toggle to add a video via link:
-
-
-
-### Supported Video Platforms
-
-We support YouTube, Vimeo, and Loom URLs.
-
-
- **YouTube Privacy Mode**: This option reduces tracking by converting YouTube URLs to no-cookie URLs. It only works with YouTube.
-
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-operators.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-operators.webp
deleted file mode 100644
index c0928693b3..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-operators.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-value.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-value.webp
deleted file mode 100644
index 678a56d404..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-value.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-variables.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-variables.webp
deleted file mode 100644
index b33a360a2c..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate-variables.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate.webp
deleted file mode 100644
index fad23ba416..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-calculate.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-jump.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/action-jump.webp
deleted file mode 100644
index acae8eea84..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-jump.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-options.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/action-options.webp
deleted file mode 100644
index 4635196200..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-options.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-require.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/action-require.webp
deleted file mode 100644
index 652dcbd7dd..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/action-require.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/add-logic.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/add-logic.webp
deleted file mode 100644
index 03504d21ca..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/add-logic.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-chaining.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-chaining.webp
deleted file mode 100644
index a5560aced8..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-chaining.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-operators.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-operators.webp
deleted file mode 100644
index 8d99b4d44e..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-operators.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-options.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-options.webp
deleted file mode 100644
index c08fbfa2b4..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-options.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-value.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-value.webp
deleted file mode 100644
index 4bc2d51218..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/condition-value.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/conditions.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/conditions.webp
deleted file mode 100644
index 85bb78d596..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/conditions.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/editor.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/editor.webp
deleted file mode 100644
index bb7dab326c..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/editor.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/images/question-logic.webp b/apps/docs/app/[survey-type]/global/conditional-logic/images/question-logic.webp
deleted file mode 100644
index 9d1d48845f..0000000000
Binary files a/apps/docs/app/[survey-type]/global/conditional-logic/images/question-logic.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/conditional-logic/page.mdx b/apps/docs/app/[survey-type]/global/conditional-logic/page.mdx
deleted file mode 100644
index d4952e1011..0000000000
--- a/apps/docs/app/[survey-type]/global/conditional-logic/page.mdx
+++ /dev/null
@@ -1,169 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import ActionCalculateOperators from "./images/action-calculate-operators.webp";
-import ActionCalculateValue from "./images/action-calculate-value.webp";
-import ActionCalculateVariables from "./images/action-calculate-variables.webp";
-import ActionCalculate from "./images/action-calculate.webp";
-import ActionJump from "./images/action-jump.webp";
-import ActionOptions from "./images/action-options.webp";
-import ActionRequire from "./images/action-require.webp";
-import AddLogic from "./images/add-logic.webp";
-import ConditionChaining from "./images/condition-chaining.webp";
-import ConditionOperators from "./images/condition-operators.webp";
-import ConditionOptions from "./images/condition-options.webp";
-import ConditionValue from "./images/condition-value.webp";
-import Conditions from "./images/conditions.webp";
-import Editor from "./images/editor.webp";
-import QuestionLogic from "./images/question-logic.webp";
-
-export const metadata = {
- title: "Conditional Logic",
- description:
- "Create complex survey logic with the Logic Editor. Use conditions, actions, and variables to create a personalized survey experience.",
-};
-
-# Conditional Logic
-
-Create complex survey logic with the Logic Editor. Use conditions, actions, and variables to create a personalized survey experience.
-
-
-
-## Terminology
-
-- **Condition**: A rule that determines when an action should be executed.
-- **Action**: A task that is executed when a condition is met.
-
-## **Creating Logic**
-
-1. **Add a Logic Block**: Click the `Add logic +` button to add a new logic block.
-
-
-
- You can add multiple logic blocks to a survey. Logic blocks are executed in the order they are added. You can rearrange the order of logic blocks.
-
-
-2. **Add Conditions**: Add conditions to the logic block. Conditions are rules that determine when an action should be executed.
-
-
-
-Conditons can be based on:
-
-- **Question**: The answer to a question.
-- **Variable**: A variable value.
-- **Hidden Field**: The value of a hidden field.
-
- 2.a **Condition Options**: Choose from a list of available conditions.
-
-
-
- 2.b **Condition Operators**: Choose an operator to compare the condition value.
-
-
-
- 2.c **Condition Value**: Enter a value to compare the condition against.
- Comparisons can be made against a fixed value or a dynamic value.
- Dynamic values can be based on a question, variable, or hidden field.
-
-
-
-
- - Conditions can be grouped. - Conditions can be combined using AND or OR operators. You can add multiple conditions to a logic block. Conditions are evaluated in the order they are added.
-
-
-
-
-3. **Add Actions**: Add actions to the logic block. Actions are tasks that are executed when a condition is met.
-
-You can add multiple actions to a logic block. Actions are executed in the order they are added.
-
-- 3.a **Action Options**: Choose from a list of available actions.
-
-
-
- Action is of the following types:
-
- - **Calculate**: Perform a calculation. These variables are then available for use in other questions.
-
- - Calculations can be performed on variables.
- - Calculations can be based on fixed values or dynamic values.
-
-
-
-
-
- - **Require Answer**: Make a question required. Only the optional questions can be marked as required while filling the survey.
-
- - **Jump to Question**: Skip to a specific question. The user will be redirected to the specified question based on the condition.
-
-
-4. **Save Logic**: Click the `Save` button to save the logic block.
-
-# Question Logic
-
-This logic is executed when the user answers the question. Logic can be as simple as showing a follow-up question based on the answer or as complex as calculating a score based on multiple answers.
-
-
diff --git a/apps/docs/app/[survey-type]/global/email-customization/email-customization-card.webp b/apps/docs/app/[survey-type]/global/email-customization/email-customization-card.webp
deleted file mode 100644
index bdc93d051b..0000000000
Binary files a/apps/docs/app/[survey-type]/global/email-customization/email-customization-card.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/email-customization/email-sample.webp b/apps/docs/app/[survey-type]/global/email-customization/email-sample.webp
deleted file mode 100644
index 197cb6f20f..0000000000
Binary files a/apps/docs/app/[survey-type]/global/email-customization/email-sample.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/email-customization/page.mdx b/apps/docs/app/[survey-type]/global/email-customization/page.mdx
deleted file mode 100644
index 8622caa771..0000000000
--- a/apps/docs/app/[survey-type]/global/email-customization/page.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import EmailCustomizationSettings from "./email-customization-card.webp";
-import EmailSample from "./email-sample.webp";
-import UpdatedLogo from "./updated-logo.webp";
-
-export const metadata = {
- title: "Email Customization",
- description: "Customize the email that is sent to your users!",
-};
-
-# Email Customization
-
-Email customization is a white-label feature that allows you to customize the email that is sent to your users. You can upload a logo of your company and use it in the email.
-
-
- This feature is a white-label feature. It is only available for users on paid plans or have an enterprise license.
-
-
-## How to Upload a Logo
-
-1. Go to the Organization Settings page.
-2. You will see a card called **Email Customization** under the **General** section.
-
-
-
-3. Upload a logo of your company.
-4. Click on the **Save** button.
-
-
-
-## Viewing the Logo in the Email
-
-You can click on the **Send test email** button to get a test email with the logo.
-
-
-
-Only the owner and managers of the organization can modify the logo.
-
-## Use Cases
-
-- **White-labeling**: You can use this feature to white-label your emails to your users.
-- **Branding**: You can use this feature to add your logo to your emails to increase brand recognition.
diff --git a/apps/docs/app/[survey-type]/global/email-customization/updated-logo.webp b/apps/docs/app/[survey-type]/global/email-customization/updated-logo.webp
deleted file mode 100644
index 12eedafa51..0000000000
Binary files a/apps/docs/app/[survey-type]/global/email-customization/updated-logo.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/hidden-fields/filled-hidden-fields.webp b/apps/docs/app/[survey-type]/global/hidden-fields/filled-hidden-fields.webp
deleted file mode 100644
index 1881351586..0000000000
Binary files a/apps/docs/app/[survey-type]/global/hidden-fields/filled-hidden-fields.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/hidden-fields/hidden-field-responses.webp b/apps/docs/app/[survey-type]/global/hidden-fields/hidden-field-responses.webp
deleted file mode 100644
index 0d01d48e74..0000000000
Binary files a/apps/docs/app/[survey-type]/global/hidden-fields/hidden-field-responses.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/hidden-fields/hidden-fields.webp b/apps/docs/app/[survey-type]/global/hidden-fields/hidden-fields.webp
deleted file mode 100644
index 6c4dc4ab8d..0000000000
Binary files a/apps/docs/app/[survey-type]/global/hidden-fields/hidden-fields.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/hidden-fields/input-hidden-fields.webp b/apps/docs/app/[survey-type]/global/hidden-fields/input-hidden-fields.webp
deleted file mode 100644
index 8f3d4e45a9..0000000000
Binary files a/apps/docs/app/[survey-type]/global/hidden-fields/input-hidden-fields.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/hidden-fields/page.mdx b/apps/docs/app/[survey-type]/global/hidden-fields/page.mdx
deleted file mode 100644
index f2e3ba1f07..0000000000
--- a/apps/docs/app/[survey-type]/global/hidden-fields/page.mdx
+++ /dev/null
@@ -1,110 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import FilledHiddenFields from "./filled-hidden-fields.webp";
-import HiddenFieldResponses from "./hidden-field-responses.webp";
-import HiddenFields from "./hidden-fields.webp";
-import InputHiddenFields from "./input-hidden-fields.webp";
-
-export const metadata = {
- title: "Hidden Fields",
- description: "Add hidden fields to your surveys to capture additional data without requiring user inputs!",
-};
-
-# Hidden Fields
-
-Hidden fields are a powerful feature in Formbricks that allows you to add data to a submission without asking the user to type it in. This feature is especially useful when you already have information about a user that you want to use in the analysis of the survey results (e.g. `payment plan` or `email`)
-
-## How to Add Hidden Fields
-
-### Enable Hidden Fields
-
-1. Edit the survey you want to add hidden fields to & switch to the Questions tab and scroll down to the bottom of the page. You will see a section called **Hidden Fields**. Make sure to enable it by toggling the switch.
-
-
-
-### Add Hidden Field IDs
-
-2. Now click on it to add a new hidden field ID. You can add as many hidden fields as you want.
-
-
-
-
-
-## Set Hidden Field in Responses
-
-### Link Surveys
-
-Single Hidden Field:
-
-
-
-
-```sh
-https://formbricks.com/clin3dxja02k8l80hpwmx4bjy?screen=landing_page&job=Founder
-```
-
-
-
-
-### App & Website Surveys
-
-For in-product surveys, you can set hidden fields in the response by adding them to the `formbricks.track` call:
-
-
-
-
-```sh
-formbricks.track("my event", {
- hiddenFields: {
- screen: "landing_page",
- job: "Founder"
- },
-});
-```
-
-
-
-
-## View Hidden Fields in Responses
-
-These hidden fields will now be visible in the responses tab just like other fields in the Summary as well as the Response Cards, and you can use them to filter and analyze your responses.
-
-
-
-## Use Cases
-
-- **Tracking Source**: You can add a hidden field to track the source of the survey. For a detailed guide on Source Tracking, check out the [Source Tracking](/link-surveys/source-tracking) guide.
-- **User Metadata**: You can add hidden fields to capture user metadata such as user ID, email, or any other user-specific information.
-- **Survey Metadata**: You can add hidden fields to capture other metadata, e.g. the screen from which the survey was filled, or any other app specific information.
diff --git a/apps/docs/app/[survey-type]/global/limit-submissions/images/step-one.webp b/apps/docs/app/[survey-type]/global/limit-submissions/images/step-one.webp
deleted file mode 100644
index 1ceaa74231..0000000000
Binary files a/apps/docs/app/[survey-type]/global/limit-submissions/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/limit-submissions/images/step-three.webp b/apps/docs/app/[survey-type]/global/limit-submissions/images/step-three.webp
deleted file mode 100644
index 33f01ed624..0000000000
Binary files a/apps/docs/app/[survey-type]/global/limit-submissions/images/step-three.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/limit-submissions/images/step-two.webp b/apps/docs/app/[survey-type]/global/limit-submissions/images/step-two.webp
deleted file mode 100644
index 4dcbe47395..0000000000
Binary files a/apps/docs/app/[survey-type]/global/limit-submissions/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/limit-submissions/page.mdx b/apps/docs/app/[survey-type]/global/limit-submissions/page.mdx
deleted file mode 100644
index f59b3cc858..0000000000
--- a/apps/docs/app/[survey-type]/global/limit-submissions/page.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepOne from "./images/step-one.webp";
-import StepThree from "./images/step-three.webp";
-import StepTwo from "./images/step-two.webp";
-
-export const metadata = {
- title: "Set a Maximum Number of Submissions for Surveys",
- description: "Limit the number of responses your survey can receive.",
-};
-
-# Limit by Number of Submissions
-
-Automatically close your survey after a specific number of responses with Formbricks. This feature is perfect for limited offers, exclusive surveys, or when you need a precise sample size for statistical significance.
-
-- **How to**: Open the Survey Editor, switch to the Settings tab. Scroll down to Response Options, Toggle the “Close survey on response limit”.
- {" "}
-
-- **Details**: Set a specific number of responses after which the survey automatically closes.
-- **Use Case**: Perfect for limited offers, exclusive surveys, or when you need a precise sample size for statistical significance.
-
----
diff --git a/apps/docs/app/[survey-type]/global/metadata/filters.webp b/apps/docs/app/[survey-type]/global/metadata/filters.webp
deleted file mode 100644
index 8c9d2b6f6b..0000000000
Binary files a/apps/docs/app/[survey-type]/global/metadata/filters.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/metadata/metadata-card.webp b/apps/docs/app/[survey-type]/global/metadata/metadata-card.webp
deleted file mode 100644
index 16c802f7b2..0000000000
Binary files a/apps/docs/app/[survey-type]/global/metadata/metadata-card.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/metadata/page.mdx b/apps/docs/app/[survey-type]/global/metadata/page.mdx
deleted file mode 100644
index e3249ff5df..0000000000
--- a/apps/docs/app/[survey-type]/global/metadata/page.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import { TellaVideo } from "@/components/tella-video";
-
-import Filters from "./filters.webp";
-import MetadataCard from "./metadata-card.webp";
-
-export const metadata = {
- title: "User Metadata | Formbricks",
- description:
- "Understand the metadata of your users when they fill a Formbricks survey (all website, app & link). We currently capture the user's source information, URL, browser, and device details, along with the country & the action that triggered.",
-};
-
-# User Metadata
-
-Formbricks captures metadata of your users for you when they fill a survey.
-
-This metadata is useful for understanding the context in which the user filled the survey. For example, if you are running a marketing campaign, you can understand which source is driving the most responses. Or if you are running a survey on a specific page, you can understand the user's behavior on that page.
-
-
-
-## Metadata Captured
-
-- **Source**: The source from where the user filled the survey. This could be an App, Link, or a Webpage.
-- **URL**: The URL of the page where the user filled the survey.
-- **Browser**: The browser used by the user to fill the survey.
-- **OS**: The operating system of the device used by the user to fill the survey.
-- **Device**: The device used by the user to fill the survey.
-- **Country**: The country of the user.
-- **Action**: The action that triggered the survey. This is only available for App surveys.
-
-## View Response Metadata
-
-1. Go to the Responses tab of your survey.
-2. Hover over the profile icon of the user on the response card & you should see a tooltip opening up with the metadata details.
-
-
-
-## Filter Responses by Metadata
-
-1. Go to the Responses tab of your survey.
-2. Click on the Filter button.
-3. Scroll down & Select the metadata field you want to filter by.
-4. Select the condition & the value you want to filter by.
-
-
-
-5. Now you should see the responses filtered based on the metadata you selected. If you want to see a walkthrough, view the video above to see how you can view & filter responses by metadata.
-
-## Export Metadata
-
-You can export the metadata of your responses along with the response data. When you export responses, you will see the metadata fields in the exported CSV file.
-
----
-
-**Can’t figure it out?**: **[Get help in Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/add-language-in-survey.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/add-language-in-survey.webp
deleted file mode 100644
index 7e493802ef..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/add-language-in-survey.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/add-languages.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/add-languages.webp
deleted file mode 100644
index 081f81d46c..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/add-languages.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/edit-multi-lang.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/edit-multi-lang.webp
deleted file mode 100644
index ef987c81a5..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/edit-multi-lang.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/enable-multi-lang.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/enable-multi-lang.webp
deleted file mode 100644
index ff26f0a190..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/enable-multi-lang.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/home-page.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/home-page.webp
deleted file mode 100644
index 9f7392cd52..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/home-page.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/page.mdx b/apps/docs/app/[survey-type]/global/multi-language-surveys/page.mdx
deleted file mode 100644
index 3e572dcd7f..0000000000
--- a/apps/docs/app/[survey-type]/global/multi-language-surveys/page.mdx
+++ /dev/null
@@ -1,166 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import { ResponsiveVideo } from "@/components/responsive-video";
-import AddLanguageInSurvey from "./add-language-in-survey.webp";
-import AddLanguages from "./add-languages.webp";
-import EditMultiLang from "./edit-multi-lang.webp";
-import EnableMultiLang from "./enable-multi-lang.webp";
-import SeeSurveyInLanguage from "./see-survey-in-language.webp";
-import SurveyLanguagesFromHome from "./survey-languages-from-home.webp";
-import SurveyLanguageSettings from "./survey-languague-settings.webp";
-import SurveySharing from "./survey-sharing.webp";
-import SurveysHome from "./surveys-home.webp";
-import TranslateAsPerLanguage from "./translate-as-per-language.webp";
-
-export const metadata = {
- title: "Multi-language Surveys | Formbricks",
- description:
- "Create multi-language link & app surveys with Formbricks. Get feedback from your users in their preferred language without writing a single line of code.",
-};
-
-# Multi-language Surveys
-
-Multi-Language Surveys allow you to create surveys that support multiple languages using translations. This makes it easier to reach a diverse audience without creating separate surveys for each language. This feature simplifies the creation, delivery, and analysis of surveys for a multilingual audience.
-
-How to deliver a specific language depends on the survey type (app or link survey):
-
-- App & Website survey: Set a `language` attribute for the user. [See the guide below for App Surveys](#app-surveys-configuration)
-- Link survey: Add a `lang` parameter in the survey URL. [See the guide below for Link Surveys](#link-surveys-configuration)
-
-
-
----
-
-## Creating a Multi-language Survey
-
-1. Open the **Survey Languages** page in the Formbricks settings via the top-right menu:
-
-
-
-2. Click on the **Edit languages** button, to add a new language to your survey
-
-
-
-3. Select the preferred language from the dropdown and assign an identifier Alias. Click the **Add language** button to add the language to your project.
-
-
-You can come back to this page anytime to add more languages or remove existing ones.
-
-4. Now, return to the dashboard to create a new survey or edit an existing one.
-
-
-
-5. In the survey editor, scroll down to the **Multiple Languages** section at the bottom and enable the toggle next to it.
-
-
-
-6. Now choose a **Default Language** for your survey. This is the language that will be shown to users who have not selected a preferred language.
-
-Changing the default language will reset all the translations you have made for the survey.
-
-7. Now, add the languages from the dropdown that you want to support in your survey.
-
-
-
-8. You can now see the survey in the selected language by clicking on the language dropdown in any of the questions.
-
-
-
-9. You can now translate all survey content, including questions, options, and button placeholders, into the selected language.
-
-
-
-10. Once you are done, click on the **Publish** button to save the survey.
-
-## App Surveys Configuration
-
-1. When you initialise the Formbricks SDK for your user, you can pass a `language` attribute with the language code. This can be either the ISO identifier or the Alias you set when creating the language. The `language` attribute makes sure that this user only sees surveys with a translation in this specific language available.
-
-
-
-
-```js
-Formbricks.init({
- environmentId: "",
- apiHost: "",
- userId: "",
- attributes: {
- language: "de", // ISO identifier or Alias set when creating language
- },
-});
-```
-
-
-
-
-
- If a user has a language assigned, a survey has multi-language activate and it is missing a translation in the language of the user, the survey will not be displayed.
-
-
-2. That's it! Now, users with the language attribute set will see the survey in their preferred language. You can start collecting responses in multiple languages and filter them by language on the summary page.
-
----
-
-## Link Surveys Configuration
-
-For link surveys, the translation delivery is dependent on the `land` URL parameter.
-
-After publishing the survey, just copy the survey link and append the `lang` query parameter with the language alias you have set.
-
-For example, if you have set the alias for French as `fr`, you can share the survey link as
-
-`https://your-survey-url.com?lang=fr`
-
-Here are two examples:
-
-- English: https://app.Formbricks.com/s/clptfos2i1pj516pvhxqyu3bn?lang=en
-- German: https://app.Formbricks.com/s/clptfos2i1pj516pvhxqyu3bn?lang=de
-
-Without the `lang` parameter, Formbricks will show the survey in the default language you have set.
-
-You can now start collecting responses in multiple languages!
-
-**Can’t figure it out?**: **[Get help in Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/see-survey-in-language.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/see-survey-in-language.webp
deleted file mode 100644
index d117b3cc51..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/see-survey-in-language.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-languages-from-home.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-languages-from-home.webp
deleted file mode 100644
index c280254ad7..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-languages-from-home.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-languague-settings.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-languague-settings.webp
deleted file mode 100644
index c043011028..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-languague-settings.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-sharing.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-sharing.webp
deleted file mode 100644
index da69235865..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/survey-sharing.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/surveys-home.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/surveys-home.webp
deleted file mode 100644
index d3f408e0bd..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/surveys-home.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/multi-language-surveys/translate-as-per-language.webp b/apps/docs/app/[survey-type]/global/multi-language-surveys/translate-as-per-language.webp
deleted file mode 100644
index dc6b9b20c6..0000000000
Binary files a/apps/docs/app/[survey-type]/global/multi-language-surveys/translate-as-per-language.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/doggo.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/doggo.webp
deleted file mode 100644
index 65096ccd59..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/doggo.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/hipster-living.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/hipster-living.webp
deleted file mode 100644
index c83c00ed3e..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/hipster-living.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/mario.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/mario.webp
deleted file mode 100644
index 62470994b7..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/mario.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/pre-requisite.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/pre-requisite.webp
deleted file mode 100644
index 1b296658df..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/pre-requisite.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-eight.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-eight.webp
deleted file mode 100644
index 5c35789d03..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-eight.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-eleven.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-eleven.webp
deleted file mode 100644
index 0cb0b13445..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-eleven.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-five.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-five.webp
deleted file mode 100644
index 71daa7e751..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-five.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-four.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-four.webp
deleted file mode 100644
index 3ca7dc38d9..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-four.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-nine.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-nine.webp
deleted file mode 100644
index bd8c73fe7e..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-nine.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-one.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-one.webp
deleted file mode 100644
index d8908f7cd7..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-seven.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-seven.webp
deleted file mode 100644
index bcbabf8315..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-seven.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-six.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-six.webp
deleted file mode 100644
index 3ac271b6c8..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-six.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-ten.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-ten.webp
deleted file mode 100644
index 092b337eb7..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-ten.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-three.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-three.webp
deleted file mode 100644
index cedee026fe..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-three.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-two.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-two.webp
deleted file mode 100644
index 54f3d0e907..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/images/windows-xp.webp b/apps/docs/app/[survey-type]/global/overwrite-styling/images/windows-xp.webp
deleted file mode 100644
index 45f588a285..0000000000
Binary files a/apps/docs/app/[survey-type]/global/overwrite-styling/images/windows-xp.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/overwrite-styling/page.mdx b/apps/docs/app/[survey-type]/global/overwrite-styling/page.mdx
deleted file mode 100644
index 284c01d1ea..0000000000
--- a/apps/docs/app/[survey-type]/global/overwrite-styling/page.mdx
+++ /dev/null
@@ -1,132 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepEleven from "./images/step-eleven.webp";
-import StepNine from "./images/step-nine.webp";
-import StepTen from "./images/step-ten.webp";
-
-import Doggo from "./images/doggo.webp";
-import HipsterLiving from "./images/hipster-living.webp";
-import Mario from "./images/mario.webp";
-import WindowsXp from "./images/windows-xp.webp";
-
-export const metadata = {
- title: "Overwrite Styling Theme on Individual Surveys",
- description:
- "Overwrite the global styling theme for individual surveys to create unique styles for each survey.",
-};
-
-# Overwrite Styling Theme on Individual Surveys
-
-Overwrite the global styling theme for individual surveys to create unique styles for each survey.
-
-
- To set a styling theme for all surveys, please see the [Styling Theme](/core-features/global/styling-theme) manual.
-
-
-### Overwrite Styling Theme
-
-1. In the Survey Editor of the survey you want to style, navigate to the **Styling** tab:
-
-
-
-2. Activate the **Add Custom Styles** toggle to override the default project styling:
-
-
-
-3. Customize your survey's style as needed:
-
-
-
-Voila! just hit the save button to apply your changes. Your survey is now ready to impress with its unique look!
-
-## Overwrite CSS Styles for App & Website Surveys
-
-You can overwrite the default CSS styles for the app & website surveys by adding the following CSS to your global CSS file (eg. `globals.css`):
-
-Make sure that you do not change the CSS variable names as they are used by Formbricks to identify the CSS variables. You can change the values to your liking. We have filled in some sample values for you to change according to your desired appearance.
-
-
-
-
-```css
-/* Formbricks CSS */
---fb-brand-color: red;
---fb-brand-text-color: white;
---fb-border-color: green;
---fb-border-color-highlight: rgb(13, 13, 12);
---fb-focus-color: red;
---fb-heading-color: yellow;
---fb-subheading-color: green;
---fb-info-text-color: orange;
---fb-signature-text-color: blue;
---fb-survey-background-color: black;
---fb-accent-background-color: rgb(13, 13, 12);
---fb-accent-background-color-selected: red;
---fb-placeholder-color: white;
---fb-shadow-color: var(--fb-brand-color);
---fb-rating-fill: rgb(13, 13, 12);
---fb-rating-hover: green;
---fb-back-btn-border: blue;
---fb-submit-btn-border: transparent;
---fb-rating-selected: black;
-```
-
-
-
-
-We have an example of this in our [Demo project](https://github.com/formbricks/formbricks/blob/main/apps/demo/styles/globals.css) here.
-
-## Funky Survey Examples
-
-- **Super Mario:** I guess he won't let himself be limited by radio buttons and do all three things
-
-
-
-- **Hipster Living**: Does your monstera get enough water?
-
-
-
-- **Windows XP**: Hach, nostalgia. Made us wanna play Mafia.
-
-
-
-- **Whosagooooodbooooy**: Things you've likely said to your dog.
-
-
-
----
diff --git a/apps/docs/app/[survey-type]/global/partial-submissions/images/step-one.webp b/apps/docs/app/[survey-type]/global/partial-submissions/images/step-one.webp
deleted file mode 100644
index 89494819fe..0000000000
Binary files a/apps/docs/app/[survey-type]/global/partial-submissions/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/partial-submissions/page.mdx b/apps/docs/app/[survey-type]/global/partial-submissions/page.mdx
deleted file mode 100644
index 1a57fb83f2..0000000000
--- a/apps/docs/app/[survey-type]/global/partial-submissions/page.mdx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepOne from "./images/step-one.webp";
-
-export const metadata = {
- title: "Collect Partial Submissions with Formbricks",
- description:
- "Capture and analyze partial submissions in Formbricks to understand respondent behavior and improve survey engagement. Learn how to enable and access partial submissions data.",
-};
-
-# Partial Submissions
-
-Formbricks enables you to capture and analyze partial submissions, providing detailed insights into how participants interact with each question within your survey. This feature is crucial for identifying specific points where respondents may disengage, allowing you to understand and address drop-offs effectively. This makes sure you do not lose any of your meaningful insights from a question in a survey.
-
-## **Understanding Partial Submissions**
-
-Partial submissions occur when respondents start a survey but do not complete it. These can include instances where the survey is opened but no questions are answered, or where only some questions are addressed before the survey is exited.
-
-## **Enabling and Accessing Partial Submissions Tracking**
-
-Tracking of partial submissions is automatically enabled for all Formbricks surveys, capturing every interaction from the moment a respondent begins the survey.
-
-### **Types of Data Captured**
-
-1. **Display Created**: Tracks when a survey is initially opened.
-2. **Questions Partially Answered**: Records after every question & the data is handled, noting which questions were last interacted with before the survey was exited.
-
-### **Benefits of Tracking Partial Submissions**
-
-- **Identifies Drop-Off Points**: Pinpoints specific questions where respondents are likely to stop answering, providing critical insights into potential issues within the survey.
-- **Improves Survey Design**: Data from partial submissions can guide adjustments to question complexity, survey length, or formatting to enhance respondent engagement.
-- **Enhances Completion Rates**: Understanding where and why respondents are dropping off allows for targeted interventions to improve overall engagement and completion rates.
-
-## **Analyzing Partial Submission Data**
-
-Formbricks provides detailed analytics for partial submissions, including a per-question analysis of respondent behavior.
-
-
-
-### **Survey Summary Analytics**
-
-The "Analyze Drop-Offs" toggle in the survey summary reveals a comprehensive table with detailed metrics, enabling a deep dive into how respondents interact with each question:
-
-- **Summary Metrics**:
- - **Impressions**: Total number of times the survey was viewed.
- - **Starts**: Percentage of impressions that the survey was started.
- - **Responses**: Total number of completed responses.
- - **Drop-Offs**: Percentage of starts that did not lead to a complete response.
- - **Time to Complete**: Average time taken by respondents to complete the survey.
-
-### **Detailed Question Analysis**
-
-Each question is analyzed for:
-
-- **Time to Complete**: Average time taken by respondents spent on this question.
-- **Impressions**: Number of times the question was viewed.
-- **Drop-Offs**: Number of times respondents left the survey at this question, with a percentage indicating the drop-off rate.
-
-This data is invaluable for pinpointing problems with specific questions and understanding the overall flow and engagement levels within the survey.
-
-## **Use Cases**
-
-Partial submissions tracking is particularly valuable for:
-
-- Surveys experiencing high drop-off rates, where detailed question analysis can inform necessary adjustments.
-- Studies requiring in-depth engagement metrics for each survey question to optimize content and survey structure.
-
-## **Conclusion**
-
-By leveraging the partial submissions tracking feature in Formbricks, you gain comprehensive insights into respondent behaviors and survey interactions. This information is vital for enhancing survey design, improving response rates, and ensuring more reliable and meaningful data collection.
diff --git a/apps/docs/app/[survey-type]/global/question-type/address/images/address.webp b/apps/docs/app/[survey-type]/global/question-type/address/images/address.webp
deleted file mode 100644
index 7f9279616f..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/address/images/address.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/address/page.mdx b/apps/docs/app/[survey-type]/global/question-type/address/page.mdx
deleted file mode 100644
index 4561280954..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/address/page.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import Address from "./images/address.webp";
-
-#### Question Type
-
-# Address
-
-The Address question type allows respondents to input their address details, including multiple fields such as address lines, city, state, and country. You can configure the question by adding a title, an optional description, and toggling specific fields to be required.
-
-
-
-## Elements
-
-
-
-### Question
-
-Provide a question to describe the address information you are requesting.
-
-### Description
-
-Optionally, add a description to guide the user.
-
-### Toggle Fields
-
-You can choose to show and require any or all of the following fields in the form:
-
-- Address Line 1
-- Address Line 2
-- City
-- State
-- Zip Code
-- Country
diff --git a/apps/docs/app/[survey-type]/global/question-type/consent/images/consent.webp b/apps/docs/app/[survey-type]/global/question-type/consent/images/consent.webp
deleted file mode 100644
index 60291a402c..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/consent/images/consent.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/consent/page.mdx b/apps/docs/app/[survey-type]/global/question-type/consent/page.mdx
deleted file mode 100644
index b94bb9ae9b..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/consent/page.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import Consent from "./images/consent.webp";
-
-#### Question Type
-
-# Consent
-
-The Consent card is used to obtain user agreement regarding a product, service, or policy. It features a bold statement or question as the title, followed by a brief description. At the end of the card, users can confirm their consent by checking a checkbox to indicate their agreement.
-
-
-
-## Elements
-
-
-
-### Title
-
-A bold statement or question asking for user consent, displayed prominently at the top of the card.
-
-### Description
-
-A short explanation or additional context for the consent request, displayed below the title. The text can be formatted, and hyperlinks are allowed within the description.
-
-### Checkbox
-
-At the bottom of the card, users can confirm their agreement by checking the box, indicating their consent to the question or statement above. The label for the checkbox is also editable.
diff --git a/apps/docs/app/[survey-type]/global/question-type/contact/images/contact.webp b/apps/docs/app/[survey-type]/global/question-type/contact/images/contact.webp
deleted file mode 100644
index ac2ade0722..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/contact/images/contact.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/contact/page.mdx b/apps/docs/app/[survey-type]/global/question-type/contact/page.mdx
deleted file mode 100644
index 59cc2273c4..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/contact/page.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import Contact from "./images/contact.webp";
-
-#### Question Type
-
-# Contact Info
-
-The Contact Info question type allows respondents to provide their basic contact information such as name, email, and phone number. You can customize the form with a title, an optional description, and control which fields to display and require.
-
-
-
-## Elements
-
-
-
-### Title
-
-Specify a title to describe the information you're collecting.
-
-### Description
-
-Optionally, add a description to give additional context.
-
-### Toggle Fields
-
-You can choose to show and require any or all of the following fields:
-
-- First Name
-- Last Name
-- Email
-- Phone Number
-- Company
diff --git a/apps/docs/app/[survey-type]/global/question-type/date/images/date.webp b/apps/docs/app/[survey-type]/global/question-type/date/images/date.webp
deleted file mode 100644
index 6fa0c564a4..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/date/images/date.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/date/page.mdx b/apps/docs/app/[survey-type]/global/question-type/date/page.mdx
deleted file mode 100644
index 03bf5c74d5..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/date/page.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import Date from "./images/date.webp";
-
-#### Question Type
-
-# Date
-
-The Date question type allows respondents to provide a date, such as when they are available or when an event is scheduled. It features a title to guide the respondent on what date to enter, and an optional description to provide further details or context.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what date you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Date Format
-
-Choose from multiple date formats for the input:
-
-- MM-DD-YYYY
-- DD-MM-YYYY
-- YYYY-MM-DD
diff --git a/apps/docs/app/[survey-type]/global/question-type/file-upload/images/file-upload.webp b/apps/docs/app/[survey-type]/global/question-type/file-upload/images/file-upload.webp
deleted file mode 100644
index dd85a6d161..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/file-upload/images/file-upload.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/file-upload/page.mdx b/apps/docs/app/[survey-type]/global/question-type/file-upload/page.mdx
deleted file mode 100644
index 7c804b2e38..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/file-upload/page.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import FileUpload from "./images/file-upload.webp";
-
-#### Questions Type
-
-# File Upload
-
-The File Upload question type allows respondents to upload files related to your survey, such as production documents or requirement specifications. It features a title to guide the user on what to upload and an optional description to provide additional context.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title that informs the respondent about the purpose of the file upload.
-
-### Description
-
-Provide an optional description to give respondents more details or instructions about what files they need to upload.
-
-### Allow Multiple Files
-
-Enable this option to allow respondents to upload multiple files at once.
-
-### Max File Size
-
-You can set a maximum file size limit, and an input box will appear to specify the size in MB.
-
-### File Type Restrictions
-
-You can restrict the allowed file types. An input box will appear where you can specify the file formats, such as `.pdf`, `.jpg`, `.docx`, etc.
diff --git a/apps/docs/app/[survey-type]/global/question-type/free-text/images/free-text.webp b/apps/docs/app/[survey-type]/global/question-type/free-text/images/free-text.webp
deleted file mode 100644
index 960d9b4cc1..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/free-text/images/free-text.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/free-text/page.mdx b/apps/docs/app/[survey-type]/global/question-type/free-text/page.mdx
deleted file mode 100644
index 84a296acf6..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/free-text/page.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import FreeText from "./images/free-text.webp";
-
-export const metadata = {
- title: "Free Text",
- description: "Free text questions allow respondents to enter a custom answer.",
-};
-
-#### Question Type
-
-# Free Text
-
-Free text questions allow respondents to enter a custom answer. Displays a title and an input field for the respondent to type in.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Placeholder
-
-Specify a placeholder text to display in the input field.
-
-### Input Type
-
-Choose the type of input field to display. Options include:
-
-- **Text**: A text area input. This can be converted to a single line input field if needed, by toggling the _"Long answer"_ switch at the bottom of the question segment.
-- **Email**: A single-line text input that validates the input as an email address.
-- **URL**: A single-line text input that validates the input as a URL.
-- **Number**: A single-line text input that validates the input as a number and shows "increase" and "decrease" buttons.
-- **Phone**: A single-line text input that validates the input as a phone number.
diff --git a/apps/docs/app/[survey-type]/global/question-type/matrix/images/matrix.webp b/apps/docs/app/[survey-type]/global/question-type/matrix/images/matrix.webp
deleted file mode 100644
index 8c3d1c436f..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/matrix/images/matrix.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/matrix/page.mdx b/apps/docs/app/[survey-type]/global/question-type/matrix/page.mdx
deleted file mode 100644
index 5b6ba5c937..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/matrix/page.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import Matrix from "./images/matrix.webp";
-
-#### Question Type
-
-# Matrix
-
-Matrix questions allow respondents to select a value for each option presented in rows. The values range from 0 to a user-defined maximum (e.g., 0 to X). The selection is made using radio buttons, and users can choose any value within the defined range, including 0.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Rows
-
-Define the options shown on the left side of the matrix. These represent the items for which users will select a value.
-
-### Columns
-
-Represent the range of values from 0 to X (right side of the screen). Users can choose any value, including 0, using radio buttons.
-
-### Select ordering
-
-- Keep current order: This will keep the order of options the same for all respondents.
-- Randomize all: This will randomize the options for each respondent.
diff --git a/apps/docs/app/[survey-type]/global/question-type/multi-select/images/multi-select.webp b/apps/docs/app/[survey-type]/global/question-type/multi-select/images/multi-select.webp
deleted file mode 100644
index 8c169b6f2e..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/multi-select/images/multi-select.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/multi-select/page.mdx b/apps/docs/app/[survey-type]/global/question-type/multi-select/page.mdx
deleted file mode 100644
index 6e1e73e4d7..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/multi-select/page.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import MultiSelect from "./images/multi-select.webp";
-
-export const metadata = {
- title: "Multi Select",
- description: "Multi select questions allow respondents to select several answers from a list",
-};
-
-#### Question Type
-
-# Multi Select
-
-Multi select questions allow respondents to select several answers from a list. Displays a title and a list of checkboxes for the respondent to choose from.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Options
-
-Define the options shown in the list. These represent the items for which users will select.
-
-Other than the fact that respondents can select multiple options, multi select questions are similar to [single select](/global/question-types/single-select) questions.
diff --git a/apps/docs/app/[survey-type]/global/question-type/net-promoter-score/images/net-promoter-score.webp b/apps/docs/app/[survey-type]/global/question-type/net-promoter-score/images/net-promoter-score.webp
deleted file mode 100644
index 1b30bcc4d4..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/net-promoter-score/images/net-promoter-score.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/net-promoter-score/page.mdx b/apps/docs/app/[survey-type]/global/question-type/net-promoter-score/page.mdx
deleted file mode 100644
index 21731ff322..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/net-promoter-score/page.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import NetPromoterScore from "./images/net-promoter-score.webp";
-
-#### Question Type
-
-# Net Promoter Score
-
-Net Promoter Score questions allow respondents to rate a question on a scale from 0 to 10. Displays a title and a list of radio buttons for the respondent to choose from.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Labels
-
-Add labels for the lower and upper bounds of the score. The default is "Not at all likely" and "Extremely likely".
-
-### Add color coding
-
-Add color coding to the score. This will show a color bar above the score.
diff --git a/apps/docs/app/[survey-type]/global/question-type/picture-selection/images/picture-selection.webp b/apps/docs/app/[survey-type]/global/question-type/picture-selection/images/picture-selection.webp
deleted file mode 100644
index 5c780e5530..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/picture-selection/images/picture-selection.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/picture-selection/page.mdx b/apps/docs/app/[survey-type]/global/question-type/picture-selection/page.mdx
deleted file mode 100644
index a1c64a46b9..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/picture-selection/page.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import PictureSelection from "./images/picture-selection.webp";
-
-export const metadata = {
- title: "Picture Selection",
- description: "Picture selection questions allow respondents to select one or more images from a list",
-};
-
-#### Question Type
-
-# Picture Selection
-
-Picture selection questions allow respondents to select one or more images from a list. Displays a title and a list of images for the respondent to choose from.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Images
-
-Images can be uploaded via click or drag and drop. At least two images are required.
-
-### Allow Multi Select
-
-This option allows user to select more than one image.
diff --git a/apps/docs/app/[survey-type]/global/question-type/ranking/images/ranking.webp b/apps/docs/app/[survey-type]/global/question-type/ranking/images/ranking.webp
deleted file mode 100644
index b057d34f34..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/ranking/images/ranking.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/ranking/page.mdx b/apps/docs/app/[survey-type]/global/question-type/ranking/page.mdx
deleted file mode 100644
index a5d74893f5..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/ranking/page.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import Ranking from "./images/ranking.webp";
-
-#### Question Type
-
-# Ranking
-
-Ranking questions let respondents select options in order from 1 to the total number of options. As they make their choices, the list is automatically rearranged in numerical order.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Options
-
-You need to add at least two options so that users can rearrange them in numerical order based on their selection.
-
-### Select ordering
-
-- Keep current order: This will keep the order of options the same for all respondents.
-- Randomize all: This will randomize the options for each respondent.
diff --git a/apps/docs/app/[survey-type]/global/question-type/rating/images/rating.webp b/apps/docs/app/[survey-type]/global/question-type/rating/images/rating.webp
deleted file mode 100644
index 9b1000ba1e..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/rating/images/rating.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/rating/page.mdx b/apps/docs/app/[survey-type]/global/question-type/rating/page.mdx
deleted file mode 100644
index ea82d3cb47..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/rating/page.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import Rating from "./images/rating.webp";
-
-export const metadata = {
- title: "Rating",
- description: "Rating questions allow respondents to rate questions on a scale",
-};
-
-#### Question Type
-
-# Rating
-
-Rating questions allow respondents to rate questions on a scale. Displays a title and a rating scale consisting of a number of images and labels for the lower and upper ends of the scale.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Scale
-
-Select the icon to be used for the rating scale. The options include: stars, numbers or smileys. The default is stars.
-
-### Range
-
-Select the range of the rating scale. the options include: 3, 4, 5, 7 or 10. The default is 5.
-
-### Labels
-
-Add labels for the lower and upper bounds of the rating scale. The default is "Not good" and "Very good".
diff --git a/apps/docs/app/[survey-type]/global/question-type/schedule/images/schedule-call.webp b/apps/docs/app/[survey-type]/global/question-type/schedule/images/schedule-call.webp
deleted file mode 100644
index 55b291282c..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/schedule/images/schedule-call.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/schedule/page.mdx b/apps/docs/app/[survey-type]/global/question-type/schedule/page.mdx
deleted file mode 100644
index d5abd856e2..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/schedule/page.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import ScheduleCall from "./images/schedule-call.webp";
-
-#### Question Type
-
-# Schedule A Meeting
-
-The Schedule A Meeting question type allows respondents to book a meeting by selecting a date and time. It includes a title to guide the respondent, along with an optional description to provide additional context for the meeting setup.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Cal.com Username/Event
-
-Add an input box where users can enter their [`cal.com`](https://cal.com/) username and event URL (e.g., `username/event`).
-
-### Custom Hostname (Optional)
-
-Enable an input box for adding a custom hostname, which is necessary if using a self-hosted instance of [`cal.com`](https://cal.com/docs/self-hosting/installation).
diff --git a/apps/docs/app/[survey-type]/global/question-type/single-select/images/single-select.webp b/apps/docs/app/[survey-type]/global/question-type/single-select/images/single-select.webp
deleted file mode 100644
index 8949f4ab5a..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/single-select/images/single-select.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/single-select/page.mdx b/apps/docs/app/[survey-type]/global/question-type/single-select/page.mdx
deleted file mode 100644
index 9e62572626..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/single-select/page.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import SingleSelect from "./images/single-select.webp";
-
-export const metadata = {
- title: "Single Select",
- description: "Single select questions allow respondents to select one answer from a list",
-};
-
-#### Question Type
-
-# Single Select
-
-Single select questions allow respondents to select one answer from a list. Displays a title and a list of radio buttons for the respondent to choose from.
-
-
-
-## Elements
-
-
-
-### Title
-
-Add a clear title to inform the respondent what information you are asking for.
-
-### Description
-
-Provide an optional description with further instructions.
-
-### Options
-
-The list of answers the respondent can choose from.
-
-### Additional Actions
-
-- Add "Other": Adds an "Other" option to allow respondents to enter a custom answer. This will show two inputs, one for the label text and one for the placeholder.
-
-- Convert to Multiple Select: Converts the question to a multiple select question. This will show checkboxes instead of radio buttons.
-
-- Order dropdown: Allows you to choose the order in which the options are displayed.
- - Keep current order: Options will be displayed in the order you added them.
- - Randomize all: Options will be displayed in a random order.
- - Randomize all except last option: Options will be displayed in a random order, except for the last one.
diff --git a/apps/docs/app/[survey-type]/global/question-type/statement-cta/images/statement-cta.webp b/apps/docs/app/[survey-type]/global/question-type/statement-cta/images/statement-cta.webp
deleted file mode 100644
index c0762f3198..0000000000
Binary files a/apps/docs/app/[survey-type]/global/question-type/statement-cta/images/statement-cta.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/question-type/statement-cta/page.mdx b/apps/docs/app/[survey-type]/global/question-type/statement-cta/page.mdx
deleted file mode 100644
index f5da195606..0000000000
--- a/apps/docs/app/[survey-type]/global/question-type/statement-cta/page.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import StatementCTA from "./images/statement-cta.webp";
-
-#### Question Type
-
-# Statement (Call to Action)
-
-The Statement question type allows you to display descriptive information in your survey, such as a message or instruction. It consists of a title (can be Question or Short Note) and a description, which can be a brief note(realted to CTA) or guideline. Instead of collecting input, this type includes a call to action button for further steps, such as booking an interview call.
-
-
-
-## Elements
-
-
-
-### Title
-
-This is the main question or heading that appears at the top of the card.
-
-### Description
-
-A brief note or instruction displayed under the title, typically used to provide context or instructions for the next step.
-
-### Button Options
-
-- Button to continue in survey: This will continue respondent with the survey, form or fillups.
-- Button to link to external URL: Selecting this option will open-up URL input box below when us set URL the button will redirect to your setted link.
diff --git a/apps/docs/app/[survey-type]/global/recall/images/step-one.webp b/apps/docs/app/[survey-type]/global/recall/images/step-one.webp
deleted file mode 100644
index 42ebcd0fa5..0000000000
Binary files a/apps/docs/app/[survey-type]/global/recall/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/recall/images/step-three.webp b/apps/docs/app/[survey-type]/global/recall/images/step-three.webp
deleted file mode 100644
index dd630ba876..0000000000
Binary files a/apps/docs/app/[survey-type]/global/recall/images/step-three.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/recall/images/step-two.webp b/apps/docs/app/[survey-type]/global/recall/images/step-two.webp
deleted file mode 100644
index 98761acc8c..0000000000
Binary files a/apps/docs/app/[survey-type]/global/recall/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/recall/page.mdx b/apps/docs/app/[survey-type]/global/recall/page.mdx
deleted file mode 100644
index d141a88fb9..0000000000
--- a/apps/docs/app/[survey-type]/global/recall/page.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import SurveyEmbed from "@/components/survey-embed";
-import StepOne from "./images/step-one.webp";
-import StepThree from "./images/step-three.webp";
-import StepTwo from "./images/step-two.webp";
-
-export const metadata = {
- title: "Recall Data in Formbricks Surveys",
- description:
- "Personalize your surveys by dynamically inserting data from URL parameters or previous answers into questions and descriptions. The Recall Data feature helps create engaging, adaptive survey experiences tailored to each respondent.",
-};
-
-# Recall Data
-
-Personalize your surveys by dynamically inserting data from URL parameters or previous answers into questions and descriptions. The Recall Data feature helps create engaging, adaptive survey experiences tailored to each respondent.
-
-## Recall Sources
-
-You can recall data from the following sources:
-
-- From a previous question
-- From a [Hidden Field](/docs/link-surveys/global/hidden-fields)
-- From a [Variable](/docs/link-surveys/global/variables)
-
-## Recalling from a previous question
-
-
- The recall functionality is disabled on the first question of the survey since there’s no preceding question to recall data from.
-
-
-### **Pre-requisite**
-
-Ensure the answer you wish to recall precedes the question in which it will be recalled. Here’s an example of setting up the first question:
-
-
-
-### **Step 1: Recall Data**
-
-Type **`@`** in the question or description field where you want to insert a recall. This triggers a dropdown menu listing all preceding questions. Select the question you want to recall data from.
-
-
-
-### **Step 2: Set a Fallback**
-
-To ensure the survey remains coherent when a response is missing (or the question is optional), you should set a fallback option.
-
-
-
-## Recalling from the URL
-
-1. Create a hidden field, [here is how →](/docs/global/hidden-fields)
-2. Use the `@` symbol in a question or description to recall the value of the hidden field
-3. Set a fallback in case the hidden field is not being filled by a URL parameter
-4. Use [Data Prefilling](/docs/link-surveys/data-prefilling) to set the hidden field value when the survey is accessed
-
-## Recalling from a Variable
-
-1. Create a variable, [here is how →](/docs/link-surveys/global/variables)
-2. Use the `@` symbol in a question or description to recall the value of the variable
-3. Set a fallback in case the variable is not being filled by a URL parameter
-
-## Live Demo
-
-
-
-## **Conclusion**
-
-Recall Data in Formbricks surveys allows for a conversational and customized survey experience that enhances engagement and improves the quality of feedback. By integrating previous responses into new questions, you create a more interactive and relevant environment for respondents.
diff --git a/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-one.webp b/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-one.webp
deleted file mode 100644
index 1ceaa74231..0000000000
Binary files a/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-three.webp b/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-three.webp
deleted file mode 100644
index 33f01ed624..0000000000
Binary files a/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-three.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-two.webp b/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-two.webp
deleted file mode 100644
index 4dcbe47395..0000000000
Binary files a/apps/docs/app/[survey-type]/global/schedule-start-end-dates/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/schedule-start-end-dates/page.mdx b/apps/docs/app/[survey-type]/global/schedule-start-end-dates/page.mdx
deleted file mode 100644
index 375e9ec5bb..0000000000
--- a/apps/docs/app/[survey-type]/global/schedule-start-end-dates/page.mdx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepOne from "./images/step-one.webp";
-import StepThree from "./images/step-three.webp";
-import StepTwo from "./images/step-two.webp";
-
-export const metadata = {
- title: "Schedule Start & End Dates for Surveys",
- description: "Automatically release and close surveys based on specific dates.",
-};
-
-# Schedule Start & End Dates
-
-Optimize your survey management with custom Start & End Conditions in Formbricks. This feature allows you to control exactly when your survey is available for responses and when it should close, making it ideal for time-sensitive or number-of-response-limited surveys.
-
-Configure your surveys to open and close based on specific criteria. Here’s how to set up these conditions:
-
-## **Schedule a Survey Release**
-
-- **How to**: Open the Survey Editor, switch to the Settings tab. Scroll down to Response Options, Toggle the “Release Survey on Date”.
-
-
-
-- **Details**: Choose the date and time when the survey should become available to respondents. All times follow UTC timezone.
-- **Use Case**: This is useful for launching surveys in alignment with events, product releases, or specific marketing campaigns.
-
-## **Automatically Closing a Survey**
-
-- **How to**: Open the Survey Editor, switch to the Settings tab. Scroll down to Response Options, Toggle the “Close survey on date”.
-
-
-- **Details**: Define a specific date and time for the survey to close. This also follows UTC timezone. -
-**Use Case**: Essential for surveys linked to time-bound events or studies where data collection needs to end
-at a specific point.
-
-### **Summary**
-
-Setting up Start & End Dates in Formbricks allows you to control the availability and duration of your surveys with precision. Whether you are conducting academic research, market analysis, or gathering event feedback, these settings help ensure that your data collection aligns perfectly with your objectives.
-
----
diff --git a/apps/docs/app/[survey-type]/global/shareable-dashboards/images/1-publish-to-web.webp b/apps/docs/app/[survey-type]/global/shareable-dashboards/images/1-publish-to-web.webp
deleted file mode 100644
index 3d8996b622..0000000000
Binary files a/apps/docs/app/[survey-type]/global/shareable-dashboards/images/1-publish-to-web.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/shareable-dashboards/images/2-warning-publish.webp b/apps/docs/app/[survey-type]/global/shareable-dashboards/images/2-warning-publish.webp
deleted file mode 100644
index 0d8ac85853..0000000000
Binary files a/apps/docs/app/[survey-type]/global/shareable-dashboards/images/2-warning-publish.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/shareable-dashboards/images/3-share-link.webp b/apps/docs/app/[survey-type]/global/shareable-dashboards/images/3-share-link.webp
deleted file mode 100644
index 3ae5696f88..0000000000
Binary files a/apps/docs/app/[survey-type]/global/shareable-dashboards/images/3-share-link.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/shareable-dashboards/page.mdx b/apps/docs/app/[survey-type]/global/shareable-dashboards/page.mdx
deleted file mode 100644
index 097caad745..0000000000
--- a/apps/docs/app/[survey-type]/global/shareable-dashboards/page.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepOne from "./images/1-publish-to-web.webp";
-import StepTwo from "./images/2-warning-publish.webp";
-import StepThree from "./images/3-share-link.webp";
-
-export const metadata = {
- title: "Shareable Dashboards",
- description: "Create shareable links to dashboards of specific surveys.",
-};
-
-# Shareable Dashboards
-
-Formbricks allows you to create public, shareable versions of your survey results dashboards. This feature enables you to easily share survey results with stakeholders, team members, or the public without granting access to your Formbricks account.
-
-## How To Publish Survey Results
-
-1. **Go to survey summary**: Choose the survey for which you want to create a shareable dashboard and go to its summary page.
-
-2. **Share results**: Click the "Share results" and then "Publish to web".
-
-
-
-3. **Confirm**: Click "Publish to public web" (it's public).
-
-
-
-4. **Share link**: Formbricks has generated a unique URL for your public dashboard. Share it around.
-
-
-
-Whoever has access to the link can access the survey results.
-
-## How To Unpublish Survey Results
-
-Unpublish is very simple: Go to "Share results" -> "Unpublish from web" -> "Unpublish".
-
-
-
-## Key Features
-
-- **Read-only access**: Viewers can see survey results but cannot modify data or settings.
-- **Real-time updates**: The shared dashboard reflects current survey data in real-time.
-- **Filters included**: Visitors can access all filters to dissect the data.
-- **Revocable access**: You can disable the shared link at any time to restrict access.
-
-## Use Cases
-
-- Share results with clients or stakeholders
-- Publish survey findings to your website or blog
-- Collaborate with team members without sharing account credentials
-- Create transparency by making certain survey results public
-
-Shareable dashboards provide a simple yet powerful way to disseminate survey insights while maintaining control over your Formbricks account and data.
diff --git a/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/images/step-one.webp b/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/images/step-one.webp
deleted file mode 100644
index 1a8587a024..0000000000
Binary files a/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/images/step-two.webp b/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/images/step-two.webp
deleted file mode 100644
index b37dda4e3f..0000000000
Binary files a/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/page.mdx b/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/page.mdx
deleted file mode 100644
index 0276f02361..0000000000
--- a/apps/docs/app/[survey-type]/global/show-survey-to-percent-of-users/page.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepOne from "./images/step-one.webp";
-import StepTwo from "./images/step-two.webp";
-
-export const metadata = {
- title: "Show Survey to % of Users",
- description:
- "To target specific segments of your audience or manage survey exposure, Formbricks allows you to display surveys to only a percentage of your targeted users.",
-};
-
-# Show Survey to % of Users
-
-To target specific segments of your audience or manage survey exposure, Formbricks allows you to display surveys to only a percentage of your targeted users.
-
-
- This feature is applicable for website surveys and app surveys, where managing participant engagement and response volume is crucial.
-
-
-## **Enabling Percentage-Based Visibility**
-
-Set up this feature to control how many users see your survey, using a simple slider to specify the percentage of your targeted audience that should be prompted to participate.
-
-### **Steps to Set Up Percentage-Based Visibility**
-
-1. **Open Survey Editor**: Navigate to the survey where you wish to configure visibility settings & click on Edit.
-2. **Access Settings**: In the Survey Editor, click on the **`Settings`** tab
-3. **Navigate to Survey Trigger Options**:
-
- {" "}
-
-
-
- - Select **`Survey Trigger`** from the menu options.
- - Choose **`Survey Display Settings`** to access visibility controls.
-
-4. **Adjust User Visibility Percentage**:
-
- - Find the **`Show Survey to % of Users`** toggle. Enable it.
- - Enter the desired percentage (from 0.01% to 100%) of users to whom the survey will be shown.
-
- {" "}
-
-
-
-
- Please note that this feature operates based on mathematical probabilistic functions, which may result in slight variations in the exact percentage of users who see the survey.
-
-
-### **Example Usage**
-
-For instance, if you want to expose your survey to only half of your targeted user base, simply adjust the slider to show the survey to 50% of your users. This functionality allows you to conduct A/B testing or control the rollout of new surveys to gauge initial reactions before a wider release.
-
-### **Application**
-
-It's effective for:
-
-- **A/B Testing**: Compare different user experiences by showing different surveys or survey variations to different segments of your audience.
-- **Gradual Rollouts**: Gradually introduce a new survey to a portion of your users to monitor initial responses and adjust based on feedback before full deployment.
-- **Load Management**: Manage server load and response processing by limiting the number of responses collected at any given time.
-
-## **Conclusion**
-
-Using the **Show Survey to % of Users** feature allows for precise control over who sees your Formbricks surveys, making it an invaluable feature for targeted data collection and user experience management. By adjusting survey visibility settings, you can strategically engage segments of your audience, enhance survey testing phases, and optimize overall survey effectiveness.
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/allow-overwrite.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/allow-overwrite.webp
deleted file mode 100644
index fcadbc68e0..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/allow-overwrite.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/background-settings.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/background-settings.webp
deleted file mode 100644
index 01fff26e7e..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/background-settings.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/card-settings.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/card-settings.webp
deleted file mode 100644
index 9ad553b4cc..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/card-settings.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/doggo.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/doggo.webp
deleted file mode 100644
index 65096ccd59..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/doggo.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/form-settings.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/form-settings.webp
deleted file mode 100644
index 643cf950ac..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/form-settings.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/hipster-living.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/hipster-living.webp
deleted file mode 100644
index c83c00ed3e..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/hipster-living.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/look-and-feel.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/look-and-feel.webp
deleted file mode 100644
index b7c8dcfff9..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/look-and-feel.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/mario.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/mario.webp
deleted file mode 100644
index 62470994b7..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/mario.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/pre-requisite.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/pre-requisite.webp
deleted file mode 100644
index 1b296658df..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/pre-requisite.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-eight.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-eight.webp
deleted file mode 100644
index 5c35789d03..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-eight.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-eleven.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-eleven.webp
deleted file mode 100644
index 0cb0b13445..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-eleven.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-five.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-five.webp
deleted file mode 100644
index 71daa7e751..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-five.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-four.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-four.webp
deleted file mode 100644
index 3ca7dc38d9..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-four.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-nine.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-nine.webp
deleted file mode 100644
index bd8c73fe7e..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-nine.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-one.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-one.webp
deleted file mode 100644
index d8908f7cd7..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-seven.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-seven.webp
deleted file mode 100644
index bcbabf8315..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-seven.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-six.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-six.webp
deleted file mode 100644
index 3ac271b6c8..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-six.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-ten.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-ten.webp
deleted file mode 100644
index 092b337eb7..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-ten.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-three.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-three.webp
deleted file mode 100644
index cedee026fe..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-three.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/step-two.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/step-two.webp
deleted file mode 100644
index 54f3d0e907..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/images/windows-xp.webp b/apps/docs/app/[survey-type]/global/styling-theme/images/windows-xp.webp
deleted file mode 100644
index 45f588a285..0000000000
Binary files a/apps/docs/app/[survey-type]/global/styling-theme/images/windows-xp.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/styling-theme/page.mdx b/apps/docs/app/[survey-type]/global/styling-theme/page.mdx
deleted file mode 100644
index a74f6f6dc4..0000000000
--- a/apps/docs/app/[survey-type]/global/styling-theme/page.mdx
+++ /dev/null
@@ -1,149 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AllowOverwrite from "./images/allow-overwrite.webp";
-import BackgroundSettings from "./images/background-settings.webp";
-import CardSettings from "./images/card-settings.webp";
-import FormSettings from "./images/form-settings.webp";
-import LookAndFeelSettings from "./images/look-and-feel.webp";
-import StepEight from "./images/step-eight.webp";
-import StepEleven from "./images/step-eleven.webp";
-import StepFive from "./images/step-five.webp";
-import StepFour from "./images/step-four.webp";
-import StepNine from "./images/step-nine.webp";
-import StepSeven from "./images/step-seven.webp";
-import StepSix from "./images/step-six.webp";
-import StepTen from "./images/step-ten.webp";
-
-import Doggo from "./images/doggo.webp";
-import HipsterLiving from "./images/hipster-living.webp";
-import Mario from "./images/mario.webp";
-import WindowsXp from "./images/windows-xp.webp";
-
-export const metadata = {
- title: "Styling Theme",
- description:
- "Keep the survey styling consistent over all surveys with a Styling Theme. Customize the colors, fonts, and other styling options to match your brand's aesthetic.",
-};
-
-# Styling Theme
-
-Keep the survey styling consistent over all surveys with a Styling Theme. Customize the colors, fonts, and other styling options to match your brand's aesthetic.
-
-## Configuration
-
-In the left side bar, you find the `Configuration` page. On this page you find the `Look & Feel` section:
-
-
-
-## **Styling Options**
-
-1. **Form Styling:** Customize the survey card using the following settings
-
-
-
-- **Brand Color**: Sets the primary color tone of the survey.
-- **Text Color**: This is a single color scheme that will be used across to display all the text on your survey. Ensures all text is readable against the background.
-- **Input Color:** Alters the border color of input fields.
-- **Input Border Color**: This is the color of the border of the form input field.
-
-2. **Card Styling:** Adjust the look of the survey card
-
-
-
-- **Roundness**: Adjusts the corner roundness of the survey card and its components (including input boxes, buttons).
-- **Card Background Color**: Sets the card's main background color.
-- **Card Border Color**: Changes the border color of the card
-- **Card Shadow Color**: Adds a shadow effect for depth
-- **Hide Progress Bar**: Optionally remove the progress bar to simplify the survey experience
-- **Add Highlight Border**: Adds a distinct border for emphasis.
-
-3. **Background Styling**: Customize the survey background with static colors, animations, or images (upload your own or get from Unsplash)
-
-This is only available for Link Surveys
-
-
-
-- **Color**: Pick any color for the background
-- **Animation**: Add dynamic animations to enhance user experience..
-- **Upload**: Use a custom uploaded image for a personalized touch
-- Image: Choose from Unsplash's extensive gallery. Note that these images will have a link and mention of the author & Unsplash on the bottom right to give them the credit for their awesome work!
-- **Background Overlay**: Adjust the background's opacity
-
-## Add Brand Logo
-
-Customize your survey with your brand's logo.
-
-Brand logos are only visible on Link Survey pages.
-
-1. In the Look & Feel page itself in Project settings, scroll down to see the Logo Upload box.
-
-
-
-2. Upload your logo
-
-
-
-3. Add a background color: If you’ve uploaded a transparent image and want to add background to it, enable this toggle and select the color of your choice.
-
-
-
-4. Remember to save your changes!
-
-
-
-The logo settings apply across all Link Surveys pages.
-
-## Overwrite Styling Theme
-
-You can allow to overwrite the styling theme for individual surveys to create unique styles for each survey:
-
-
-
-In the survey editor, a tab called `Styling` will appear. Here you can overwrite the default styling theme.
-
----
diff --git a/apps/docs/app/[survey-type]/global/variables/images/created-variables.webp b/apps/docs/app/[survey-type]/global/variables/images/created-variables.webp
deleted file mode 100644
index 4567d91598..0000000000
Binary files a/apps/docs/app/[survey-type]/global/variables/images/created-variables.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/variables/images/input-variables.webp b/apps/docs/app/[survey-type]/global/variables/images/input-variables.webp
deleted file mode 100644
index 6273bfe5fc..0000000000
Binary files a/apps/docs/app/[survey-type]/global/variables/images/input-variables.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/variables/images/logic-with-variables.webp b/apps/docs/app/[survey-type]/global/variables/images/logic-with-variables.webp
deleted file mode 100644
index 24db41a7e3..0000000000
Binary files a/apps/docs/app/[survey-type]/global/variables/images/logic-with-variables.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/variables/images/variables-card.webp b/apps/docs/app/[survey-type]/global/variables/images/variables-card.webp
deleted file mode 100644
index c9f6c781d6..0000000000
Binary files a/apps/docs/app/[survey-type]/global/variables/images/variables-card.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/variables/images/variables-usage.webp b/apps/docs/app/[survey-type]/global/variables/images/variables-usage.webp
deleted file mode 100644
index 2ff22da6ad..0000000000
Binary files a/apps/docs/app/[survey-type]/global/variables/images/variables-usage.webp and /dev/null differ
diff --git a/apps/docs/app/[survey-type]/global/variables/page.mdx b/apps/docs/app/[survey-type]/global/variables/page.mdx
deleted file mode 100644
index a76b032dec..0000000000
--- a/apps/docs/app/[survey-type]/global/variables/page.mdx
+++ /dev/null
@@ -1,88 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import CreatedVariables from "./images/created-variables.webp";
-import InputVariables from "./images/input-variables.webp";
-import LogicWithVariables from "./images/logic-with-variables.webp";
-import VariablesCard from "./images/variables-card.webp";
-import VariablesUsage from "./images/variables-usage.webp";
-
-export const metadata = {
- title: "Variables",
- description: "Add variabeles to your surveys to transform your survey into a quiz",
-};
-
-# Variables
-
-Variables are a powerful feature in Formbricks that allows you to keep track of data variables when user fills a form. This feature is especially useful when you want to use your survey as a quiz.
-
-## Types of Variables
-
-There are two types of variables you can add to your survey:
-
-1. **Text**: You can add text variables to your survey to capture text data.
-2. **Number**: You can add number variables to your survey to capture number data.
-
-## How to Add Variables
-
-1. Edit the survey you want to add variables to & switch to the Questions tab and scroll down to the bottom of the page. You will see a section called **Variables**.
-
-
-
-2. Now click on it to add a new variable ID. You can add as many variables as you want. You can also choose the type of variable you want to add along with the default value.
-
-
-
-
-
-## Use case:
-
-- **Quiz**: You can use variables to create a quiz. For example, you can add a variable `score` and update it every time a user answers a question. You can also use the variable for recall to show the final score to the user.
-
-- **Personalisation**: You can use variables to store user data and personalise the survey experience. For example, you can add a variable `full_name` and update it every time a user fills in their first name and last name. You can use the variable to personalise the survey experience by addressing the user with their full name.
-
-## How is it different from Hidden Fields?
-
-Variables are different from hidden fields in the following ways:
-
-1. **Setting**: Hidden fields can be set through query parameters or `formbricks.init`, but the variables can only be set either during creation or dynamically by using logic actions.
-2. **Updating**: Hidden fields cannot be set again, but the value of variables can be updated while the user fills the survey.
-3. **Type**: Hidden fields can only store text data, but variables can store both text and number data.
-
-## How to use Variables
-
-1. Once you have added the variables to your survey, you'll be able to access them in the logic editor. You can use the variables to create logic actions and conditions.
-
-
-
-2. You can create logic based on the variables and questions in your survey and can update the variables based on the user's response.
-
-
-
-
- To know more about how to use logic in Formbricks, check out the [Conditional Logic](/global/conditional-logic).
-
diff --git a/apps/docs/app/api-docs/components/api-docs.tsx b/apps/docs/app/api-docs/components/api-docs.tsx
deleted file mode 100644
index 33ad020269..0000000000
--- a/apps/docs/app/api-docs/components/api-docs.tsx
+++ /dev/null
@@ -1,74 +0,0 @@
-"use client";
-
-import { Button } from "@/components/button";
-import { LoadingSpinner } from "@/components/icons/loading-spinner";
-import { useTheme } from "next-themes";
-import { useState } from "react";
-import { RedocStandalone } from "redoc";
-import "./style.css";
-
-export function ApiDocs() {
- const { resolvedTheme } = useTheme();
-
- const redocTheme = {
- hideDownloadButton: true,
- hideLoading: true,
- nativeScrollbars: true,
- theme: {
- sidebar: {
- backgroundColor: "transparent",
- textColor: resolvedTheme === "dark" ? "rgb(203, 213, 225)" : "rgb(51, 51, 51)",
- activeTextColor: "#2dd4bf",
- },
- rightPanel: {
- backgroundColor: "transparent",
- },
- colors: {
- primary: { main: "#2dd4bf" },
- text: {
- primary: resolvedTheme === "dark" ? "#ffffff" : "rgb(51, 51, 51)",
- },
- responses: {
- success: { color: "#22c55e" },
- error: { color: "#ef4444" },
- info: { color: "#3b82f6" },
- },
- },
- typography: {
- fontSize: "16px",
- lineHeight: "2rem",
- fontFamily: "Jost, system-ui, -apple-system, sans-serif",
- headings: {
- fontFamily: "Jost, system-ui, -apple-system, sans-serif",
- fontWeight: "600",
- },
- code: {
- fontSize: "16px",
- fontFamily: "ui-monospace, monospace",
- },
- },
- codeBlock: {
- backgroundColor: "rgb(24, 35, 58)",
- },
- spacing: { unit: 5 },
- },
- };
-
- const [loading, setLoading] = useState(true);
-
- return (
-
- );
-}
diff --git a/apps/docs/app/api-docs/components/style.css b/apps/docs/app/api-docs/components/style.css
deleted file mode 100644
index c5463636c3..0000000000
--- a/apps/docs/app/api-docs/components/style.css
+++ /dev/null
@@ -1,86 +0,0 @@
-:root[data-theme="light"] {
- --text-color: rgb(51, 65, 85);
-}
-
-:root[data-theme="dark"] {
- --text-color: rgb(203, 213, 225);
-}
-
-h5,
-.sc-dhCplO,
-.sc-dpBQxM {
- color: var(--text-color) !important;
-}
-
-.tab-success,
-.react-tabs__tab,
-.tab-error {
- background-color: transparent !important;
- border: 1px solid var(--text-color) !important;
- margin: 10px 5px !important;
-}
-
-.sc-dwGkES,
-.sc-ePpfBx {
- background-color: rgb(24, 24, 27) !important;
- border: 1px solid var(--text-color) !important;
-}
-.sc-ePpfBx,
-.corVrN {
- background-color: rgb(24, 24, 27) !important;
- border: none !important;
-}
-.cqdCbT {
- display: none !important;
-}
-.kiMaJz, .iZNUDY {
- align-items: center !important;
-}
-
-.react-tabs__tab-panel > div {
- padding: 0 !important;
- border-radius: 8px !important;
- overflow: hidden !important;
-}
-.sc-Rjrgp {
- background-color: rgb(15, 23, 42) !important;
- display: flex !important;
- justify-content: center !important;
- flex-direction: column !important;
- padding: 8px 16px !important;
-}
-.cugBNu {
- position: static !important;
-}
-.daIHdK {
- padding: 0 !important;
-}
-.kqHNPM {
- margin-top: 0px !important;
-}
-.sc-iwXfZk,
-.redoc-json {
- padding: 1rem !important;
- background-color: rgb(24, 35, 58) !important;
-}
-.sc-uYFMi {
- background-color: rgb(24, 35, 58) !important;
- padding: 0.5rem 0 !important;
- color: #2dd4bf !important;
- font-weight: 600 !important;
-}
-.token {
- color: #2dd4bf !important;
-}
-
-.property {
- color: rgb(203, 213, 225) !important;
-}
-.sc-iPHsxv {
- background-color: rgb(15, 23, 42) !important;
- border-radius: 8px !important;
-}
-
-.sc-hSyjfr {
- background-color: rgb(15, 23, 42) !important;
-}
diff --git a/apps/docs/app/api-docs/page.tsx b/apps/docs/app/api-docs/page.tsx
deleted file mode 100644
index 8ae8c9d144..0000000000
--- a/apps/docs/app/api-docs/page.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { ApiDocs } from "./components/api-docs";
-
-export default function ApiDocsPage() {
- return ;
-}
diff --git a/apps/docs/app/app-surveys/actions/images/i1.webp b/apps/docs/app/app-surveys/actions/images/i1.webp
deleted file mode 100644
index 88c128dc54..0000000000
Binary files a/apps/docs/app/app-surveys/actions/images/i1.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/actions/images/i2.webp b/apps/docs/app/app-surveys/actions/images/i2.webp
deleted file mode 100644
index 0e12783e67..0000000000
Binary files a/apps/docs/app/app-surveys/actions/images/i2.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/actions/page.mdx b/apps/docs/app/app-surveys/actions/page.mdx
deleted file mode 100644
index 69002b8aa9..0000000000
--- a/apps/docs/app/app-surveys/actions/page.mdx
+++ /dev/null
@@ -1,121 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import I1 from "./images/i1.webp";
-import I2 from "./images/i2.webp";
-
-export const metadata = {
- title: "Using Actions in Formbricks",
- description:
- "Dive deep into how actions in Formbricks help products and organizations to engage users at precise moments in their journey. Discover the power of actions, from coding to no-code setups, to refine user targeting and generate richer, more detailed user insights.",
-};
-
-# Actions
-
-Actions are predefined events within your app that prompt Formbricks to display a survey when triggered. These are detected by the Formbricks widget, which then presents the appropriate survey based on your predefined settings.
-
-## **How Do Actions Work?**
-
-Actions in Formbricks App Surveys are deeply integrated with user activities within your app. When a user performs a specified action, the Formbricks widget detects this activity and can present a survey to that specific user if the trigger conditions match for that survey. This capability ensures that surveys are triggered at the right time. You can set up these actions through a user-friendly No-Code interface within the Formbricks dashboard.
-
-## **Why Are Actions Useful?**
-
-Actions are invaluable for enhancing survey relevance and effectiveness:
-
-- **Personalized Engagement**: Surveys triggered by user actions ensure content is highly relevant and engaging, matching each user’s current context.
-- **User Attributes**: By tying surveys to specific user attributes, such as activity levels or feature usage, you can customize the survey experience to reflect individual user profiles.
-- **User Targeting**: Precise targeting based on user attributes ensures that surveys are shown only to users who meet certain criteria, enhancing the relevance and effectiveness of each survey.
-
-## **Setting Up No-Code Actions**
-
-Formbricks offers an intuitive No-Code interface that allows you to configure actions without needing to write any code.
-
-To add a No-Code Action:
-
-1. Visit the Formbricks Dashboard & switch to the Actions tab:
-
-
-
-2. Now click on “Add Action”
-
-
-
-Here are four types of No-Code actions you can set up:
-
-### **1. Click Action**
-
-Click Action is triggered when a user clicks on a specific element within your application. You can define the element's inner text or CSS selector to trigger the survey.
-
-- **Inner Text**: Checks if the innerText of a clicked HTML element, like a button label, matches a specific text. This action allows you to display a survey based on text interactions within your application.
-
-- **CSS Selector**: Verifies if a clicked HTML element matches a provided CSS selector, such as a class, ID, or any other CSS selector used in your website. It enables survey triggers based on element interactions.
-
-### **2. Page view Action**
-
-This action is triggered when a user visits a page within your application.
-
-### **3. Exit Intent Action**
-
-This action is triggered when a user is about to leave your application. It helps capture user feedback before they exit, providing valuable insights into user experiences and potential improvements.
-
-### **4. 50% Scroll Action**
-
-This action is triggered when a user scrolls through 50% of a page within your application. It helps capture user feedback at a specific point in their journey, enabling you to gather insights based on user interactions.
-
-This action is triggered when a user visits a specific page within your application. You can define the URL match conditions as follows:
-
-
-You can combine the url filters with any of the no-code actions to trigger the survey based on the URL match conditions.
-
-### **URL Match Conditions**
-
-- **exactMatch**: Triggers the action when the URL exactly matches the specified string.
-- **contains**: Activates when the URL contains the specified substring.
-- **startsWith**: Fires when the URL starts with the specified string.
-- **endsWith**: Executes when the URL ends with the specified string.
-- **notMatch**: Triggers when the URL does not match the specified condition.
-- **notContains**: Activates when the URL does not contain the specified substring.
-
-
-
-## **Setting Up Code Actions**
-
-For more granular control, you can implement actions directly in your codebase:
-
-1. **Configure the Action**: First, add the action via the Formbricks web interface to make it available for survey configuration.
- After that you can fire an action using `formbricks.track()`
-
-2. **Track an Action**: Use formbricks.track() to send an action event to Formbricks.
-
-
-
-
-```javascript
-formbricks.track("Action Name");
-```
-
-
-
-Here is an example of how to fire an action when a user clicks a button:
-
-
-
-```javascript
-const handleClick = () => {
- formbricks.track("Button Clicked");
-};
-
-return ;
-```
-
-
-
diff --git a/apps/docs/app/app-surveys/advanced-targeting/germans-gpt.webp b/apps/docs/app/app-surveys/advanced-targeting/germans-gpt.webp
deleted file mode 100644
index a36ec28252..0000000000
Binary files a/apps/docs/app/app-surveys/advanced-targeting/germans-gpt.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/advanced-targeting/hni.webp b/apps/docs/app/app-surveys/advanced-targeting/hni.webp
deleted file mode 100644
index ad56505d05..0000000000
Binary files a/apps/docs/app/app-surveys/advanced-targeting/hni.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/advanced-targeting/page.mdx b/apps/docs/app/app-surveys/advanced-targeting/page.mdx
deleted file mode 100644
index e7a62f609d..0000000000
--- a/apps/docs/app/app-surveys/advanced-targeting/page.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
-export const metadata = {
- title: "Advanced Targeting for App Surveys | Formbricks",
- description:
- "Advanced Targeting allows you to show surveys to just the right group of people. You can target surveys based on user attributes, metadata, and other segments. This helps you get more relevant feedback and make data-driven decisions.",
-};
-
-# Advanced Targeting
-
-Advanced Targeting allows you to show surveys to the right group of people. You can target surveys based on user attributes, device type, and more instead of spraying and praying. This helps you get more relevant feedback and make data-driven decisions. All of this without writing a single line of code.
-
-## How to setup Advanced Targeting
-
-Advanced Targeting is only available on the Pro plan!
-
-1. On the Formbricks dashboard, click on **People** tab from the top navigation bar.
-
-2. Switch to the **Segments** tab & click on **Create Segment**.
-
-3. Give your segment a title & a description to help you remember what this segment is about.
-
-4. Now click on the **Add Filter** button to add a filter. You can filter based on user attributes, other segments, devices, and more.
-
-5. To group a set of filters together, click on the Three Dots icon on the right side of the filter and click on **Create Group**.
-
-6. Try playing around with different filters & conditions that we have provided to see how the segment size changes.
-
-7. Once you are happy with the segment, click on **Save Segment**.
-
-8. Now, when you create a survey, you can select this segment to target your survey to.
diff --git a/apps/docs/app/app-surveys/advanced-targeting/power-users.webp b/apps/docs/app/app-surveys/advanced-targeting/power-users.webp
deleted file mode 100644
index 4c1bb564a1..0000000000
Binary files a/apps/docs/app/app-surveys/advanced-targeting/power-users.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/advanced-targeting/ride-hailing.webp b/apps/docs/app/app-surveys/advanced-targeting/ride-hailing.webp
deleted file mode 100644
index 694cd90790..0000000000
Binary files a/apps/docs/app/app-surveys/advanced-targeting/ride-hailing.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/advanced-targeting/upsell-miro.webp b/apps/docs/app/app-surveys/advanced-targeting/upsell-miro.webp
deleted file mode 100644
index 8da20d2c9e..0000000000
Binary files a/apps/docs/app/app-surveys/advanced-targeting/upsell-miro.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/framework-guides/components/libraries.tsx b/apps/docs/app/app-surveys/framework-guides/components/libraries.tsx
deleted file mode 100644
index 0dfa3036fb..0000000000
--- a/apps/docs/app/app-surveys/framework-guides/components/libraries.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import { Button } from "@/components/button";
-import logoHtml from "@/images/frameworks/html5.svg";
-import logoNextjs from "@/images/frameworks/nextjs.svg";
-import logoReactJs from "@/images/frameworks/reactjs.svg";
-import logoVueJs from "@/images/frameworks/vuejs.svg";
-import Image from "next/image";
-
-const libraries = [
- {
- href: "#html",
- name: "HTML",
- description: "All you need to do is add 3 lines of code to your HTML script and thats it, you're done!",
- logo: logoHtml as string,
- },
- {
- href: "#react-js",
- name: "React.js",
- description: "Load the our Js library with your environment ID and you're ready to go!",
- logo: logoReactJs as string,
- },
- {
- href: "#next-js",
- name: "Next.js",
- description:
- "Natively add us to your NextJs project with support for both App as well as Pages project structure!",
- logo: logoNextjs as string,
- },
- {
- href: "#vue-js",
- name: "Vue.js",
- description: "Simply add us to your router change and sit back!",
- logo: logoVueJs as string,
- },
- {
- href: "#react-native",
- name: "React Native",
- description: "Easily integrate our SDK with your React Native app for seamless survey support!",
- logo: logoReactJs as string,
- },
-];
-
-export function Libraries() {
- return (
-
- );
-}
diff --git a/apps/docs/app/app-surveys/framework-guides/images/env-id.webp b/apps/docs/app/app-surveys/framework-guides/images/env-id.webp
deleted file mode 100644
index 1c148f2e64..0000000000
Binary files a/apps/docs/app/app-surveys/framework-guides/images/env-id.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/framework-guides/images/react-in-app-survey-app-popup-form.webp b/apps/docs/app/app-surveys/framework-guides/images/react-in-app-survey-app-popup-form.webp
deleted file mode 100644
index ae74a5d73b..0000000000
Binary files a/apps/docs/app/app-surveys/framework-guides/images/react-in-app-survey-app-popup-form.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/framework-guides/images/widget-connected.webp b/apps/docs/app/app-surveys/framework-guides/images/widget-connected.webp
deleted file mode 100644
index 90b82de9f4..0000000000
Binary files a/apps/docs/app/app-surveys/framework-guides/images/widget-connected.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/framework-guides/images/widget-not-connected.webp b/apps/docs/app/app-surveys/framework-guides/images/widget-not-connected.webp
deleted file mode 100644
index 2cd15d007c..0000000000
Binary files a/apps/docs/app/app-surveys/framework-guides/images/widget-not-connected.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/framework-guides/page.mdx b/apps/docs/app/app-surveys/framework-guides/page.mdx
deleted file mode 100644
index 85d27a588c..0000000000
--- a/apps/docs/app/app-surveys/framework-guides/page.mdx
+++ /dev/null
@@ -1,447 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import { Libraries } from "./components/libraries";
-
-import ReactApp from "./images/react-in-app-survey-app-popup-form.webp";
-import WidgetConnected from "./images/widget-connected.webp";
-import WidgetNotConnected from "./images/widget-not-connected.webp";
-
-export const metadata = {
- title: "Integrate Formbricks: Comprehensive Framework Guide & Integration Tutorial",
- description:
- "Master the integration of Formbricks into your application with our detailed guides. From HTML to ReactJS, NextJS, and VueJS, get step-by-step instructions and ensure seamless setup.",
-};
-
-# Framework Guides
-
-One can integrate Formbricks App Survey SDK into their app using multiple options! Checkout the options below that we provide! If you are looking
-for something else, please [open a new Github Discussion](https://github.com/formbricks/formbricks/discussions) and we would be glad to help.
-
-
-
----
-
-## Prerequisites
-
-Before getting started, make sure you have:
-
-1. A web application (behind your user authentication system) in your desired framework is set up and running.
-2. A Formbricks account with access to your environment ID and API host. You can find these in the **Setup Checklist** in the Settings.
-
----
-
-## HTML
-
-All you need to do is copy a `
-
-```
-
-
-### Required customizations to be made
-
-
-
- Formbricks Environment ID.
-
-
- URL of the hosted Formbricks instance.
-
-
-
-Now visit the [Validate your Setup](#validate-your-setup) section to verify your setup!
-
----
-
-## ReactJS
-
-Install the Formbricks SDK using one of the package managers ie `npm`,`pnpm`,`yarn`. Note that zod is required as a peer dependency must also be installed in your project.
-
-
-
-
-```js
-// other imports
-import formbricks from "@formbricks/js";
-
-if (typeof window !== "undefined") {
- formbricks.init({
- environmentId: "",
- apiHost: "",
- userId: "", //optional
- });
-}
-
-function App() {
- // your own app
-}
-
-export default App;
-```
-
-
-
-### Required customizations to be made
-
-
-
- Formbricks Environment ID.
-
-
- URL of the hosted Formbricks instance.
-
-
-
-Now visit the [Validate your Setup](#validate-your-setup) section to verify your setup!
-
----
-
-## NextJS
-
-NextJs projects typically follow two main conventions: the App Directory and the Pages Directory.
-To ensure smooth integration with the Formbricks SDK, which operates solely on the client side, follow the
-guidelines for each convention below:
-
-- App directory: You will have to define a new component in `app/formbricks.tsx` file and call it in your `app/layout.tsx` file.
-- Pages directory: You will have to visit your `_app.tsx` and just initialise Formbricks there.
-
-Code snippets for the integration for both conventions are provided to further assist you.
-
-
-
-
-```tsx {{ title: 'Typescript' }}
-// other import
-import { useRouter } from "next/router";
-import { useEffect } from "react";
-import formbricks from "@formbricks/js";
-
-if (typeof window !== "undefined") {
- formbricks.init({
- environmentId: "",
- apiHost: "",
- userId: "", //optional
- });
-}
-
-export default function App({ Component, pageProps }: AppProps) {
- const router = useRouter();
-
- useEffect(() => {
- // Connect next.js router to Formbricks
- const handleRouteChange = formbricks?.registerRouteChange;
- router.events.on("routeChangeComplete", handleRouteChange);
-
- return () => {
- router.events.off("routeChangeComplete", handleRouteChange);
- };
- }, []);
- return ;
-}
-```
-
-
-
-
-### Required customizations to be made
-
-
-
- Formbricks Environment ID.
-
-
- URL of the hosted Formbricks instance.
-
-
-
-First we initialize the Formbricks SDK, ensuring that it only runs on the client side.
-To connect the Next.js router to Formbricks and ensure the SDK can keep track of every page change, we are registering the route change event.
-
-Now visit the [Validate your Setup](#validate-your-setup) section to verify your setup!
-
----
-
-## VueJs
-
-Integrating the Formbricks SDK with Vue.js is a straightforward process.
-We will make sure the SDK is only loaded and used on the client side, as it's not intended for server-side usage.
-
-
-
-```shell {{ title: 'npm' }}
-npm install @formbricks/js
-````
-
-```shell {{ title: 'pnpm' }}
-pnpm add @formbricks/js
-```
-
-```shell {{ title: 'yarn' }}
-yarn add @formbricks/js
-```
-
-
-
-
-
-```js
-import formbricks from "@formbricks/js";
-
-if (typeof window !== "undefined") {
- formbricks.init({
- environmentId: "",
- apiHost: "",
- userId: "", //optional
- });
-}
-
-export default formbricks;
-```
-
-
-
-
-
-```js
-// other imports
-import formbricks from "@/formbricks";
-
-const app = createApp(App);
-
-app.use(router);
-
-app.mount("#app");
-
-router.afterEach((to, from) => {
- if (typeof formbricks !== "undefined") {
- formbricks.registerRouteChange();
- }
-});
-```
-
-
-
-### Required customizations to be made
-
-
-
- Formbricks Environment ID.
-
-
-
-
- URL of the hosted Formbricks instance.
-
-
-
-Now visit the [Validate your Setup](#validate-your-setup) section to verify your setup!
-
-## React Native
-
-Install the Formbricks React Native SDK using one of the package managers, i.e., npm, pnpm, or yarn.
-
-
-
-
-```js
-// other imports
-import Formbricks from "@formbricks/react-native";
-
-export default function App() {
- return (
- <>
- {/* Your app content */}
-
- >
- );
-}
-```
-
-
-
-### Required customizations to be made
-
-
-
- Formbricks Environment ID.
-
-
- URL of the hosted Formbricks instance.
-
-
-
----
-
-## Validate your setup
-
-Once you have completed the steps above, you can validate your setup by checking the **Setup Checklist** in the Settings. Your widget status indicator should go from this:
-
-
-
-To this:
-
-
-
-## Debugging Formbricks Integration
-
-Enabling Formbricks debug mode in your browser is a useful troubleshooting step for identifying and resolving complex issues. This section outlines how to activate debug mode, covers common use cases, and provides insights into specific debug log messages.
-
-### Activate Debug Mode
-
-To activate Formbricks debug mode:
-
-1. **Via URL Parameter:**
-
- - Enable debug mode mode by adding `?formbricksDebug=true` to your application's URL (e.g. `https://example.com?formbricksDebug=true` or `https://example.com?page=123&formbricksDebug=true`). This parameter will enable debugging for the current page.
-
-2. **View Debug Logs:**
-
- - Open your browser's developer tools by pressing `F12` or right-clicking and selecting "Inspect."
- - Navigate to the "Console" tab to view Formbricks debugging information.
-
- **How to Open Browser Console:**
-
- - **Google Chrome:** Press `F12` or right-click, select "Inspect," and go to the "Console" tab.
- - **Firefox:** Press `F12` or right-click, select "Inspect Element," and go to the "Console" tab.
- - **Safari:** Press `Option + Command + C` to open the developer tools and navigate to the "Console" tab.
- - **Edge:** Press `F12` or right-click, select "Inspect Element," and go to the "Console" tab.
-
-### Common Use Cases
-
-Debug mode is beneficial for scenarios such as:
-
-- Verifying Formbricks initialization.
-- Identifying survey trigger issues.
-- Troubleshooting unexpected behavior.
-
-### Debug Log Messages
-
-Debug log messages provide insights into:
-
-- API calls and responses.
-- Event tracking, survey triggers and form interactions.
-- Initialization errors.
-
-**Can’t figure it out?**: **[Get help in Github Discussions](https://github.com/formbricks/formbricks/discussions)**
-
----
diff --git a/apps/docs/app/app-surveys/quickstart/images/i1.webp b/apps/docs/app/app-surveys/quickstart/images/i1.webp
deleted file mode 100644
index 0714f4a19a..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i1.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/images/i2.webp b/apps/docs/app/app-surveys/quickstart/images/i2.webp
deleted file mode 100644
index 66b2db4cca..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i2.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/images/i3.webp b/apps/docs/app/app-surveys/quickstart/images/i3.webp
deleted file mode 100644
index 76b9658d5d..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i3.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/images/i3_1.webp b/apps/docs/app/app-surveys/quickstart/images/i3_1.webp
deleted file mode 100644
index 15b7efe1c0..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i3_1.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/images/i4.webp b/apps/docs/app/app-surveys/quickstart/images/i4.webp
deleted file mode 100644
index f7bae96938..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i4.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/images/i5.webp b/apps/docs/app/app-surveys/quickstart/images/i5.webp
deleted file mode 100644
index 1962df70a8..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i5.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/images/i6.webp b/apps/docs/app/app-surveys/quickstart/images/i6.webp
deleted file mode 100644
index a24c2af56d..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i6.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/images/i7.webp b/apps/docs/app/app-surveys/quickstart/images/i7.webp
deleted file mode 100644
index 4a3a352d2d..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i7.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/images/i8.webp b/apps/docs/app/app-surveys/quickstart/images/i8.webp
deleted file mode 100644
index e5c0ab7442..0000000000
Binary files a/apps/docs/app/app-surveys/quickstart/images/i8.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/quickstart/page.mdx b/apps/docs/app/app-surveys/quickstart/page.mdx
deleted file mode 100644
index 7a0f32db1b..0000000000
--- a/apps/docs/app/app-surveys/quickstart/page.mdx
+++ /dev/null
@@ -1,115 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import I1 from "./images/i1.webp";
-import I2 from "./images/i2.webp";
-import I3 from "./images/i3.webp";
-import I3_1 from "./images/i3_1.webp";
-import I4 from "./images/i4.webp";
-import I5 from "./images/i5.webp";
-import I6 from "./images/i6.webp";
-import I7 from "./images/i7.webp";
-import I8 from "./images/i8.webp";
-
-export const metadata = {
- title: "Formbricks Quickstart Guide: App Surveys Made Easier & Faster",
- description:
- "Formbricks is the easiest way to create and manage app surveys. This quickstart guide will show you how to create your first app survey in under 5 minutes.",
-};
-
-# Quickstart
-
-App surveys have 6-10x better conversion rates than emailed surveys. This tutorial explains how to run a survey in both your web app and mobile app (React Native) in just 10 to 15 minutes. Let’s go!
-
-1. **Create a free Formbricks Cloud account**: While you can [self-host](/self-hosting/deployment) Formbricks, but the quickest and easiest way to get started is with the free Cloud plan. Just [sign up here](https://app.formbricks.com/auth/signup) and you'll be guided to our onboarding like below, choose the "Formbricks Surveys" option:
-
-
-
-2. **Choose your Project Channel**: On this step, you have to choose between the various channels that you want your project to be created in, you can create both app and link surveys from all the channels, but for the onboarding, please choose between the app surveys or the public website options, upon doing this, you'll be prompted to connect your app / website to formbricks.
-
-
-
-3. **Connect your App/Website**: Once you get through a couple of onboarding steps, you’ll be asked to connect your app or website. This is where you’ll find the code snippet for both HTML as well as the npm package which you need to embed in your app:
-
-
-
-Paste the code snippet in your app and reload the page. You should now see a message being displayed that your app or website is now connected with formbricks.
-
-
-
-Onboarding is complete! Now let’s create our first survey as you should see templates to choose from after clicking on **Next**:
-
-
-
-4. **Create your first survey**: To be able to see a survey in your app, you need to create one. We’ll choose one of the templates and head over to the survey settings:
-
-Pick the Survey Type as **App Survey**.
-
-
-
-5. **Set Trigger for the Survey**: Scroll down to Survey Trigger and click on **+ Add action**, choose **New Session**. This will cause this survey to appear when the Formbricks Widget tracks a new user session:
-
-
-
-6. **Set Recontact Options for debugging**: In Recontact Options we choose the following settings, so that we can play around with the survey more easily. By default, each survey will be shown only once to each user to prevent survey fatigue:
-
-
- Please change this setting later on after testing your survey to prevent survey fatigue for your users.
-
-
-
-
-7. **Publish your survey**: Now hit **Publish** and you’ll be forwarded to the Summary Page. This is where you’ll find the responses to this survey.
-
-
-
----
-
-- We offer framework guides for various frontend tech, head over to the the [App Survey Framework Guides](/app-surveys/framework-guides) to get started with your app survey.
-- Head over to our JS SDK documentation to get started with the [JS SDK](/developer-docs/js-sdk).
-
-Still struggling or something not working as expected? [Join us in Github Discussions](https://github.com/formbricks/formbricks/discussions) and we'd be glad to assist you!
diff --git a/apps/docs/app/app-surveys/recontact/app-survey.webp b/apps/docs/app/app-surveys/recontact/app-survey.webp
deleted file mode 100644
index 467e536c8a..0000000000
Binary files a/apps/docs/app/app-surveys/recontact/app-survey.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/recontact/global-wait-time.webp b/apps/docs/app/app-surveys/recontact/global-wait-time.webp
deleted file mode 100644
index 6208dfa66b..0000000000
Binary files a/apps/docs/app/app-surveys/recontact/global-wait-time.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/recontact/ignore-wait-time.webp b/apps/docs/app/app-surveys/recontact/ignore-wait-time.webp
deleted file mode 100644
index 97809d77c2..0000000000
Binary files a/apps/docs/app/app-surveys/recontact/ignore-wait-time.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/recontact/page.mdx b/apps/docs/app/app-surveys/recontact/page.mdx
deleted file mode 100644
index 8bb45df6ca..0000000000
--- a/apps/docs/app/app-surveys/recontact/page.mdx
+++ /dev/null
@@ -1,105 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AppSurvey from "./app-survey.webp";
-import GlobalWaitTime from "./global-wait-time.webp";
-import IgnoreWaitTime from "./ignore-wait-time.webp";
-import SurveyRecontact from "./survey-recontact.webp";
-
-export const metadata = {
- title: "Recontact Options in Formbricks: When to show a survey again to a user",
- description:
- "Explore how to configure Recontact options in Formbricks to control the frequency of survey exposure to users, ensuring effective feedback collection without compromising user experience.",
-};
-
-# Recontact Options
-
-Recontact options in Formbricks enable you to manage how often and under what conditions a survey is shown to a user. This feature is crucial for balancing effective feedback collection with a positive user experience by preventing survey fatigue.
-
-## When do Recontact Options come into play?
-
-Recontact options are the last layer of the logic that determines if a survey is shown to the current user. The logic goes as follows:
-
-1. Targeting: Does the current user targeted to fill out this survey? If yes...
-2. Trigger: Is the survey triggered? If yes...
-3. **Recontact Options:** Should the survey be shown (again) to this user? That's dependent on:
-
-- Did the user see any survey recently (meaning, has Global Waiting Time passed)?
-- Did the user see this specific survey already?
-- How many times did the user see this specific survey already?
-- Has the user already responded to this survey?
-
-As you can see, there are a lot of different cases to cover. Let's have a closer look 👇
-
-## Recontact Options
-
-By default, a survey is shown to each user only once.
-
-You can adjust the default behavior by modifying the Recontact Options for each survey in the settings:
-
-1. Open the Survey Editor for the survey you want to see & modify the Recontact Options for.
-2. Select the Settings Tab.
-3. Ensure your Survey type is set to **App Survey**.
-
-
-
-4. Scroll down to the Recontact Options section.
-
-Available Recontact Options include:
-
-- **Show only once**: (default) Displays the survey a single time, regardless of whether it was completed.
-- **Until they Submit a Response**: If tareting matches and trigger fires, Formbricks keeps showing the survey until the user submits a response.
-- **Keep Showing while Conditions Match**: Always shows the survey while specific conditions are met. Useful for continuous feedback collection, such as in [Docs Feedback Survey](/best-practices/docs-feedback) or the [Feedback Box](/best-practices/feedback-box).
-
-
-
-## Project-wide Global Waiting Time
-
-The Global Waiting Time is a universal blocker to make sure that no user sees too many surveys. This is particularly helpful when several teams of large organisations use Formbricks at the same time.
-
-The default Global Waiting Time is set to 7 days.
-
-To adjust the Global Waiting Time:
-
-1. Visit Formbricks Settings
-2. Go to Project Settings
-3. Find the **Recontact Waiting Time** section
-4. Modify the interval (in days) as needed.
-
-
-
-## Overriding Global Waiting Time for a Specific Survey
-
-For specific surveys, you may need to override the default waiting time. Below is how you can do that:
-
-1. In the Survey Editor, access the Settings Tab.
-2. Find the Ignore Waiting Time between Surveys toggle under Recontact Options.
-3. Enable this toggle to bypass the global setting.
-4. Set a custom recontact period:
- - **Always Show Survey**: Displays the survey whenever triggered, ignoring the waiting time.
- - **Wait `X` days before showing this survey again**: Sets a specific interval before the survey can be shown again.
-
-
-
----
-
-Still struggling or something not working as expected? [Join us in Github Discussions](https://github.com/formbricks/formbricks/discussions) and we'd be glad to assist you!
diff --git a/apps/docs/app/app-surveys/recontact/survey-recontact.webp b/apps/docs/app/app-surveys/recontact/survey-recontact.webp
deleted file mode 100644
index 552871ab31..0000000000
Binary files a/apps/docs/app/app-surveys/recontact/survey-recontact.webp and /dev/null differ
diff --git a/apps/docs/app/app-surveys/user-identification/page.mdx b/apps/docs/app/app-surveys/user-identification/page.mdx
deleted file mode 100644
index 9fb7ccb67b..0000000000
--- a/apps/docs/app/app-surveys/user-identification/page.mdx
+++ /dev/null
@@ -1,115 +0,0 @@
-export const metadata = {
- title: "Identifying Users in Formbricks App Surveys",
- description:
- "Dive into the importance of user identification in surveys. Boost your survey response rates and target the right users with Formbricks.",
-};
-
-# User Identification
-
-User Identification helps you to not only segment your users but also to see more information about the user who responded to a survey. This helps you to target surveys to specific user segments and see more information about the user who responded to a survey.
-
-### Understanding Identified vs Unidentified Users
-
-In Formbricks, understanding the distinction between identified and unidentified users is crucial for effective survey segmentation and targeted feedback collection.
-
-| Feature | Unidentified Users | Identified Users |
-| -------------------------------------------------------- | ------------------ | ---------------- |
-| Show surveys based on **trigger** actions | ✅ | ✅ |
-| Set **recontact details** to avoid survey fatique | ✅ | ✅ |
-| Target a subset of users using **attributes & segments** | ❌ | ✅ |
-| Collect **user information** in Formbricks | ❌ | ✅ |
-| Track **custom attributes** | ❌ | ✅ |
-| Counts towards your **monthly tacked user (MTU)** limit | ❌ | ✅ |
-| Recommended for **public-facing websites** | ✅ | ❌ |
-| Recommended for **web apps after login** | ❌ | ✅ |
-
-## Identified Users
-
-Identified users are those for whom specific information has been set, notably the userId. This identification allows for more precise targeting of surveys and a deeper understanding of the feedback provided. When enabled, all information specified by you and all actions are sent to Formbricks.
-
-This method is recommended for applications where users are required to log in and will often return.
-
-### Setting User ID
-
-To enable the User identification feature you need to set the `userId` in the init() call of Formbricks. Only when the `userId` is set the person will be visible in the Formbricks dashboard. The `userId` can be any string and it's best to use the default identifier you use in your app (e.g. unique id from database or the email address if it's unique) but you can also anonymize these as long as they are unique for every user.
-
-
-
-
-```javascript
-formbricks.init({
- environmentId: "",
- apiHost: "",
- userId: "",
-});
-```
-
-
-
-
-### Enhanced Initialization with User Attributes
-
-In addition to setting the `userId`, Formbricks allows you to set user attributes right at the initialization. This ensures that your user data is seamlessly integrated from the start. Here's how you can include user attributes in the `init()` function:
-
-
-
-
-```javascript
-formbricks.init({
- environmentId: "",
- apiHost: "",
- userId: "",
- attributes: {
- // your custom attributes
- Plan: "premium",
- },
-});
-```
-
-
-
-
-## Setting Custom User Attributes
-
-You can use the setAttribute function to set any custom attribute for the user (e.g. name, plan, etc.):
-
-
- Please note that the number of different attribute classes (e.g., "Plan," "First Name," etc.) is currently limited to 150 attributes per environment.
-
-
-
-
-
-```javascript
-formbricks.setAttribute("Plan", "free");
-```
-
-
-
-
-Generally speaking, the setAttribute function works like this:
-
-
-
-
-```javascript
-formbricks.setAttribute("attribute_key", "attribute_value");
-```
-
-
-
-Where `attributeName` is the name of the attribute you want to set, and `attributeValue` is the value of the attribute you want to set.
-
-### Logging Out Users
-
-When a user logs out of your webpage, make sure to log them out of Formbricks as well. This will prevent new activity from being associated with an incorrect user. Use the logout function:
-
-
-
-
-```javascript
-formbricks.logout();
-```
-
-
-
diff --git a/apps/docs/app/best-practices/cancel-subscription/change-text.webp b/apps/docs/app/best-practices/cancel-subscription/change-text.webp
deleted file mode 100644
index 6ff799b492..0000000000
Binary files a/apps/docs/app/best-practices/cancel-subscription/change-text.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/cancel-subscription/create-cancel-flow.webp b/apps/docs/app/best-practices/cancel-subscription/create-cancel-flow.webp
deleted file mode 100644
index 6d88d33e02..0000000000
Binary files a/apps/docs/app/best-practices/cancel-subscription/create-cancel-flow.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/cancel-subscription/page.mdx b/apps/docs/app/best-practices/cancel-subscription/page.mdx
deleted file mode 100644
index 8aa9958afa..0000000000
--- a/apps/docs/app/best-practices/cancel-subscription/page.mdx
+++ /dev/null
@@ -1,155 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import ChangeText from "./change-text.webp";
-import CreateChurnFlow from "./create-cancel-flow.webp";
-import PublishSurvey from "./publish-survey.webp";
-import RecontactOptions from "./recontact-options.webp";
-import SelectAction from "./select-action.webp";
-import TriggerCSS from "./trigger-css-selector.webp";
-import TriggerInnerText from "./trigger-inner-text.webp";
-import TriggerPageUrl from "./trigger-page-url.webp";
-
-export const metadata = {
- title: "Mastering Churn Surveys with Formbricks | Essential Tips & Steps",
- description:
- "Learn how to effectively utilize Formbricks' Churn Surveys to gain deeper insights into user departures. Dive into a step-by-step guide to craft, trigger, and optimize your churn surveys, ensuring you capture invaluable feedback at critical junctures",
-};
-
-#### Best Practices
-
-# Learn from Churn
-
-Churn is hard, but can teach you a lot. Whenever a user decides that your product isn’t worth it anymore, you have a unique opportunity to get deep insights. These insights are pure gold to reduce churn.
-
-## Purpose
-
-The Churn Survey is among the most effective ways to identify weaknesses in your offering. People were willing to pay but now are not anymore: What changed? Let’s find out!
-
-## Formbricks Approach
-
-- Ask at exactly the right point in time
-- Follow-up to prevent bad reviews
-- Coming soon: Make survey mandatory
-
-## Overview
-
-To run the Churn Survey in your app you want to proceed as follows:
-
-1. Create new Churn Survey at [app.formbricks.com](https://app.formbricks.com/)
-2. Set up the user action to display survey at right point in time
-3. Choose correct recontact options to never miss a feedback
-4. Prevent that churn!
-
-
- ## Formbricks Widget running? We assume that you have already installed the Formbricks Widget in your web app. It’s required to display messages and surveys in your app. If not, please follow the [Quick Start Guide (takes 15mins max.)](/app-surveys/quickstart)
-
-
-### 1. Create new Churn Survey
-
-If you don't have an account yet, create one at [app.formbricks.com](https://app.formbricks.com/auth/signup)
-
-Click on "Create Survey" and choose the template “Churn Survey”:
-
-
-
-### 2. Update questions (if you like)
-
-You’re free to update the question and answer options. However, based on our experience, we suggest giving the provided template a go 😊
-
-
-
-_Want to change the button color? You can do so in the project settings._
-
-Save, and move over to the “Audience” tab.
-
-### 3. Pre-segment your audience
-
-In this case, you don’t really need to pre-segment your audience. You likely want to ask everyone who hits the “Cancel subscription” button.
-
-### 4. Set up a trigger
-
-To create the trigger for your Churn Survey, you have three options to choose from:
-
-1. **Trigger by Inner Text:** You likely have a “Cancel Subscription” button in your app. You can setup a user Action with the according `Inner Text` to trigger the survey, like so:
-
-
-
-2. **Trigger by CSS Selector:** In case you have more than one button saying “Cancel Subscription” in your app and only want to display the survey when one of them is clicked, you want to be more specific. The best way to do that is to give this button the HTML `id=“cancel-subscription”` and set your user action up like so:
-
-
-
-1. **Trigger by page view filters:** Lastly, you could also display your survey on a subpage “/subscription-cancelled” where you forward users once they cancelled the trial subscription. You can then create a user Action with the type `Page View` and add select `Limit to specific pages` to add url filters, with the following settings:
-
-
-
-Whenever a user visits this page, matches the filter conditions above and the recontact options (below) the survey will be displayed ✅
-
-Here is our complete [Actions manual](/app-surveys/actions/) covering [No-Code](/app-surveys/actions#setting-up-no-code-actions) and [Code](/app-surveys/actions#setting-up-code-actions) Actions.
-
-
- ## Pre-churn flow coming soon We’re currently building full-screen survey pop-ups. You’ll be able to prevent users from closing the survey unless they respond to it. It’s certainly debatable if you want that but you could force them to click through the survey before letting them cancel 🤷
-
-
-### 5. Select Action in the “When to ask” card
-
-
-
-### 6. Last step: Set Recontact Options correctly
-
-Lastly, scroll down to “Recontact Options”. Here you have to choose the correct settings to make sure you milk these super valuable insights. You want to make sure that this survey is always displayed, no matter if the user has already seen a survey in the past days:
-
-
-
-These settings make sure the survey is always displayed, when a user wants to Cancel their subscription.
-
-### 7. Congrats! You’re ready to publish your survey 💃
-
-
-
-
- ## Formbricks Widget running? You need to have the Formbricks Widget installed to display the Churn Survey in your app. Please follow [this tutorial (Step 4 onwards)](/app-surveys/quickstart) to install the widget.
-
-
-###
-
-# Get those insights! 🎉
diff --git a/apps/docs/app/best-practices/cancel-subscription/publish-survey.webp b/apps/docs/app/best-practices/cancel-subscription/publish-survey.webp
deleted file mode 100644
index 1452de30d6..0000000000
Binary files a/apps/docs/app/best-practices/cancel-subscription/publish-survey.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/cancel-subscription/recontact-options.webp b/apps/docs/app/best-practices/cancel-subscription/recontact-options.webp
deleted file mode 100644
index 3597c60e5f..0000000000
Binary files a/apps/docs/app/best-practices/cancel-subscription/recontact-options.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/cancel-subscription/select-action.webp b/apps/docs/app/best-practices/cancel-subscription/select-action.webp
deleted file mode 100644
index a120c5770d..0000000000
Binary files a/apps/docs/app/best-practices/cancel-subscription/select-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/cancel-subscription/trigger-css-selector.webp b/apps/docs/app/best-practices/cancel-subscription/trigger-css-selector.webp
deleted file mode 100644
index 404802b219..0000000000
Binary files a/apps/docs/app/best-practices/cancel-subscription/trigger-css-selector.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/cancel-subscription/trigger-inner-text.webp b/apps/docs/app/best-practices/cancel-subscription/trigger-inner-text.webp
deleted file mode 100644
index bae93a23cd..0000000000
Binary files a/apps/docs/app/best-practices/cancel-subscription/trigger-inner-text.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/cancel-subscription/trigger-page-url.webp b/apps/docs/app/best-practices/cancel-subscription/trigger-page-url.webp
deleted file mode 100644
index 71f03ec7d5..0000000000
Binary files a/apps/docs/app/best-practices/cancel-subscription/trigger-page-url.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/images/add-question.webp b/apps/docs/app/best-practices/contact-form/images/add-question.webp
deleted file mode 100644
index 2e5fd8b6a1..0000000000
Binary files a/apps/docs/app/best-practices/contact-form/images/add-question.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/images/email-field.webp b/apps/docs/app/best-practices/contact-form/images/email-field.webp
deleted file mode 100644
index 9ccd33683e..0000000000
Binary files a/apps/docs/app/best-practices/contact-form/images/email-field.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/images/embed.webp b/apps/docs/app/best-practices/contact-form/images/embed.webp
deleted file mode 100644
index 1be2dae3e1..0000000000
Binary files a/apps/docs/app/best-practices/contact-form/images/embed.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/images/message-field.webp b/apps/docs/app/best-practices/contact-form/images/message-field.webp
deleted file mode 100644
index a96d778c4b..0000000000
Binary files a/apps/docs/app/best-practices/contact-form/images/message-field.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/images/name-field.webp b/apps/docs/app/best-practices/contact-form/images/name-field.webp
deleted file mode 100644
index ce60346972..0000000000
Binary files a/apps/docs/app/best-practices/contact-form/images/name-field.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/images/query-form.webp b/apps/docs/app/best-practices/contact-form/images/query-form.webp
deleted file mode 100644
index 206e6fe5f9..0000000000
Binary files a/apps/docs/app/best-practices/contact-form/images/query-form.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/images/single-select-questionare.webp b/apps/docs/app/best-practices/contact-form/images/single-select-questionare.webp
deleted file mode 100644
index f273729ab9..0000000000
Binary files a/apps/docs/app/best-practices/contact-form/images/single-select-questionare.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/images/welcome1.webp b/apps/docs/app/best-practices/contact-form/images/welcome1.webp
deleted file mode 100644
index 6dee4dbeaf..0000000000
Binary files a/apps/docs/app/best-practices/contact-form/images/welcome1.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/contact-form/page.mdx b/apps/docs/app/best-practices/contact-form/page.mdx
deleted file mode 100644
index d932e0898d..0000000000
--- a/apps/docs/app/best-practices/contact-form/page.mdx
+++ /dev/null
@@ -1,174 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import AddQuestion from "./images/add-question.webp";
-import EmailField from "./images/email-field.webp";
-import EmbedImage from "./images/embed.webp";
-import MessageField from "./images/message-field.webp";
-import NameField from "./images/name-field.webp";
-import QueryImage from "./images/query-form.webp";
-import SingleSelect from "./images/single-select-questionare.webp";
-import ToggleButton from "./images/welcome1.webp";
-
-export const metadata = {
- title: "Creating a Contact Form with Formbricks: A Step-by-Step Guide",
- description:
- "Learn how to easily create a professional contact form using Formbricks, perfect for beginners and experts alike.",
-};
-
-# Creating a Contact Form with Formbricks: A Step-by-Step Guide
-
-Welcome to this comprehensive guide on creating a contact form using Formbricks. Whether you're just starting out or you're a seasoned developer, this tutorial will walk you through every step of building an engaging and effective contact form.
-
-## What We’ll Build
-
-By the end of this tutorial, you'll have created a simple contact form featuring:
-
-1. A welcoming introduction.
-2. Fields for collecting the user's name and email.
-3. A question to find out why they’re contacting you.
-4. A message field for users to share their queries.
-
-### Setting Up Your Form
-
-First, let's lay the groundwork for your form:
-
-1. Head to the Surveys page and click on **New Survey**.
-2. Select **Start from Scratch** to create a new form.
-3. In the form editor, click the three dots next to a question, then select **Change Question Type** and choose **Statement (Call to Action)**.
-
-
-
-4. Add a welcoming statement to greet your users and explain the form's purpose.
-5. Personalize the greeting to make it inviting and encourage engagement.
-
-A warm welcome sets the tone for your form. Make it friendly to encourage users to participate.
-
-### Adding the Name Field
-
-Next, let's capture the user's name:
-
-1. Click **Add Question**.
-
-2. Enter the prompts for the name field.
-3. Turn off the **Long Answer** option at the bottom right.
-4. Adjust any **settings**, such as making the field required.
-
-
-
-### Adding the Email Field
-
-Now, let’s add a field to collect the user's email address:
-
-1. Click **Add Question** again.
-2. Select Email as the input type.
-3. Enter a prompt for the email field.
-
-
-
-### Adding a Reason for Contact
-
-Let’s now understand why the user is contacting you:
-
-1. Click **Add Question** once again.
-2. Select **Change Question** Type and choose **Single Select**.
-3. Add the question "Why are you contacting us today?"
-
-
-
-Predefined options help categorize inquiries, making it easier for you to respond appropriately.
-
-4. Add options like "General Inquiry," "Support," and "Feedback."
-
-
-
-### Adding a Message Field
-
-Finally, let’s provide a space for the user’s message:
-
-1. Click **Add Question** for the last time.
-2. Add the question: "Your Message."
-3. Set the placeholder text to something like "Please write your message here."
-
-
-
-4. Consider setting a minimum character count to ensure detailed messages.
-
-### Finalizing Your Form
-
-Once your form is complete, follow these final steps:
-
-1. Review and rearrange the questions if necessary.
-2. Test the form by filling it out as a user.
-3. Customize the **Thank You** message for submissions.
-4. Publish the form to get a shareable link.
-5. Enable submission notifications:
- - Go to your Formbricks account settings.
- - Verify your email address.
- - Ensure that **Survey** notifications are enabled.
-
-### Integrating the Contact Form into Your Website
-
-After publishing the form, follow these steps to integrate it into your site:
-
-1. **Copy the Shareable Link**
-
- - Find your form in the Formbricks dashboard, and click Share.
- - Select Embed in a Web Page.
-
-
-
-2. **Embed the Code**
- - Copy the provided code and paste it into your website where you want the form to appear.
-
-
- Note: There is an options toggle button called "Embed Mode." When enabled, it updates the `src` to `"?embed=true"` and displays your survey in a minimalist design, removing padding and background for a cleaner look.
-
-
-3. **Test the Integration**
- - Check if the form displays correctly on your site.
- - Submit a test entry to ensure everything works and notifications are received.
-
-## Conclusion
-
-Congratulations! You’ve successfully created and integrated a professional contact form using Formbricks. This form will help you collect valuable information from your visitors in an efficient, user-friendly way.
-
-A great contact form strikes the balance between collecting necessary details and being simple enough to encourage submissions. **You’ve achieved just that!**
diff --git a/apps/docs/app/best-practices/docs-feedback/add-action.webp b/apps/docs/app/best-practices/docs-feedback/add-action.webp
deleted file mode 100644
index 04ccbf56ac..0000000000
Binary files a/apps/docs/app/best-practices/docs-feedback/add-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/docs-feedback/change-id.webp b/apps/docs/app/best-practices/docs-feedback/change-id.webp
deleted file mode 100644
index 92b914ce15..0000000000
Binary files a/apps/docs/app/best-practices/docs-feedback/change-id.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/docs-feedback/copy-ids.webp b/apps/docs/app/best-practices/docs-feedback/copy-ids.webp
deleted file mode 100644
index 6a3ac7b7e4..0000000000
Binary files a/apps/docs/app/best-practices/docs-feedback/copy-ids.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/docs-feedback/docs-navi.webp b/apps/docs/app/best-practices/docs-feedback/docs-navi.webp
deleted file mode 100644
index 527244613b..0000000000
Binary files a/apps/docs/app/best-practices/docs-feedback/docs-navi.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/docs-feedback/docs-template.webp b/apps/docs/app/best-practices/docs-feedback/docs-template.webp
deleted file mode 100644
index 0cc8fab9d3..0000000000
Binary files a/apps/docs/app/best-practices/docs-feedback/docs-template.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/docs-feedback/page.mdx b/apps/docs/app/best-practices/docs-feedback/page.mdx
deleted file mode 100644
index 18bace87c1..0000000000
--- a/apps/docs/app/best-practices/docs-feedback/page.mdx
+++ /dev/null
@@ -1,439 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AddAction from "./add-action.webp";
-import ChangeId from "./change-id.webp";
-import CopyIds from "./copy-ids.webp";
-import DocsNavi from "./docs-navi.webp";
-import DocsTemplate from "./docs-template.webp";
-import SelectAction from "./select-action.webp";
-import SurveyTrigger from "./survey-trigger.webp";
-import SwitchToDev from "./switch-to-dev.webp";
-
-export const metadata = {
- title:
- "Integrate Docs Feedback in Your Website: A Step-by-Step Guide on getting feedback on your Documentation with Formbricks",
- description:
- "Learn the step-by-step process to effectively measure the clarity of your documentation using Formbricks Cloud. Dive into best practices, setting up cloud environments, integrating feedback widgets on your frontend, and connecting to the Formbricks API for a seamless user experience.",
-};
-
-#### Best Practices
-
-# Docs Feedback
-
-Docs Feedback allows you to measure how clear your documentation is.
-
-## Purpose
-
-Unlike yourself, your users don't spend 5-7 days per week thinking about your product. To fight the "Curse of Knowledge" you have to measure how clear your docs are.
-
-## Installation
-
-To get this running, you'll need a bit of time. Here are the steps we're going through:
-
-1. Set up Formbricks Cloud
-2. Build the frontend
-3. Connect to API
-4. Test
-
-## 1. Setting up Formbricks Cloud
-
-1. To get started, create an account for the [Formbricks Cloud](https://app.formbricks.com/auth/signup).
-
-2. In the Menu (top right) you see that you can toggle switch between a “Development” and a “Production” environment. These are two separate environments so your test data doesn’t mess up the insights from prod. Switch to “Development”:
-
-
-
-3. Then, create a survey using the template “Docs Feedback”:
-
-
-
-4. Change the Internal Question ID of the first question to **“isHelpful”** to make your life easier 😉
-
-
-
-5. In the same way, you can change the Internal Question ID of the _Please elaborate_ question to **“additionalFeedback”** and the one of the _Page URL_ question to **“pageUrl”**.
-
-
- Answers need to be identical If you want different answers than “Yes 👍” and “No 👎” you need to update the choices accordingly. They have to be identical to the frontend we're building in the next step.
-
-
-6. Click on “Continue to Settings or select the audience tab manually. Scroll down to “Survey Trigger” and create a new Action:
-
-
-
-7. Our goal is to create an event that never fires. This is a bit nonsensical because it is a workaround. Stick with me 😃 Fill the action out like on the screenshot:
-
-
-
-8. Select the Non-Event in the dropdown. Now you see that the “Publish survey” button is active. Publish your survey 🤝
-
-
-
-**You’re all setup in Formbricks Cloud for now 👍**
-
-## 2. Build the frontend
-
-
- Your frontend might work differently Your frontend likely looks and works differently. This is an example specific to our tech stack. We want to illustrate what you should consider building yours 😊
-
-
-Before we start, lets talk about the widget. It works like this:
-
-- Once the user selects yes/no, a partial response is sent to the Formbricks API. It includes the feedback and the current page url.
-- Then the user is presented with an additional open text field to further explain their choice. Once it's submitted, the previous response is updated with the additional feedback.
-
-This allows us to capture and analyze partial feedback where the user is not willing to provide additional information.
-
-**Let's do this 👇**
-
-1. Open the code editor where you handle your docs page.
-
-2. Likely, you have a template file or similar which renders the navigation at the bottom of the page:
-
-
-
-Locate that file. We are using the [Tailwind Template “Syntax”](https://tailwindui.com/templates/syntax) for our docs.
-
-3. Write the frontend code for the widget. Here is the full component (we break it down right below):
-
-
- );
-};
-```
-
-
-
-**Let’s break it down!**
-
-Setting the local states and getting the current URL:
-
-
-
-
-```tsx
-const router = useRouter(); // to get the URL of the current docs page
-const [isOpen, setIsOpen] = useState(false); // to close Popover after
-const [sharedFeedback, setSharedFeedback] = useState(false); // to display Thank You message
-const [responseId, setResponseId] = useState(null); // to store responseID (will explain more)
-const [freeText, setFreeText] = useState(""); // to locally store the additional info provided by user
-```
-
-
-
-Disabling feedback if config environment variables are not set properly:
-
- {!sharedFeedback ? ( // displays Feedback buttons or Thank You message
-
- Was this page helpful?
-
-
- {["Yes 👍", " No 👎"].map((option) => ( // Popup Trigger is a button as well. This is a workaround to open the same form but send a different response to the API
- {
- const id = await handleFeedbackSubmit(option, router.asPath); // handleFeedbackSubmit sends the Yes / No choice as well as the current URL to Formbricks and returns the responseId
- setResponseId(id); // add responseId to local state so we can use it if user decides to add more feedback in free text field
- }}>
- {option} // "Yes 👍" or "No 👎" - they have to be identical with the choices in the survey on app.formbricks.com for it to work (!)
-
- ))}
-
-
-
-
-
-
- ) : (
-
Thanks a lot, boss! 🤝
// Thank You message
- )}
-
- );
-}
-```
-
-
-
-## 3. Connecting to the Formbricks API
-
-The last step is to hook up your sparkling new frontend to the Formbricks API. To do so, we followed the “[Create Response](/api/client/responses#create-a-response)” and “[Update Response](/api/client/responses#update-a-response)” pages in our docs.
-
-Here is the code for the `handleFeedbackSubmit` function with comments:
-
-
-
-
-```tsx
-export const handleFeedbackSubmit = async (YesNo, pageUrl) => {
- const response_data = {
- data: {
- isHelpful: YesNo, // the "Yes 👍" or "No 👎" response. Remember: They have to be identical with the choices in the survey on app.formbricks.com for it to work.
- pageUrl: pageUrl, // So you know which page the user gives feedback about.
- },
- };
-
- const payload = {
- response: response_data,
- surveyId: process.env.NEXT_PUBLIC_FORMBRICKS_COM_DOCS_FEEDBACK_SURVEY_ID, // For testing, replace this with the survey ID of your survey (more info below)
- };
-
- try {
- const res = await fetch(
- `${process.env.NEXT_PUBLIC_FORMBRICKS_COM_API_HOST}/api/v1/client/environments/${process.env.NEXT_PUBLIC_FORMBRICKS_COM_ENVIRONMENT_ID}/responses`, // For testing, replace this with the API host and environemnt ID of your Development environment on app.formbricks.com
- };
- {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify(payload),
- }
- );
-
- if (res.ok) {
- const responseJson = await res.json();
- return responseJson.id; // Returns the response ID
- } else {
- console.error("Error submitting form");
- }
- } catch (error) {
- console.error("Error submitting form:", error);
- }
-};
-```
-
-
-
-And this is the `updateFeedback` function with comments:
-
-
-
-```tsx
-export const updateFeedback = async (freeText, responseId) => {
- if (!responseId) {
- console.error("No response ID available"); // If there is not response ID, no response can be updated.
- return;
- }
-
- const payload = {
- response: {
- data: {
- additionalInfo: freeText,
- },
- finished: true, // Lets Formbricks calculate Completion Rate
- },
- };
-
- try {
- const res = await fetch(
- `${process.env.NEXT_PUBLIC_FORMBRICKS_COM_API_HOST}/api/v1/client/environments/${process.env.NEXT_PUBLIC_FORMBRICKS_COM_ENVIRONMENT_ID}/responses/${responseId}`,
- {
- method: "PUT",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify(payload),
- }
- );
-
- if (!res.ok) {
- console.error("Error updating response");
- }
- } catch (error) {
- console.error("Error updating response:", error);
- }
-};
-```
-
-
-
-That’s almost it! 🤸
-
-## 4. Setting it up for testing
-
-Before you roll it out in production, you want to test it. To do so, you need two things:
-
-1. Environment ID (1) of the development environment on app.formbricks.com
-2. Survey ID (2) of your test survey
-
-When you are on the survey detail page, you’ll find both of them in the URL:
-
-
-
-Now, you have to replace the IDs and the API host accordingly in your `handleFeedbackSubmit`:
-
-
-
-
-```tsx
- const payload = {
- response: response_data,
- surveyId: clgwfv4a7002el50ihyuss38x, // This is an example, replace with yours
- };
-
- try {
- const res = await fetch(
- // Note that we also updated the API host to 'https://app.formbricks.com/'
- `https:app.formbricks.com/api/v1/client/environments/clgwcwp4z000lpf0hur7uxbuv/responses`,
- };
-```
-
-
-
-And lastly, in the `updateFeedback` function
-
-
-
-```tsx
- try {
- const res = await fetch(
- // Note that we also updated the API host to 'https://app.formbricks.com/'
- `https:app.formbricks.com/api/v1/client/environments/clgwcwp4z000lpf0hur7uxbuv/responses/${responseId}`, // Note that we also updated the API host to 'https://app.formbricks.com/'
-}
-```
-
-
-
-### You’re good to go! 🎉
-
-Something doesn’t work? Check your browser console for the error.
-
-**Can’t figure it out?**: **[Get help in Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/best-practices/docs-feedback/select-action.webp b/apps/docs/app/best-practices/docs-feedback/select-action.webp
deleted file mode 100644
index 74babbaf43..0000000000
Binary files a/apps/docs/app/best-practices/docs-feedback/select-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/docs-feedback/survey-trigger.webp b/apps/docs/app/best-practices/docs-feedback/survey-trigger.webp
deleted file mode 100644
index 0fb2129e91..0000000000
Binary files a/apps/docs/app/best-practices/docs-feedback/survey-trigger.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/docs-feedback/switch-to-dev.webp b/apps/docs/app/best-practices/docs-feedback/switch-to-dev.webp
deleted file mode 100644
index 1fcb17b72a..0000000000
Binary files a/apps/docs/app/best-practices/docs-feedback/switch-to-dev.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feature-chaser/action-css.webp b/apps/docs/app/best-practices/feature-chaser/action-css.webp
deleted file mode 100644
index 576e22a234..0000000000
Binary files a/apps/docs/app/best-practices/feature-chaser/action-css.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feature-chaser/action-innertext.webp b/apps/docs/app/best-practices/feature-chaser/action-innertext.webp
deleted file mode 100644
index 374dbdaada..0000000000
Binary files a/apps/docs/app/best-practices/feature-chaser/action-innertext.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feature-chaser/change-text.webp b/apps/docs/app/best-practices/feature-chaser/change-text.webp
deleted file mode 100644
index 65eb73d10a..0000000000
Binary files a/apps/docs/app/best-practices/feature-chaser/change-text.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feature-chaser/create-survey.webp b/apps/docs/app/best-practices/feature-chaser/create-survey.webp
deleted file mode 100644
index 50dc09c357..0000000000
Binary files a/apps/docs/app/best-practices/feature-chaser/create-survey.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feature-chaser/page.mdx b/apps/docs/app/best-practices/feature-chaser/page.mdx
deleted file mode 100644
index 3b33d14607..0000000000
--- a/apps/docs/app/best-practices/feature-chaser/page.mdx
+++ /dev/null
@@ -1,128 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import ActionCSS from "./action-css.webp";
-import ActionText from "./action-innertext.webp";
-import ChangeText from "./change-text.webp";
-import CreateSurvey from "./create-survey.webp";
-import Publish from "./publish.webp";
-import RecontactOptions from "./recontact-options.webp";
-import SelectAction from "./select-action.webp";
-
-export const metadata = {
- title: "Setting Up Feature Chaser Surveys with Formbricks: A Comprehensive Guide",
- description:
- "Learn how to harness the power of Formbricks to gather targeted user feedback on specific features. Dive deep into creating, triggering, and publishing the Feature Chaser survey to enhance your product with actionable insights for specific users.",
-};
-
-#### Best Practices
-
-# Feature Chaser
-
-Following up on specific features only makes sense with very targeted surveys. Formbricks is built for that.
-
-## Purpose
-
-Product analytics never tell you why a feature is used - and why not. Following up on specific features with highly relevant questions is a great way to gather feedback and improve your product.
-
-## Formbricks Approach
-
-- Trigger survey at exactly the right point in the user journey
-- Never ask twice, keep your data clean
-- Prevent survey fatigue with global waiting period
-
-## Overview
-
-To run the Feature Chaser survey in your app you want to proceed as follows:
-
-1. Create new Feature Chaser survey at [app.formbricks.com](https://app.formbricks.com/)
-2. Setup a user action to display survey at the right point in time
-
-
- ## Formbricks Widget running? We assume that you have already installed the Formbricks Widget in your web app. It’s required to display messages and surveys in your app. If not, please follow the [Quick Start Guide (takes 15mins max.)](/app-surveys/quickstart)
-
-
-### 1. Create new Feature Chaser
-
-If you don't have an account yet, create one at [app.formbricks.com](https://app.formbricks.com/auth/signup)
-
-Click on "Create Survey" and choose the template “Feature Chaser”:
-
-
-
-### 2. Update questions
-
-The questions you want to ask are dependent on your feature and can be very specific. In the template, we suggest a high-level check on how easy it was for the user to achieve their goal. We also add an opportunity to provide context:
-
-
-
-Save, and move over to where the magic happens: The “Audience” tab.
-
-### 3. Set up a trigger for the Feature Chaser survey:
-
-Before setting the right trigger, you need to identify a user action in your app which signals, that they have just used the feature you want to understand better. In most cases, it is clicking a specific button in your product.
-
-You can create [Code Actions](/app-surveys/actions#setting-up-code-actions) and [No Code Actions](/app-surveys/actions#setting-up-no-code-actions) to follow users through your app. In this example, we will create a No Code Action.
-
-There are two ways to track a button:
-
-1. **Trigger by Inner Text:** You might have a button with a unique text at the end of your feature e.g. "Export Report". You can setup a user Action with the according `Inner Text` to trigger the survey, like so:
-
-
-
-2. **Trigger by CSS Selector:** In case you have more than one button saying “Export Report” in your app and only want to display the survey when one of them is clicked, you want to be more specific. The best way to do that is to give this button the HTML `id=“export-report-featurename”` and set your user action up like so:
-
-
-
-Please follow our [Actions manual](/actions/why) for an in-depth description of how Actions work.
-
-### 4. Select Action in the “When to ask” card
-
-
-
-### 5. Last step: Set Recontact Options correctly
-
-Lastly, scroll down to “Recontact Options”. Here you have full freedom to decide who you want to ask. Generally, you only want to ask every user once and prevent survey fatigue. It's up to you to decide if you want to ask again, when the user did not yet reply:
-
-
-
-### 7. Congrats! You’re ready to publish your survey 💃
-
-
-
-
- ## Formbricks Widget running? You need to have the Formbricks Widget installed to display the Feature Chaser in your app. Please follow [this tutorial (Step 4 onwards)](/app-surveys/quickstart) to install the widget.
-
-
-###
-
-# Get those insights! 🎉
diff --git a/apps/docs/app/best-practices/feature-chaser/publish.webp b/apps/docs/app/best-practices/feature-chaser/publish.webp
deleted file mode 100644
index 8f6e4af4df..0000000000
Binary files a/apps/docs/app/best-practices/feature-chaser/publish.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feature-chaser/recontact-options.webp b/apps/docs/app/best-practices/feature-chaser/recontact-options.webp
deleted file mode 100644
index c57c97419c..0000000000
Binary files a/apps/docs/app/best-practices/feature-chaser/recontact-options.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feature-chaser/select-action.webp b/apps/docs/app/best-practices/feature-chaser/select-action.webp
deleted file mode 100644
index e04a636ff6..0000000000
Binary files a/apps/docs/app/best-practices/feature-chaser/select-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feedback-box/action-css.webp b/apps/docs/app/best-practices/feedback-box/action-css.webp
deleted file mode 100644
index a3ca09f44f..0000000000
Binary files a/apps/docs/app/best-practices/feedback-box/action-css.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feedback-box/action-innertext.webp b/apps/docs/app/best-practices/feedback-box/action-innertext.webp
deleted file mode 100644
index f425951656..0000000000
Binary files a/apps/docs/app/best-practices/feedback-box/action-innertext.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feedback-box/add-action.webp b/apps/docs/app/best-practices/feedback-box/add-action.webp
deleted file mode 100644
index 94d2172b26..0000000000
Binary files a/apps/docs/app/best-practices/feedback-box/add-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feedback-box/change-text-content.webp b/apps/docs/app/best-practices/feedback-box/change-text-content.webp
deleted file mode 100644
index acd382b68f..0000000000
Binary files a/apps/docs/app/best-practices/feedback-box/change-text-content.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feedback-box/create-feedback-box-by-template.webp b/apps/docs/app/best-practices/feedback-box/create-feedback-box-by-template.webp
deleted file mode 100644
index afc81da214..0000000000
Binary files a/apps/docs/app/best-practices/feedback-box/create-feedback-box-by-template.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feedback-box/page.mdx b/apps/docs/app/best-practices/feedback-box/page.mdx
deleted file mode 100644
index 6b71242e23..0000000000
--- a/apps/docs/app/best-practices/feedback-box/page.mdx
+++ /dev/null
@@ -1,118 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import Link from "next/link";
-
-import ActionCSS from "./action-css.webp";
-import ActionText from "./action-innertext.webp";
-import AddAction from "./add-action.webp";
-import ChangeTextContent from "./change-text-content.webp";
-import CreateFeedbackBox from "./create-feedback-box-by-template.webp";
-import PublishSurvey from "./publish-survey.webp";
-import SelectAction from "./select-action.webp";
-import RecontactOptions from "./set-recontact-options.webp";
-
-export const metadata = {
- title: "Implementing the Feedback Box with Formbricks: A Step-by-Step Tutorial",
- description:
- "Unlock user insights effortlessly! Discover how to set up the Feedback Box in your app using Formbricks, allowing your users to provide real-time feedback. Follow our comprehensive guide to enhance user experience and respond rapidly to feedback",
-};
-
-#### Best Practices
-
-# Feedback Box
-
-The Feedback Box gives your users a direct channel to share their feedback and feel heard.
-
-## Purpose
-
-A low friction way to gather feedback helps catching even the smallest points of frustration in user experiences. Use automations to react rapidly and make users feel heard.
-
-## Formbricks Approach
-
-- Make it easy: 2 clicks to share feedback
-- Pipe insights where team can see them and react quickly
-
-## Installation
-
-To add the Feedback Box to your app, you need to perform these steps:
-
-1. Create new Feedback Box at app.formbricks.com
-2. Add user action to trigger Feedback Box
-3. Update recontact settings to display correctly
-
-### 1. Create new Feedback Box
-
-If you don't have an account yet, create one at [app.formbricks.com](https://app.formbricks.com/auth/signup)
-
-Then, create a new survey and look for the "Feedback Box" template:
-
-
-
-### 2. Update question content
-
-Change the questions and answer options according to your preference:
-
-
-
-### 3. Create user action to trigger Feedback Box:
-
-Go to the “Audience” tab, find the “When to send” card and choose “Add Action”. We will now use our super cool User Action Tracker:
-
-
-
-We have two options to track the Feedback Button in your application: innerText and CSS-Selector:
-
-1. **Inner Text:** This means that whenever a user clicks any HTML item in your app which has an `Inner Text` of `Feedback` the Feedback Box will be displayed.
-
-
-
-2. **CSS Selector:** This means that when an element with a specific CSS-Selector like `#feedback-button` is clicked, your Feedback Box is triggered.
-
-
-### 4. Select action in the “When to ask” card
-
-
-
-### 5. Set Recontact Options correctly
-
-Scroll down to “Recontact Options”. Here you have to choose the right settings so that the Feedback Box pops up every time the user action is performed. (Our default is that every user sees every survey only once):
-
-
-
-### 6. You’re ready publish your survey!
-
-
-
-## Setting up the Widget
-
-
- ## Formbricks Widget running? You need to have the Formbricks Widget installed to display the Feedback Box in your app. Please follow [this tutorial (Step 4 onwards)](/app-surveys/quickstart) to install the widget.
-
-
-###
-
-# That’s it! 🎉
diff --git a/apps/docs/app/best-practices/feedback-box/publish-survey.webp b/apps/docs/app/best-practices/feedback-box/publish-survey.webp
deleted file mode 100644
index 43f12de8db..0000000000
Binary files a/apps/docs/app/best-practices/feedback-box/publish-survey.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feedback-box/select-action.webp b/apps/docs/app/best-practices/feedback-box/select-action.webp
deleted file mode 100644
index 918979d664..0000000000
Binary files a/apps/docs/app/best-practices/feedback-box/select-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/feedback-box/set-recontact-options.webp b/apps/docs/app/best-practices/feedback-box/set-recontact-options.webp
deleted file mode 100644
index 2127b80254..0000000000
Binary files a/apps/docs/app/best-practices/feedback-box/set-recontact-options.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-email-content/choose-survey-type.webp b/apps/docs/app/best-practices/improve-email-content/choose-survey-type.webp
deleted file mode 100644
index a1a76256eb..0000000000
Binary files a/apps/docs/app/best-practices/improve-email-content/choose-survey-type.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-email-content/embed-survey-code-in-your-email.webp b/apps/docs/app/best-practices/improve-email-content/embed-survey-code-in-your-email.webp
deleted file mode 100644
index 32fe64525c..0000000000
Binary files a/apps/docs/app/best-practices/improve-email-content/embed-survey-code-in-your-email.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-email-content/embed-survey-prompt.webp b/apps/docs/app/best-practices/improve-email-content/embed-survey-prompt.webp
deleted file mode 100644
index b00b0c8f92..0000000000
Binary files a/apps/docs/app/best-practices/improve-email-content/embed-survey-prompt.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-email-content/improve-newsletter-content-editor-formbricks.webp b/apps/docs/app/best-practices/improve-email-content/improve-newsletter-content-editor-formbricks.webp
deleted file mode 100644
index b51669114c..0000000000
Binary files a/apps/docs/app/best-practices/improve-email-content/improve-newsletter-content-editor-formbricks.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-email-content/improve-newsletter-content-survey-location.webp b/apps/docs/app/best-practices/improve-email-content/improve-newsletter-content-survey-location.webp
deleted file mode 100644
index f8666dc3ae..0000000000
Binary files a/apps/docs/app/best-practices/improve-email-content/improve-newsletter-content-survey-location.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-email-content/page.mdx b/apps/docs/app/best-practices/improve-email-content/page.mdx
deleted file mode 100644
index 3a63d68ebe..0000000000
--- a/apps/docs/app/best-practices/improve-email-content/page.mdx
+++ /dev/null
@@ -1,108 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import NewsletterSurveyType from "./choose-survey-type.webp";
-import NewsletterSurveyEmbedCode from "./embed-survey-code-in-your-email.webp";
-import NewsletterSurveyEmbedPrompt from "./embed-survey-prompt.webp";
-import NewsletterSurveyEditor from "./improve-newsletter-content-editor-formbricks.webp";
-import NewsletterSurvey from "./improve-newsletter-content-survey-location.webp";
-
-export const metadata = {
- title: "Measure email content quality with Formbricks",
- description:
- "Measuring the content quality of both transactional and marketing email is a key element for improving customer communication.",
-};
-
-#### Best Practices
-
-# Improve Email Content
-
-Email remains the predominant way to communicate with your customers. Measure the effectiveness to improve your offering.
-
-## Purpose
-
-Measuring the content quality of both transactional and marketing email is a key element for improving customer communication.
-
-## Formbricks Approach
-
-- Embed the survey into your email so it’s part of the newsletter.
-- Use link prefilling to store the answer users clicked on in the email.
-- Dynamic user identification to append reader's email for personalized profiles and follow ups.
-
-## Installation
-
-To embed the newsletter survey into your email, follow these steps:
-
-1. Create new 'Improve Newsletter Content' survey at [app.formbricks.com](https://app.formbricks.com/)
-2. Select how you where you want to display the survey.
-3. Copy the embed code anywhere you want in your newsletter.
-
-### 1. Create new 'Improve Newsletter Content' Survey
-
-If you don't have an account yet, create one at [app.formbricks.com](https://app.formbricks.com/auth/signup)
-
-Then, create a new survey and look for the "Improve Newsletter Content" template:
-
-
-
-### 2. Customize Survey questions
-
-Customize survey questions, emojis or stars however you like:
-
-
-
-### 3. Configure Survey Settings
-
-When you are done customizing your survey questions, navigate to the Settings tab and choose the type of survey you want. You need to choose Link Survey:
-
-
-
-### 4. Choose how you want to embed your survey
-
-After publishing your survey, a modal that prompts you to embed your survey will pop up.
-
-
-
-Select the Embed Survey card and you will be directed to another modal, where the first embed option displayed will be to embed the survey in an email.
-
-### 5. Copy code to embed the survey in your newsletter
-
-Click the button with the “View Embed Code” text at the top right corner of the modal and simply paste the HTML code for your survey anywhere you want it in your newsletter. You can see the preview in the below image:
-
-
-
-And you're done! Send a test email to yourself and try it out 🤓
-
-## Learn about data prefilling
-
-
- ## How does data prefilling work? Learn about how link prefilling and user identification maximize your insights in [this detailed guide](/blog/how-smart-writers-use-formbricks-open-source-tool-to-measure-the-quality-of-their-newsletter-content).
-
-
-###
-
-# That’s it! 🎉
diff --git a/apps/docs/app/best-practices/improve-trial-cr/action-innertext.webp b/apps/docs/app/best-practices/improve-trial-cr/action-innertext.webp
deleted file mode 100644
index 168f2988c6..0000000000
Binary files a/apps/docs/app/best-practices/improve-trial-cr/action-innertext.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-trial-cr/action-pageurl.webp b/apps/docs/app/best-practices/improve-trial-cr/action-pageurl.webp
deleted file mode 100644
index 542d7c1388..0000000000
Binary files a/apps/docs/app/best-practices/improve-trial-cr/action-pageurl.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-trial-cr/change-text.webp b/apps/docs/app/best-practices/improve-trial-cr/change-text.webp
deleted file mode 100644
index 37e716fb59..0000000000
Binary files a/apps/docs/app/best-practices/improve-trial-cr/change-text.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-trial-cr/create-survey.webp b/apps/docs/app/best-practices/improve-trial-cr/create-survey.webp
deleted file mode 100644
index b9cdc4130c..0000000000
Binary files a/apps/docs/app/best-practices/improve-trial-cr/create-survey.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-trial-cr/page.mdx b/apps/docs/app/best-practices/improve-trial-cr/page.mdx
deleted file mode 100644
index b704e500a3..0000000000
--- a/apps/docs/app/best-practices/improve-trial-cr/page.mdx
+++ /dev/null
@@ -1,136 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import ActionText from "./action-innertext.webp";
-import ActionPageurl from "./action-pageurl.webp";
-import ChangeText from "./change-text.webp";
-import CreateSurvey from "./create-survey.webp";
-import Publish from "./publish.webp";
-import RecontactOptions from "./recontact-options.webp";
-import SelectAction from "./select-action.webp";
-
-export const metadata = {
- title: "Boost Your Trial Conversion Rates with Formbricks: Comprehensive Guide",
- description:
- "Unlock the secret to converting more trial users into paying customers using Formbricks. Understand insights behind trial cancellations and tailor your offering to fit user needs. Dive into our step-by-step tutorial and improve your conversion strategy today",
-};
-
-#### Best Practices
-
-# Improve Trial Conversion
-
-When a user doesn't convert, you want to know why. A micro-survey displayed at exactly the right time gives you a window into understanding the most relevant question: To pay or not to pay?
-
-## Purpose
-
-The better you understand why free users don’t convert to paid users, the higher your revenue. You can make an informed decision about what to change in your offering to make more people pay for your service.
-
-## Formbricks Approach
-
-- Ask at exactly the right point in time
-- Ask to understand the problem, don’t ask for solutions
-
-## Installation
-
-To display the Trial Conversion Survey in your app you want to proceed as follows:
-
-1. Create new Trial Conversion Survey at [app.formbricks.com](https://app.formbricks.com/)
-2. Set up the user action to display survey at right point in time
-3. Print that 💸
-
-
- ## Formbricks Widget running? We assume that you have already installed the Formbricks Widget in your web app. It’s required to display messages and surveys in your app. If not, please follow the [Quick Start Guide (takes 15mins max.)](/app-surveys/quickstart)
-
-
-### 1. Create new Trial Conversion Survey
-
-If you don't have an account yet, create one at [app.formbricks.com](https://app.formbricks.com/auth/signup)
-
-Click on "Create Survey" and choose the template “Improve Trial Conversion”:
-
-
-
-### 2. Update questions (if you like)
-
-You’re free to update the questions and answer options. However, based on our experience, we suggest giving the provided template a go 😊
-
-
-
-_Want to change the button color? You can do so in the project settings!_
-
-Save, and move over to the “Audience” tab.
-
-### 3. Pre-segment your audience (coming soon)
-
-
- ## Filter by attribute coming soon We're working on pre-segmenting users by attributes. We will update this manual in the next days.
-
-
-Pre-segmentation isn't relevant for this survey because you likely want to solve all people who cancel their trial. You probably have a specific user action e.g. clicking on "Cancel Trial" you can use to only display the survey to users trialing your product.
-
-### 4. Set up a trigger for the Trial Conversion Survey:
-
-How you trigger your survey depends on your product. There are two options:
-
-1. **Trigger by Page view:** Let’s say you have a page under “/trial-cancelled” where you forward users once they cancelled the trial subscription. You can then create an user Action with the type `Page View` and add select `Limit to specific pages` to add url filters, with the following settings:
-
-
-
-Whenever a user visits this page, the survey will be displayed ✅
-
-2. **Trigger by Button Click:** In a different case, you have a “Cancel Trial" button in your app. You can setup a user Action with the according `Inner Text` like so:
-
-
-
-Please have a look at our complete [Actions manual](/app-surveys/actions/) if you have questions.
-
-### 5. Select Action in the “When to ask” card
-
-
-
-### 6. Last step: Set Recontact Options correctly
-
-Lastly, scroll down to “Recontact Options”. Here you have to choose the correct settings to make sure you gather as many insights as possible. You want to make sure that this survey is always displayed, no matter if the user has already seen a survey in the past days:
-
-
-
-### 7. Congrats! You’re ready to publish your survey 💃
-
-
-
-
- ## Formbricks Widget running? You need to have the Formbricks Widget installed to display the Feedback Box in your app. Please follow [this tutorial (Step 4 onwards)](/app-surveys/quickstart) to install the widget.
-
-
-###
-
-# Go get 'em 🎉
diff --git a/apps/docs/app/best-practices/improve-trial-cr/publish.webp b/apps/docs/app/best-practices/improve-trial-cr/publish.webp
deleted file mode 100644
index 2f41668cce..0000000000
Binary files a/apps/docs/app/best-practices/improve-trial-cr/publish.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-trial-cr/recontact-options.webp b/apps/docs/app/best-practices/improve-trial-cr/recontact-options.webp
deleted file mode 100644
index fabdb5830e..0000000000
Binary files a/apps/docs/app/best-practices/improve-trial-cr/recontact-options.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/improve-trial-cr/select-action.webp b/apps/docs/app/best-practices/improve-trial-cr/select-action.webp
deleted file mode 100644
index 4ec617c631..0000000000
Binary files a/apps/docs/app/best-practices/improve-trial-cr/select-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/action-css.webp b/apps/docs/app/best-practices/interview-prompt/action-css.webp
deleted file mode 100644
index 4b562cdedb..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/action-css.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/action-innertext.webp b/apps/docs/app/best-practices/interview-prompt/action-innertext.webp
deleted file mode 100644
index 0a3e6ed9a6..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/action-innertext.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/action-pageurl.webp b/apps/docs/app/best-practices/interview-prompt/action-pageurl.webp
deleted file mode 100644
index 6bdbb0f742..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/action-pageurl.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/add-action.webp b/apps/docs/app/best-practices/interview-prompt/add-action.webp
deleted file mode 100644
index a24c2af56d..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/add-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/change-text.webp b/apps/docs/app/best-practices/interview-prompt/change-text.webp
deleted file mode 100644
index 774edc27a8..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/change-text.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/create-prompt.webp b/apps/docs/app/best-practices/interview-prompt/create-prompt.webp
deleted file mode 100644
index 614b02f1d8..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/create-prompt.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/interview-example.webp b/apps/docs/app/best-practices/interview-prompt/interview-example.webp
deleted file mode 100644
index d53cd7c048..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/interview-example.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/page.mdx b/apps/docs/app/best-practices/interview-prompt/page.mdx
deleted file mode 100644
index e32e3dd36c..0000000000
--- a/apps/docs/app/best-practices/interview-prompt/page.mdx
+++ /dev/null
@@ -1,150 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import ActionCSS from "./action-css.webp";
-import ActionInner from "./action-innertext.webp";
-import ActionPageurl from "./action-pageurl.webp";
-import AddAction from "./add-action.webp";
-import ChangeText from "./change-text.webp";
-import CreatePrompt from "./create-prompt.webp";
-import InterviewExample from "./interview-example.webp";
-import Publish from "./publish-survey.webp";
-import RecontactOptions from "./recontact-options.webp";
-import SelectAction from "./select-action.webp";
-
-export const metadata = {
- title: "Maximize User Interview Participation with App Interview Prompts",
- description:
- "Engage with your power users seamlessly using Formbricks' App Interview Prompt. Ditch traditional email invites and experience way more more respondents. Dive into our comprehensive guide on setting up auto-scheduled interviews today and enhance your user understanding",
-};
-
-#### Best Practices
-
-# App Interview Prompt
-
-The Interview Prompt allows you to pick a specific user segment (e.g. Power Users) and invite them to a user interview. Bye, bye spammy email invites, benefit from up to 6x more respondents.
-
-## Purpose
-
-Product analytics and app surveys are incomplete without user interviews. Set the scheduling on autopilot for a continuous stream of interviews.
-
-## Formbricks Approach
-
-- Pre-segment users with custom attributes. Only invite highly relevant users.
-- In-app prompts (app surveys or website surveys) have a 6x higher conversion rate than email invites.
-- Set scheduling user interviews on auto pilot.
-- Soon: Integrate directly with your [Cal.com](http://Cal.com) account.
-
-## Installation
-
-To display an Interview Prompt in your app you want to proceed as follows:
-
-1. Create new Interview Prompt at [app.formbricks.com](https://app.formbricks.com/)
-2. Adjust content and settings
-3. That’s it! 🎉
-
-
- ## Formbricks Widget running? We assume that you have already installed the Formbricks Widget in your web app. It’s required to display messages and surveys in your app. If not, please follow the [Quick Start Guide (15mins)](/app-surveys/quickstart)
-
-
-### 1. Create new Interview Prompt
-
-If you don't have an account yet, create one at [app.formbricks.com](https://app.formbricks.com/auth/signup)
-
-Click on "Create Survey" and choose the template “Interview Prompt”:
-
-
-
-### 2. Update prompt and CTA
-
-Update the prompt, description and button text to match your products tonality. You can also update the button color in the Project Settings.
-
-
-
-In the button settings you have to make sure it is set to “External URL”. In the URL field, copy your booking link (e.g. https://cal.com/company/user-interview). If you don’t have a booking link yet, head over to [cal.com](http://cal.com) and get one - they have the best free plan out there!
-
-
-
-Save, and move over to the “Audience” tab.
-
-### 3. Pre-segment your audience (coming soon)
-
-
- ## Filter by attribute coming soon. We're working on pre-segmenting users by attributes. We will update this manual in the next few days.
-
-
-Once you clicked over to the “Audience” tab you can change the settings. In the **Who To Send** card, select “Filter audience by attribute”. This allows you to only show the prompt to a specific segment of your user base.
-
-In our case, we want to select users who we have assigned the attribute “Power User”. To learn how to assign attributes to your users, please [follow this guide](/app-surveys/user-identification).
-
-Great, now only the “Power User” segment will see our Interview Prompt. But when will they see it?
-
-### 4. Set up a trigger for the Interview Prompt:
-
-To create the trigger to show your Interview Prompt, go to the “Audience” tab, find the “When to send” card and choose “Add Action”. We will now use our super cool User Action Tracker:
-
-
-
-Generally, we have two types of user actions: Page views and clicks. The Interview Prompt, you’ll likely want to display it on a page visit since you already filter who sees the prompt by attributes.
-
-1. **Page view:** Whenever a user visits a page the survey will be displayed, as long as the other conditions match. Other conditions are pre-segmentation, if this user has seen a survey in the past 2 weeks, etc.
-
-
-
-2. **Click(Inner Text & CSS Selector):** When a user clicks an element (like a button) with a specific text content or CSS selector, the prompt will be displayed as long as the other conditions also match.
-
-
-
-
-
-
-### 5. Select action in the “When to ask” card
-
-
-
-### 6. Set Recontact Options correctly
-
-Scroll down to “Recontact Options”. Here you have to choose the correct settings to strike the right balance between asking for user feedback and preventing survey fatigue. Your settings also depend on the size of your user base or segment. If you e.g. have thousands of “Power Users” you can easily afford to only display the prompt once. If you have a smaller user base you might want to ask twice to get a sufficient amount of bookings:
-
-
-
-### 7. Congrats! You’re ready to publish your survey 💃 🤸
-
-
-
-
- ## Formbricks Widget running? You need to have the Formbricks Widget installed to display the Feedback Box in your app. Please follow [this tutorial (Step 4 onwards)](/app-surveys/quickstart) to install the widget.
-
-
-###
-
-# Learn about them users! 🎉
diff --git a/apps/docs/app/best-practices/interview-prompt/publish-survey.webp b/apps/docs/app/best-practices/interview-prompt/publish-survey.webp
deleted file mode 100644
index 8bec9cf609..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/publish-survey.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/recontact-options.webp b/apps/docs/app/best-practices/interview-prompt/recontact-options.webp
deleted file mode 100644
index c38fb671f4..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/recontact-options.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/interview-prompt/select-action.webp b/apps/docs/app/best-practices/interview-prompt/select-action.webp
deleted file mode 100644
index e04a636ff6..0000000000
Binary files a/apps/docs/app/best-practices/interview-prompt/select-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/pmf-survey/action-css.webp b/apps/docs/app/best-practices/pmf-survey/action-css.webp
deleted file mode 100644
index d5429698fb..0000000000
Binary files a/apps/docs/app/best-practices/pmf-survey/action-css.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/pmf-survey/action-pageurl.webp b/apps/docs/app/best-practices/pmf-survey/action-pageurl.webp
deleted file mode 100644
index ec4f21a81a..0000000000
Binary files a/apps/docs/app/best-practices/pmf-survey/action-pageurl.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/pmf-survey/change-text.webp b/apps/docs/app/best-practices/pmf-survey/change-text.webp
deleted file mode 100644
index 9aaeddef5f..0000000000
Binary files a/apps/docs/app/best-practices/pmf-survey/change-text.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/pmf-survey/create-survey.webp b/apps/docs/app/best-practices/pmf-survey/create-survey.webp
deleted file mode 100644
index d4fed2ebc6..0000000000
Binary files a/apps/docs/app/best-practices/pmf-survey/create-survey.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/pmf-survey/page.mdx b/apps/docs/app/best-practices/pmf-survey/page.mdx
deleted file mode 100644
index bf61a0405e..0000000000
--- a/apps/docs/app/best-practices/pmf-survey/page.mdx
+++ /dev/null
@@ -1,128 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import ActionCSS from "./action-css.webp";
-import ActionPageurl from "./action-pageurl.webp";
-import ChangeText from "./change-text.webp";
-import CreateSurvey from "./create-survey.webp";
-import Publish from "./publish.webp";
-import RecontactOptions from "./recontact-options.webp";
-import SelectAction from "./select-action.webp";
-
-export const metadata = {
- title: "How to Set Up a Product-Market Fit Survey Using Formbricks - Step-by-Step Guide",
- description:
- "Learn to leverage Formbricks to create and implement a Product-Market Fit survey in your web app. Follow our detailed step-by-step guide to measure and understand your PMF effectively. Ensure high data quality, efficient triggers, and actionable insights.",
-};
-
-#### Best Practices
-
-# Product-Market Fit Survey
-
-## Purpose
-
-Measuring and understanding your PMF is essential to build a large, successful business. It helps you understand what users like, what they’re missing and what to build next. This survey is perfectly suited to measure PMF like [Superhuman](https://review.firstround.com/how-superhuman-built-an-engine-to-find-product-market-fit).
-
-## Formbricks Approach
-
-- Pre-segment users to only survey users who have experienced your products value
-- Never ask twice, keep your data clean
-- Run on autopilot: Set up once, keep surveying users continuously
-
-## Overview
-
-To display the Product-Market Fit survey in your app you want to proceed as follows:
-
-1. Create new Product-Market Fit survey at [app.formbricks.com](https://app.formbricks.com/)
-2. Setup pre-segmentation to assure high data quality
-3. Setup the user action to display survey at good point in time
-
-
- ## Formbricks Widget running? We assume that you have already installed the Formbricks Widget in your web app. It’s required to display messages and surveys in your app. If not, please follow the [Quick Start Guide (15mins)](/app-surveys/quickstart)
-
-
-### 1. Create new PMF survey
-
-If you don't have an account yet, create one at [app.formbricks.com](https://app.formbricks.com/auth/signup)
-
-Click on "Create Survey" and choose one of the PMF survey templates. The first one is rather short, the latter builds on the ["Product-Market Fit Engine"](https://review.firstround.com/how-superhuman-built-an-engine-to-find-product-market-fit) developed by Superhuman:
-
-
-
-### 2. Update questions (if you like)
-
-You’re free to update the question and answer options. However, based on our experience, we suggest giving the provided template a go 😊 Here is a very [detailed description](https://coda.io/@rahulvohra/superhuman-product-market-fit-engine) of what to do with the data you’re collecting.
-
-
-
-_Want to change the button color? You can do so in the project settings!_
-
-Save, and move over to where the magic happens: The “Audience” tab.
-
-### 3. Pre-segment your audience
-
-To run this survey properly, you should pre-segment your user base. As touched upon earlier: if you ask every user you’ll get lots of opinions which are often misleading. You only want to gather feedback from people who invested the time to get to know and use your product:
-
-**Filter by attribute**: You can keep the logic to decide if a user has (or has not) experienced value in your application. This makes most sense if you want to use historic usage data to decide if a user qualifies or not. Create your logic and if it applies, send an attribute to Formbricks by e.g. `formbricks.setAttribute("Loyalty", "Experienced Value");` Here is the full manual on how to [set attributes](/app-surveys/user-identification).
-
-### 4. Set up a trigger for the Product-Market Fit survey:
-
-You need a trigger to display the survey but in this case, the filtering does all the work. It’s up to you to decide to display the survey after the user viewed a specific subpage (pageURL) or after clicking an element. Have a look at the [Actions manual](/app-surveys/actions/) if you are not sure how to set them up:
-
-
-
-
-
-
-
-
-### 5. Select Action in the “When to ask” card
-
-
-
-### 6. Last step: Set Recontact Options correctly
-
-Lastly, scroll down to “Recontact Options”. Here you have to choose the correct settings to make sure your data remains of high quality. You want to make sure that this survey is only responded to once per user. It is up to you to decide if you want to display it several times until the user responds:
-
-
-
-### 7. Congrats! You’re ready to publish your survey 💃
-
-
-
-
- ## Formbricks Widget running? You need to have the Formbricks Widget installed to display the Feedback Box in your app. Please follow [this tutorial (Step 4 onwards)](/app-surveys/quickstart) to install the widget.
-
-
-###
-
-# Get those insights!
diff --git a/apps/docs/app/best-practices/pmf-survey/publish.webp b/apps/docs/app/best-practices/pmf-survey/publish.webp
deleted file mode 100644
index f5d3ed77ab..0000000000
Binary files a/apps/docs/app/best-practices/pmf-survey/publish.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/pmf-survey/recontact-options.webp b/apps/docs/app/best-practices/pmf-survey/recontact-options.webp
deleted file mode 100644
index c38fb671f4..0000000000
Binary files a/apps/docs/app/best-practices/pmf-survey/recontact-options.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/pmf-survey/select-action.webp b/apps/docs/app/best-practices/pmf-survey/select-action.webp
deleted file mode 100644
index e04a636ff6..0000000000
Binary files a/apps/docs/app/best-practices/pmf-survey/select-action.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/quiz-time/conditional-logic.webp b/apps/docs/app/best-practices/quiz-time/conditional-logic.webp
deleted file mode 100644
index a773c59b1f..0000000000
Binary files a/apps/docs/app/best-practices/quiz-time/conditional-logic.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/quiz-time/ending-logic.webp b/apps/docs/app/best-practices/quiz-time/ending-logic.webp
deleted file mode 100644
index a7dc105503..0000000000
Binary files a/apps/docs/app/best-practices/quiz-time/ending-logic.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/quiz-time/page.mdx b/apps/docs/app/best-practices/quiz-time/page.mdx
deleted file mode 100644
index aa1cf39163..0000000000
--- a/apps/docs/app/best-practices/quiz-time/page.mdx
+++ /dev/null
@@ -1,125 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import AddLogic from "./conditional-logic.webp";
-import EndingLogic from "./ending-logic.webp";
-import PassFail from "./pass-fail.webp";
-import Quiz from "./quiz.webp";
-import Score from "./score.webp";
-import SingleSelect from "./single-select.webp";
-import WhenThen from "./when-then.webp";
-
-export const metadata = {
- title: "How to Create a Quiz Using Formbricks - Step-by-Step Guide",
- description:
- "Learn to leverage Formbricks to create Quizzes. Follow our detailed step-by-step guide to build quizzes with custom logic and multiple endings.",
-};
-
-# Creating a quiz with Formbricks - Step-by-step Guide
-
-Welcome to this guide on creating engaging quizzes with Formbricks! Quizzes help you capture customer insights, explore user personalities, or simply add fun for your team. With Formbricks, you can personalize quizzes in minutes add scores, customize backgrounds, and more, all without any technical skills!
-
-## What we'll build
-
-By the end of this tutorial, you'll have created a simple trivia Quiz featuring:
-
-1. Score calculations.
-2. Multiple endings depending on the score.
-
-## Setting up the form
-
-First, make sure you have a Formbricks account. If not, you can create one [here](https://app.formbricks.com):
-
-1. Head to the Surveys page and click on **New Survey**.
-2. Select Start from Scratch to create a new form.
-3. Go to the settings and select form type as **Link Survey**
-4. In the form editor, click the three dots next to a question, then select Change Question Type and choose **Single-Select**.
-
-
-
-5. Add a welcoming statement to greet your users and explain the Quiz's purpose.
-6. Personalize the greeting to make it inviting and encourage engagement.
-
-**Note:** While we’re creating a Link Survey here, the process is similar for Web and App surveys.
-
-## Adding the questions
-
-Next, let's create a question for example with multiple options:
-
-What country has the longest coastline in the world?
-A) Canada
-B) Japan
-C) India
-D) Nepal
-
-
-
-## Calculate Score
-
-Now that we have our question ready, let’s add the logic to calculate scores.
-
-1. Scroll down in the editor and click on variables.
-2. Create a new variable named `score` with a default value of 0
-
-
-
-3. Now go back to the question and expand the advanced settings by clicking on `> Show Advanced Settings`.
-4. Under the conditional logic you should see the option to `Add Logic`. Click on that.
-
-
-
-5. Now you should see conditional logic. Customize the logic to match your needs for example:
-
-**When** `question` equals `YOUR_ANSWER_HERE` **Then** `Calculate` `score` `Add +` `01`. So it should look something like this.
-
-
-
-6. Let's duplicate and customize these questions. Click on the duplicate icon at the top of the question.
-7. Now edit the questions, options, and answers in the **conditional logic**
-
-## Creating Multiple Endings Based on Scores
-
-Once you have all the questions and the calculation logic in place, it’s time to customize the endings. Scroll down to the Ending Card section. We will create two cards for this quiz: one for when the user fails the quiz and another for when the user passes.
-
-1. Customize the ending card.
-2. Display the score by typing `@score`. ( You can address all the variables or questions by just typing @ ).
-3. Add logic to the last question. ( this is necessary to redirect the user based on the score ). Kind of like this:
-
-**When** `score` >= `03` **Then** `Jump to` `Pass`. So it should look something like this.
-
-
-
-4. Ensure that the Fail card is positioned above the Pass card. This allows any condition that does not meet the criteria of being greater than or equal to 3 to jump to the Fail card.
-
-
-
-5. That's it! Now you can save and publish the quiz.
-
-# Wrapping Up
-
-Congratulations! You’ve successfully created a Quiz with Formbricks. You can play around with the quiz that we just created [here](https://app.formbricks.com/s/cm2wwt3vu0001ir8o7ys0bezz).
-
-A great quiz can serve as an excellent lead generator, a job fit checker, or just a fun icebreaker for your team. You now have the skills to build that! If you want to read more about building quizzes and how you can create a Job Fit Quiz check this article [here](https://www.harshbhat.me/blog/formbricks-quiz).
diff --git a/apps/docs/app/best-practices/quiz-time/pass-fail.webp b/apps/docs/app/best-practices/quiz-time/pass-fail.webp
deleted file mode 100644
index 979b19e98c..0000000000
Binary files a/apps/docs/app/best-practices/quiz-time/pass-fail.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/quiz-time/quiz.webp b/apps/docs/app/best-practices/quiz-time/quiz.webp
deleted file mode 100644
index 9ef9797e1e..0000000000
Binary files a/apps/docs/app/best-practices/quiz-time/quiz.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/quiz-time/score.webp b/apps/docs/app/best-practices/quiz-time/score.webp
deleted file mode 100644
index 9b77cb2a8b..0000000000
Binary files a/apps/docs/app/best-practices/quiz-time/score.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/quiz-time/single-select.webp b/apps/docs/app/best-practices/quiz-time/single-select.webp
deleted file mode 100644
index 39131bfd62..0000000000
Binary files a/apps/docs/app/best-practices/quiz-time/single-select.webp and /dev/null differ
diff --git a/apps/docs/app/best-practices/quiz-time/when-then.webp b/apps/docs/app/best-practices/quiz-time/when-then.webp
deleted file mode 100644
index 8dad1ab4a7..0000000000
Binary files a/apps/docs/app/best-practices/quiz-time/when-then.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/api-sdk/page.mdx b/apps/docs/app/developer-docs/api-sdk/page.mdx
deleted file mode 100644
index 9675c9136d..0000000000
--- a/apps/docs/app/developer-docs/api-sdk/page.mdx
+++ /dev/null
@@ -1,224 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-export const metadata = {
- title: "Formbricks API SDK",
- description:
- "An overview of all available methods & how to integrate Formbricks API for backend developers in web applications. Learn the key methods, configuration settings, and best practices.",
-};
-
-#### Developer Docs
-
-# SDK: Formbricks API
-
-### Overview
-
-The Formbricks Client API Wrapper is a lightweight package designed to simplify the integration of Formbricks API endpoints into your JavaScript (JS) or TypeScript (TS) projects. With this wrapper, you can easily interact with Formbricks API endpoints without the need for complex setup or manual HTTP requests.
-
-### Install
-
-
-
-
-```js {{ title: 'npm' }}
-npm install @formbricks/api
-```
-
-```js {{ title: 'yarn' }}
-yarn add @formbricks/api
-```
-
-```js {{ title: 'pnpm' }}
-pnpm add @formbricks/api
-```
-
-
-
-
-## Methods
-
-### Initialize Formbricks
-
-Initialize the Formbricks API Client for backend developers to interact with Formbricks API endpoints:
-
-
-
-
-```javascript
-import { FormbricksAPI } from "@formbricks/api";
-
-const api = new FormbricksAPI({
- apiHost: `https://app.formbricks.com`, // If you have self-hosted Formbricks, change this to your self hosted instance's URL
- environmentId: "", // Replace this with your Formbricks environment ID
-});
-```
-
-
-
-
-The API client is now ready to be used across your project. It can be used to interact with the following models:
-
-## Displays
-
-- Create Display
-
-
-
-
-```javascript {{ title: 'Upload Method Call'}}
-await api.client.storage.uploadFile(
- file: File, // required (of interface File of the browser's File API)
- {
- allowedFileTypes: ["file-type-allowed", "for-example", "image/jpeg"],
- surveyId: "",
- }
-);
-```
-
-```javascript {{ title: 'Upload Method Return Type' }}
-Promise
-```
-
-
-
-
----
-
-If you have any questions or need help, feel free to reach out to us in **[Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/developer-docs/contributing/codespaces/images/loading.webp b/apps/docs/app/developer-docs/contributing/codespaces/images/loading.webp
deleted file mode 100644
index 89b3ceef2b..0000000000
Binary files a/apps/docs/app/developer-docs/contributing/codespaces/images/loading.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/contributing/codespaces/images/new.webp b/apps/docs/app/developer-docs/contributing/codespaces/images/new.webp
deleted file mode 100644
index e415ffb87b..0000000000
Binary files a/apps/docs/app/developer-docs/contributing/codespaces/images/new.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/contributing/codespaces/images/ports.webp b/apps/docs/app/developer-docs/contributing/codespaces/images/ports.webp
deleted file mode 100644
index 766a3b396d..0000000000
Binary files a/apps/docs/app/developer-docs/contributing/codespaces/images/ports.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/contributing/codespaces/page.mdx b/apps/docs/app/developer-docs/contributing/codespaces/page.mdx
deleted file mode 100644
index 164db7fc22..0000000000
--- a/apps/docs/app/developer-docs/contributing/codespaces/page.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import GithubCodespaceLoading from "./images/loading.webp";
-import GithubCodespaceNew from "./images/new.webp";
-import GithubCodespacePorts from "./images/ports.webp";
-
-export const metadata = {
- title: "Formbricks Open Source Contribution Guide: How to Enhance yourself and Contribute to Formbricks",
- description:
- "Join the Formbricks community and learn how to effectively contribute. From raising issues and feature requests to creating PRs, discover the best practices and communicate with our responsive team on Github Discussions",
-};
-
-#### Contributing
-
-# Github Codespaces Guide
-
-1. After clicking the one-click setup button, you will be redirected to the Github Codespaces page. Review the configuration and click on the 'Create Codespace' button to create a new Codespace.
-
-
-
-2. This will start loading the Codespace. Keep in mind this might take a few minutes to complete depending on your internet connection and the instance availability.
-
-
-
-3. Once the Codespace is loaded, you will be redirected to the VSCode editor. You can start working on your project in this environment.
-
-4. Monitor the logs in the terminal and once you see the following, you are good to go!
-
-
-
-
-```bash
-@formbricks/web:dev: ▲ Next.js 13.5.6
-@formbricks/web:dev: - Local: http://localhost:3000
-@formbricks/web:dev: - Environments: .env
-@formbricks/web:dev: - Experiments (use at your own risk):
-@formbricks/web:dev: · serverActions
-@formbricks/web:dev:
-@formbricks/web:dev: ✓ Ready in 9.4s
-```
-
-
-
-
-5. Right next to the Terminal, you will see a **Ports** tab, click on it to see the ports and their respective URLs. Now access the Forwarded Address for port 3000 and you should be able to visit your Formbricks App!
-
-
-
-Now make the changes you want to and see them live in action!
diff --git a/apps/docs/app/developer-docs/contributing/get-started/page.mdx b/apps/docs/app/developer-docs/contributing/get-started/page.mdx
deleted file mode 100644
index 594070e69e..0000000000
--- a/apps/docs/app/developer-docs/contributing/get-started/page.mdx
+++ /dev/null
@@ -1,177 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-export const metadata = {
- title: "Formbricks Open Source Contribution Guide: How to Enhance yourself and Contribute to Formbricks",
- description:
- "Join the Formbricks community and learn how to effectively contribute. From raising issues and feature requests to creating PRs, discover the best practices and communicate with our responsive team on Github Discussions",
-};
-
-#### Contributing
-
-# Get started
-
-We are so happy that you are interested in contributing to Formbricks 🤗 There are many ways to contribute to Formbricks like writing issues, fixing bugs, building new features or updating the docs.
-
-- **Issues**: Spotted a bug? Has deployment gone wrong? Do you have user feedback? [Raise an issue](https://github.com/formbricks/formbricks/issues/new/choose) for the fastest response.
-- **Feature requests**: Raise an issue for these and tag it as an Enhancement. We love every idea. Please [open a feature request](https://github.com/formbricks/formbricks/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.yml&title=%5BFEATURE%5D) clearly describing the problem you want to solve.
-- **Creating a PR**: Please fork the repository, make your changes and create a new pull request if you want to make an update. Please talk to us first before starting development of more complex features. Small fixes are always welcome!
-
-## Talk to us first
-
-We highly recommend connecting with us on [Github Discussions](https://github.com/formbricks/formbricks/discussions) before you ship a contribution. This will increase the likelihood of your PR being merged. And it will decrease the likelihood of you wasting your time :)
-
-## Contributor License Agreement (CLA)
-
-To be able to keep working on Formbricks over the coming years, we need to collect a CLA from all relevant contributors.
-
-Once you open a PR, you will get a message from the CLA bot to fill out the form. Please note that we can only get your contribution merged when we have a CLA signed by you.
-
-## Setup Dev Environment
-
-We currently officially support the below methods to set up your development environment for Formbricks:
-
-- [Gitpod](https://gitpod.io)
-- [GitHub Codespaces](https://github.com/features/codespaces)
-- [Local Machine Setup](#local-machine-setup)
-
-Both Gitpod and GitHub Codespaces have a **generous free tier** to explore and develop. For junior developers we suggest using either of these, because you can dive into coding within minutes, not hours.
-
-## Local Machine Setup
-
-
-The below only works for **Mac**, **Linux** & **WSL2** on Windows (not on pure Windows)!
-
-This method is recommended **only for advanced users** & we won't be able to provide official support for this.
-
-
-
-To get the project running locally on your machine you need to have the following development tools installed:
-
-- Node.JS (we recommend v20)
-- [pnpm](https://pnpm.io/)
-- [Docker](https://www.docker.com/) (to run PostgreSQL / MailHog)
-
-1. Clone the project & move into the directory:
-
-
-
-
-```bash
-nvm install && nvm use
-```
-
-
-
-
-3. Install Node.JS packages via pnpm. Don't have pnpm? Get it [here](https://pnpm.io/installation)
-
-
-
-
-```bash
-pnpm install
-```
-
-
-
-
-4. Create a `.env` file based on `.env.example`. It's already preset to work with the local development setup but you can also change values if needed.
-
-
-
-
-```bash
-cp .env.example .env
-```
-
-
-
-
-5. Generate & set some secret values mandatory for the `ENCRYPTION_KEY`, `NEXTAUTH_SECRET` and `CRON_SECRET` in the .env file. You can use the following command to generate the random string of required length:
-
-- For Linux
-
-
-
-
-```bash
-sed -i '' '/^ENCRYPTION_KEY=/s|.*|ENCRYPTION_KEY='$(openssl rand -hex 32)'|' .env
-sed -i '' '/^NEXTAUTH_SECRET=/s|.*|NEXTAUTH_SECRET='$(openssl rand -hex 32)'|' .env
-sed -i '' '/^CRON_SECRET=/s|.*|CRON_SECRET='$(openssl rand -hex 32)'|' .env
-```
-
-
-
-
-6. Make sure you have [`Docker`](https://docs.docker.com/compose/) & [`docker-compose`](https://docs.docker.com/compose/) installed and running on your machine. Then run the following command to start the Formbricks dev setup:
-
-
-
-
-```bash
-pnpm go
-```
-
-
-
- This starts the Formbricks main app (plus all its dependencies) as well as the following services using Docker:
-
-- A `postgres` container for hosting your database,
-- A `mailhog` container that acts as a mock SMTP server and shows received mails in a web UI (forwarded to your host's `localhost:8025`)
-- Demo App at [http://localhost:3002](http://localhost:3002)
-- Landing Page at [http://localhost:3001](http://localhost:3001)
-
-
- **WSL2 users**: If you encounter connection issues with Prisma, ensure your WSL2 instance's PostgreSQL
- service is stopped before running `pnpm go`. Use the command `sudo systemctl stop postgresql` to stop the service.
-
-
-**You can now access the Formbricks app on [http://localhost:3000](http://localhost:3000)**. You will be automatically redirected to the login. To use your local installation of formbricks, create a new account.
-
-{" "}
-
-
- A fresh setup does not have a default account. Please create a new account and proceed accordingly.
-
-
-For viewing the emails sent by the system, you can access mailhog at [http://localhost:8025](http://localhost:8025)
-
-### Build
-
-To build all apps and packages and check for build errors, run the following command:
-
-
-
-
-```bash
-pnpm build
-```
-
-
-
diff --git a/apps/docs/app/developer-docs/contributing/troubleshooting/images/clear-app-data.webp b/apps/docs/app/developer-docs/contributing/troubleshooting/images/clear-app-data.webp
deleted file mode 100644
index 240e97981b..0000000000
Binary files a/apps/docs/app/developer-docs/contributing/troubleshooting/images/clear-app-data.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/contributing/troubleshooting/images/logout.webp b/apps/docs/app/developer-docs/contributing/troubleshooting/images/logout.webp
deleted file mode 100644
index f706ba643a..0000000000
Binary files a/apps/docs/app/developer-docs/contributing/troubleshooting/images/logout.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/contributing/troubleshooting/images/uncaught-promise.webp b/apps/docs/app/developer-docs/contributing/troubleshooting/images/uncaught-promise.webp
deleted file mode 100644
index b698bca34b..0000000000
Binary files a/apps/docs/app/developer-docs/contributing/troubleshooting/images/uncaught-promise.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/contributing/troubleshooting/page.mdx b/apps/docs/app/developer-docs/contributing/troubleshooting/page.mdx
deleted file mode 100644
index d6b7298ed1..0000000000
--- a/apps/docs/app/developer-docs/contributing/troubleshooting/page.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import ClearAppData from "./images/clear-app-data.webp";
-import Logout from "./images/logout.webp";
-import UncaughtPromise from "./images/uncaught-promise.webp";
-
-export const metadata = {
- title: "Formbricks Open Source Contribution Guide: How to Enhance yourself and Contribute to Formbricks",
- description:
- "Join the Formbricks community and learn how to effectively contribute. From raising issues and feature requests to creating PRs, discover the best practices and communicate with our responsive team on Github Discussions",
-};
-
-#### Contributing
-
-# Troubleshooting
-
-Here you'll find help with frequently recurring problems
-
-## "The app doesn't work after doing a prisma migration"
-
-This can happen but fear not, the fix is easy: Delete the application storage of your browser and reload the page. This will force the app to re-fetch the data from the server:
-
-
-
-## "I ran 'pnpm i' but there seems to be an error with the packages"
-
-If nothing helps, run `pnpm clean` and then `pnpm i` again. This solves a lot.
-
-## "I get a full-screen error with cryptic strings"
-
-This usually happens when the Formbricks Widget wasn't correctly or completely built.
-
-
-
-
-```bash
-pnpm build --filter=@formbricks/js
-
-// Run the app again
-pnpm dev
-```
-
-
-
-## My machine struggles with the repository
-
-Since we're working with a monorepo structure, the repository can get quite big. If you're having trouble working with the repository, try the following:
-
-
-
-
-```bash {{ title: 'Formbricks Web-App' }}
-pnpm dev --filter=@formbricks/web...
-```
-
-```bash {{ title: 'Formbricks Docs' }}
-pnpm dev --filter=@formbricks/docs...
-```
-
-```bash {{ title: 'Formbricks Demo App' }}
-pnpm dev --filter=@formbricks/demo...
-```
-
-
-
-However, in our experience it's better to run `pnpm dev` than having two terminals open (one with the Formbricks app and one with the demo).
-
-## Uncaught (in promise) SyntaxError: Unexpected token !DOCTYPE ... is not valid JSON
-
-
-
-This happens when you're using the Demo App and delete the Person within the Formbricks app which the widget is currently connected with. We're fixing it, but you can also just logout your test person and reload the page to get rid of it.
-
-
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/configure-connection.webp b/apps/docs/app/developer-docs/integrations/activepieces/configure-connection.webp
deleted file mode 100644
index cd0daa6e95..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/configure-connection.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/create-connection.webp b/apps/docs/app/developer-docs/integrations/activepieces/create-connection.webp
deleted file mode 100644
index eec50e6364..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/create-connection.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/create-new-flow.webp b/apps/docs/app/developer-docs/integrations/activepieces/create-new-flow.webp
deleted file mode 100644
index ec1efff3da..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/create-new-flow.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/duplicate-survey.webp b/apps/docs/app/developer-docs/integrations/activepieces/duplicate-survey.webp
deleted file mode 100644
index 842612ca8b..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/duplicate-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/match-data.webp b/apps/docs/app/developer-docs/integrations/activepieces/match-data.webp
deleted file mode 100644
index db12224e5c..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/match-data.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/page.mdx b/apps/docs/app/developer-docs/integrations/activepieces/page.mdx
deleted file mode 100644
index 503ad2c749..0000000000
--- a/apps/docs/app/developer-docs/integrations/activepieces/page.mdx
+++ /dev/null
@@ -1,155 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import CreateConnection from "./create-connection.webp";
-import CreateNewFlow from "./create-new-flow.webp";
-import DuplicateSurvey from "./duplicate-survey.webp";
-import ConfigureConnection from "./configure-connection.webp";
-import SearchFormbricks from "./search-formbricks.webp";
-import SelectSurvey from "./select-survey.webp";
-import TestTrigger from "./test-trigger.webp";
-import UpdateQuestionId from "./update-question-id.webp";
-import SuccessResponse from "./success-response.webp";
-import SelectGSSheet from "./select-gs-sheet.webp";
-import SelectGoogleSheet from "./select-google-sheet.webp";
-import MatchData from "./match-data.webp";
-import Result from "./result.webp";
-
-export const metadata = {
- title: "Formbricks Integration with Activepieces: A Step-by-Step Guide",
- description:
- "Learn how to integrate Formbricks with Activepieces. Follow our detailed guide to set up workflows, connect with various apps, and send your survey data to multiple platforms.",
-};
-
-#### Integrations
-
-# Activepieces Setup
-
-Activepieces is a versatile tool to automate workflows between Formbricks and numerous applications. Here's how to set it up.
-
-
- Ensure your survey is finalized before setting up Activepieces. Any changes in the survey will require additional adjustments in the workflow.
-
-
-## Step 1: Setup your survey incl. `questionId` for every question
-
-Set up the `questionId`s of your survey questions before publishing.
-
-
-
-_Update the Question ID field in every question card under Advanced Settings._
-
-
- Already published? Duplicate survey You can only update the questionId before publishing the survey. If already published, simply duplicate it.
-
-
-
-## Step 2: Setup Activepieces
-
-Visit [Activepieces](https://activepieces.com) to start a new Flow.
-
-
-
-Search for `Formbricks` and choose the event to trigger the flow, we will choose `Response Finished` here
-
-
-
-## Step 3: Connect Formbricks with Activepieces
-
-Click on `Create connection`:
-
-
-
-Enter the Formbricks API Host and API Key. API Host is by default set to https://app.formbricks.com but can be modified for self-hosting instances. Learn how to get an API Key from the [API Key tutorial](/additional-features/api#how-to-generate-an-api-key).
-
-
-
-## Step 4: Select Survey
-
-Choose from your created surveys:
-
-
-
-## Step 5: Send a test response
-
-You need a test response for Activepieces setup. Click on Test trigger and submit a test response in the connected Formbricks survey to see the data in Activepieces.
-
-
-
-If the test response is successful, you will see the data in Activepieces.
-
-
-
-## Step 6: Set up Google Sheet
-
-Decide on the desired action for the data. Here, we'll send submissions to a Google Sheet. Add Google sheet step to your flow and configure it as follows:
-Choose "Add a Row" for the action. Authenticate with Google and select the spreadsheet you want to add the data to.
-
-
-
-Specify the fields you want to add to the spreadsheet.
-
-
-
-A new row gets added to the spreadsheet for every response:
-
-
\ No newline at end of file
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/result.webp b/apps/docs/app/developer-docs/integrations/activepieces/result.webp
deleted file mode 100644
index 5fa6cac881..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/result.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/search-formbricks.webp b/apps/docs/app/developer-docs/integrations/activepieces/search-formbricks.webp
deleted file mode 100644
index 5a804f56c2..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/search-formbricks.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/select-google-sheet.webp b/apps/docs/app/developer-docs/integrations/activepieces/select-google-sheet.webp
deleted file mode 100644
index 824e560839..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/select-google-sheet.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/select-gs-sheet.webp b/apps/docs/app/developer-docs/integrations/activepieces/select-gs-sheet.webp
deleted file mode 100644
index 2b34521238..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/select-gs-sheet.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/select-survey.webp b/apps/docs/app/developer-docs/integrations/activepieces/select-survey.webp
deleted file mode 100644
index 9547653fdf..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/select-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/success-response.webp b/apps/docs/app/developer-docs/integrations/activepieces/success-response.webp
deleted file mode 100644
index dc790dc4fc..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/success-response.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/test-trigger.webp b/apps/docs/app/developer-docs/integrations/activepieces/test-trigger.webp
deleted file mode 100644
index e6756823da..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/test-trigger.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/activepieces/update-question-id.webp b/apps/docs/app/developer-docs/integrations/activepieces/update-question-id.webp
deleted file mode 100644
index b1db9d6140..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/activepieces/update-question-id.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/add-base.webp b/apps/docs/app/developer-docs/integrations/airtable/add-base.webp
deleted file mode 100644
index 0e3ae3e1ba..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/add-base.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/airtable-connected.webp b/apps/docs/app/developer-docs/integrations/airtable/airtable-connected.webp
deleted file mode 100644
index 143e7d370d..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/airtable-connected.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/connect-with-airtable.webp b/apps/docs/app/developer-docs/integrations/airtable/connect-with-airtable.webp
deleted file mode 100644
index a9ac572dc7..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/connect-with-airtable.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/create-new-integration.webp b/apps/docs/app/developer-docs/integrations/airtable/create-new-integration.webp
deleted file mode 100644
index a55bdc618d..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/create-new-integration.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/delete-integration.webp b/apps/docs/app/developer-docs/integrations/airtable/delete-integration.webp
deleted file mode 100644
index 4a80b50a8d..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/delete-integration.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/integrations-tab.webp b/apps/docs/app/developer-docs/integrations/airtable/integrations-tab.webp
deleted file mode 100644
index f0430ecaa2..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/integrations-tab.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/link-survey-with-table.webp b/apps/docs/app/developer-docs/integrations/airtable/link-survey-with-table.webp
deleted file mode 100644
index 785363dae6..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/link-survey-with-table.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/link-with-questions.webp b/apps/docs/app/developer-docs/integrations/airtable/link-with-questions.webp
deleted file mode 100644
index 57bfba7fb0..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/link-with-questions.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/list-linked-surveys.webp b/apps/docs/app/developer-docs/integrations/airtable/list-linked-surveys.webp
deleted file mode 100644
index 3b50cee9e5..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/list-linked-surveys.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/open-developer-hub.webp b/apps/docs/app/developer-docs/integrations/airtable/open-developer-hub.webp
deleted file mode 100644
index 648aab6598..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/open-developer-hub.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/page.mdx b/apps/docs/app/developer-docs/integrations/airtable/page.mdx
deleted file mode 100644
index e2efcdeaf3..0000000000
--- a/apps/docs/app/developer-docs/integrations/airtable/page.mdx
+++ /dev/null
@@ -1,126 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AirtableConnected from "./airtable-connected.webp";
-import ConnectWithAirtable from "./connect-with-airtable.webp";
-import CreateNewIntegration from "./create-new-integration.webp";
-import DeleteIntegration from "./delete-integration.webp";
-import IntegrationTab from "./integrations-tab.webp";
-import LinkSurveyWithTable from "./link-survey-with-table.webp";
-import LinkWithQuestions from "./link-with-questions.webp";
-import ListLinkedSurveys from "./list-linked-surveys.webp";
-import OpenDeveloperHub from "./open-developer-hub.webp";
-import RegisterNewIntegration from "./register-new-integration.webp";
-import SelectScopes from "./select-scopes.webp";
-
-export const metadata = {
- title: "Airtable Setup",
- description: "Instantly populate your airtable table with survey data",
-};
-
-#### Integrations
-
-# Airtable
-
-The Airtable integration allows you to automatically send responses to an Airtable of your choice.
-
-
- If you are on a self-hosted instance, you will need to configure this integration separately. Please follow the guides [here](/self-hosting/integrations) to configure integrations on your self-hosted instance.
-
-
-## Formbricks Cloud
-
-1. Go to the Integrations tab in your [Formbricks Cloud dashboard](https://app.formbricks.com/) and click on the "Connect" button under Airtable integration.
-
-
-
-2. Now click on the "Connect with Airtable" button to authenticate yourself with Airtable.
-
-
-
-3. You will now be taken to a page where you need to add and grant access to the base you want to use for the integration.
-
-
-
-4. Once you add and grant access to your base, you will be taken back to Formbricks Cloud and see the connected status as below:
-
-
-
-
-
-Before the next step, make sure that you have a Formbricks Survey with at least one question and a Airtable base with atleast one table in the Airtable account you integrated.
-
-
-
-6. Now click on the "Link New Table" button to link an Airtable with Formbricks and a modal will open up.
-
-
-
-7. Select the Base and table you want to link with Formbricks and the Survey. On doing so, you will be asked with what questions' responses you want to feed in Airtable. Select the questions and click on the "Save" button.
-
-
-
-8. On submitting, the modal will close and you will see the linked table in the list of linked tables.
-
-
-
-Congratulations! You have successfully linked an Airtable with Formbricks. Now whenever a response is submitted for the linked survey, it will be automatically added to the linked Airtable.
-
-Still struggling or something not working as expected? [Join us on Github Discussions](https://github.com/formbricks/formbricks/discussions) and we'd be glad to assist you!
-
-## Remove Integration with Airtable
-
-To remove the integration with Airtable,
-
-1. Visit the Integrations tab in your Formbricks Cloud dashboard.
-2. Select "Manage" button in the Airtable card.
-3. Click on the "Connected with `" just before the "Link new Table" button.
-4. It will now ask for a confirmation to remove the integration. Click on the "Delete" button to remove the integration. You can always come back and connect again with the same Airtable Account.
-
-
-
-
- We do not store any other information of yours! We value Privacy more than you and rest assured you're safe with us!
-
-
-Still struggling or something not working as expected? [Join our Github Discussions](https://github.com/formbricks/formbricks/discussions) and we'd be glad to assist you!
diff --git a/apps/docs/app/developer-docs/integrations/airtable/register-new-integration.webp b/apps/docs/app/developer-docs/integrations/airtable/register-new-integration.webp
deleted file mode 100644
index 331ea78dfd..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/register-new-integration.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/airtable/select-scopes.webp b/apps/docs/app/developer-docs/integrations/airtable/select-scopes.webp
deleted file mode 100644
index f60e8ca7f4..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/airtable/select-scopes.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/google-sheets/connect-with-google.webp b/apps/docs/app/developer-docs/integrations/google-sheets/connect-with-google.webp
deleted file mode 100644
index 782718a973..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/google-sheets/connect-with-google.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/google-sheets/delete-connection.webp b/apps/docs/app/developer-docs/integrations/google-sheets/delete-connection.webp
deleted file mode 100644
index d845f2d0a1..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/google-sheets/delete-connection.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/google-sheets/google-connected.webp b/apps/docs/app/developer-docs/integrations/google-sheets/google-connected.webp
deleted file mode 100644
index 30abe13403..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/google-sheets/google-connected.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/google-sheets/integrations-tab.webp b/apps/docs/app/developer-docs/integrations/google-sheets/integrations-tab.webp
deleted file mode 100644
index 79e4cf9b19..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/google-sheets/integrations-tab.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/google-sheets/link-survey-with-sheet.webp b/apps/docs/app/developer-docs/integrations/google-sheets/link-survey-with-sheet.webp
deleted file mode 100644
index daa7a1ee90..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/google-sheets/link-survey-with-sheet.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/google-sheets/link-with-questions.webp b/apps/docs/app/developer-docs/integrations/google-sheets/link-with-questions.webp
deleted file mode 100644
index c09b0656d0..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/google-sheets/link-with-questions.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/google-sheets/list-linked-surveys.webp b/apps/docs/app/developer-docs/integrations/google-sheets/list-linked-surveys.webp
deleted file mode 100644
index cc84c7ca6a..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/google-sheets/list-linked-surveys.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/google-sheets/page.mdx b/apps/docs/app/developer-docs/integrations/google-sheets/page.mdx
deleted file mode 100644
index 274b39b947..0000000000
--- a/apps/docs/app/developer-docs/integrations/google-sheets/page.mdx
+++ /dev/null
@@ -1,122 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import ConnectWithGoogle from "./connect-with-google.webp";
-import DeleteConnection from "./delete-connection.webp";
-import GoogleConnected from "./google-connected.webp";
-import IntegrationTab from "./integrations-tab.webp";
-import LinkSurveyWithSheet from "./link-survey-with-sheet.webp";
-import LinkWithQuestions from "./link-with-questions.webp";
-import ListLinkedSurveys from "./list-linked-surveys.webp";
-
-export const metadata = {
- title: "Google Sheets",
- description:
- "The Google Sheets integration allows you to automatically send responses to a Google Sheet of your choice.",
-};
-
-#### Integrations
-
-# Google Sheets
-
-The Google Sheets integration allows you to automatically send responses to a Google Sheet of your choice.
-
-
- If you are on a self-hosted instance, you will need to configure this integration separately. Please follow the guides [here](/self-hosting/integrations) to configure integrations on your self-hosted instance.
-
-
-## Connect Google Sheets
-
-1. Go to the Integrations tab in your [Formbricks Cloud dashboard](https://app.formbricks.com/) and click on the "Connect" button under Google Sheets integration.
-
-
-
-2. Now click on the "Connect with Google" button to authenticate yourself with Google.
-
-
-
-3. You will now be taken to the Google OAuth page where you can select the Google account you want to use for the integration.
-
-4. Once you have selected the account and completed the authentication process, you will be taken back to Formbricks Cloud and see the connected status as below:
-
-
-
-
-
-Before the next step, make sure that you have a Formbricks Survey with at least one question and a Google Sheet in the Google account you integrated.
-
-
-
-5. Now click on the "Link New Sheet" button to link a Google Sheet with Formbricks and a modal will open up.
-
-
-
-6. Enter the spreadsheet URL for the Google Sheet you want to link with Formbricks and the Survey. On doing so, you will be asked with what questions' responses you want to feed in the Google Sheet. Select the questions and click on the "Link Sheet" button.
-
-
-
-7. On submitting, the modal will close and you will see the linked Google Sheet in the list of linked Google Sheets.
-
-
-
-Congratulations! You have successfully linked a Google Sheet with Formbricks. Now whenever a response is submitted for the linked survey, it will be automatically added to the linked Google Sheet.
-
-## Remove Integration with Google Account
-
-To remove the integration with Google Account,
-
-1. Visit the Integrations tab in your Formbricks Cloud dashboard.
-2. Select **Manage Sheets** button in the Google Sheets card.
-3. Click on the **Delete Integration** button.
-4. It will now ask for a confirmation to remove the integration. Click on the **Delete** button to remove the integration. You can always come back and connect again with the same Google Account.
-
-
-
-## What info do you need?
-
-- Your **Email ID** for authentication (We use this to identify you)
-- Your **Google Sheets Names and IDs** (We fetch this to list and show you the options of choosing a sheet to integrate with)
-- Write access to **selected Google Sheet** (The google sheet you choose to integrate it with, we write survey responses to it)
-
-For the above, we ask for:
-
-1. **User Email**: To identify you (that's it, nothing else, we're opensource, see this in our codebase [here](https://github.com/formbricks/formbricks/blob/main/apps/web/app/api/google-sheet/callback/route.ts#L47C17-L47C25))
-1. **Google Spreadsheet API**: To write to the spreadsheet you select (that's it, nothing else, we're opensource, see this method in our codebase [here](https://github.com/formbricks/formbricks/blob/main/packages/lib/googleSheet/service.ts#L70))
-
-We store as little personal information as possible.
-
-Still struggling or something not working as expected? [Join our Github Discussions](https://github.com/formbricks/formbricks/discussions) and we'd be glad to assist you!
diff --git a/apps/docs/app/developer-docs/integrations/make/add-module.webp b/apps/docs/app/developer-docs/integrations/make/add-module.webp
deleted file mode 100644
index 0104803bd4..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/add-module.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/create-new-scenario.webp b/apps/docs/app/developer-docs/integrations/make/create-new-scenario.webp
deleted file mode 100644
index 729e3c3586..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/create-new-scenario.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/create-webhook.webp b/apps/docs/app/developer-docs/integrations/make/create-webhook.webp
deleted file mode 100644
index c60864c0d0..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/create-webhook.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/duplicate-survey.webp b/apps/docs/app/developer-docs/integrations/make/duplicate-survey.webp
deleted file mode 100644
index c4c9e4258a..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/duplicate-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/enter-api-key-and-host.webp b/apps/docs/app/developer-docs/integrations/make/enter-api-key-and-host.webp
deleted file mode 100644
index 4d0213aa40..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/enter-api-key-and-host.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/page.mdx b/apps/docs/app/developer-docs/integrations/make/page.mdx
deleted file mode 100644
index 39def46c7a..0000000000
--- a/apps/docs/app/developer-docs/integrations/make/page.mdx
+++ /dev/null
@@ -1,153 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AddModule from "./add-module.webp";
-import CreateNewScenario from "./create-new-scenario.webp";
-import CreateWebhook from "./create-webhook.webp";
-import DuplicateSurvey from "./duplicate-survey.webp";
-import EnterApiKeyAndHost from "./enter-api-key-and-host.webp";
-import Result from "./result.webp";
-import SearchFormbricks from "./search-formbricks.webp";
-import SelectAction from "./select-action.webp";
-import SelectFields from "./select-fields.webp";
-import SelectSurvey from "./select-survey.webp";
-import SelectTriggers from "./select-trigger.webp";
-import SubmitTestResponse from "./submit-test-response.webp";
-import UpdateQuestionId from "./update-question-id.webp";
-
-export const metadata = {
- title: "Formbricks Integration with Make.com: A Step-by-Step Guide",
- description:
- "Discover how to seamlessly integrate Formbricks with Make.com. Dive into our comprehensive guide to set up scenarios, connect with a plethora of apps, and send your survey data to more than 1000 platforms.",
-};
-
-#### Integrations
-
-# Make.com Setup
-
-Make is a powerful tool to send information between Formbricks and thousands of apps. Here's how to set it up.
-
-
- Nailed down your survey?? Any changes in the survey cause additional work in the _Scenario_. It makes sense to first settle on the survey you want to run and then get to setting up Make.
-
-
-## Step 1: Setup your survey incl. `questionId` for every question
-
-Set up the `questionId`s of your survey questions before publishing.
-
-
-
-_Update the Question ID field in every question card under Advanced Settings._
-
-
- ### Already published? Duplicate survey You can only update the questionId before publishing the survey. If already published, simply duplicate it.
-
-
-
-## Step 2: Setup Make.com
-
-Visit [Make.com](https://make.com) to start a new scenario.
-
-
-
-Search for `Formbricks`:
-
-
-
-Choose the event to trigger the Scenario:
-
-
-
-## Step 3: Connect Formbricks with Make
-
-Click "Create a webhook":
-
-
-
-Enter the Formbricks API Host and API Key. API Host is by default set to https://app.formbricks.com but can be modified for self hosting instances. Learn how to get an API Key from the [API Key tutorial](/additional-features/api#how-to-generate-an-api-key).
-
-
-
-## Step 4: Select Survey
-
-Choose from your created surveys:
-
-
-
-## Step 5: Send a test response
-
-You need a test response for Make setup. For local Formbricks setup, use the [Demo App](/contributing/demo) to submit a test response.
-
-
-
-## Step 6: Set up Google Sheet
-
-Decide on the desired action for the data. Here, we'll send submissions to a Google Sheet:
-
-
-
-Choose "Add a Row" for the action:
-
-
-
-Specify the spreadsheet details and match the Formbricks data:
-
-
-
-A new row gets added to the spreadsheet for every response:
-
-
diff --git a/apps/docs/app/developer-docs/integrations/make/result.webp b/apps/docs/app/developer-docs/integrations/make/result.webp
deleted file mode 100644
index f775db5f72..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/result.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/search-formbricks.webp b/apps/docs/app/developer-docs/integrations/make/search-formbricks.webp
deleted file mode 100644
index 811bae7839..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/search-formbricks.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/select-action.webp b/apps/docs/app/developer-docs/integrations/make/select-action.webp
deleted file mode 100644
index 0af544befc..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/select-action.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/select-fields.webp b/apps/docs/app/developer-docs/integrations/make/select-fields.webp
deleted file mode 100644
index ff02fc6fc7..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/select-fields.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/select-survey.webp b/apps/docs/app/developer-docs/integrations/make/select-survey.webp
deleted file mode 100644
index dd73934522..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/select-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/select-trigger.webp b/apps/docs/app/developer-docs/integrations/make/select-trigger.webp
deleted file mode 100644
index ba19fd4b58..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/select-trigger.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/submit-test-response.webp b/apps/docs/app/developer-docs/integrations/make/submit-test-response.webp
deleted file mode 100644
index ff098a5d19..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/submit-test-response.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/make/update-question-id.webp b/apps/docs/app/developer-docs/integrations/make/update-question-id.webp
deleted file mode 100644
index 7e00ff2dea..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/make/update-question-id.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/add-api-key.webp b/apps/docs/app/developer-docs/integrations/n8n/add-api-key.webp
deleted file mode 100644
index d015ff537d..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/add-api-key.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/add-discord.webp b/apps/docs/app/developer-docs/integrations/n8n/add-discord.webp
deleted file mode 100644
index e5f7b5c59a..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/add-discord.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/add-formbricks-trigger.webp b/apps/docs/app/developer-docs/integrations/n8n/add-formbricks-trigger.webp
deleted file mode 100644
index f6219251e3..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/add-formbricks-trigger.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/create-new-credential-btn.webp b/apps/docs/app/developer-docs/integrations/n8n/create-new-credential-btn.webp
deleted file mode 100644
index bfc1a0c7dc..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/create-new-credential-btn.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/discord-response.webp b/apps/docs/app/developer-docs/integrations/n8n/discord-response.webp
deleted file mode 100644
index 5d39b9cc91..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/discord-response.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/duplicate-survey.webp b/apps/docs/app/developer-docs/integrations/n8n/duplicate-survey.webp
deleted file mode 100644
index c4c9e4258a..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/duplicate-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/fill-discord-details.webp b/apps/docs/app/developer-docs/integrations/n8n/fill-discord-details.webp
deleted file mode 100644
index 56dc5b6ef3..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/fill-discord-details.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/listen-for-event.webp b/apps/docs/app/developer-docs/integrations/n8n/listen-for-event.webp
deleted file mode 100644
index a08211e4b9..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/listen-for-event.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/page.mdx b/apps/docs/app/developer-docs/integrations/n8n/page.mdx
deleted file mode 100644
index f35ac4b5e7..0000000000
--- a/apps/docs/app/developer-docs/integrations/n8n/page.mdx
+++ /dev/null
@@ -1,186 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AddApiKey from "./add-api-key.webp";
-import AddDiscord from "./add-discord.webp";
-import AddFormbricksTrigger from "./add-formbricks-trigger.webp";
-import CreateNewCredentialBtn from "./create-new-credential-btn.webp";
-import DiscordResponse from "./discord-response.webp";
-import DuplicateSurvey from "./duplicate-survey.webp";
-import FillDiscordDetails from "./fill-discord-details.webp";
-import ListenForEvent from "./listen-for-event.webp";
-import SelectEvent from "./select-event.webp";
-import SelectSurvey from "./select-survey.webp";
-import SelectedSurveys from "./selected-surveys.webp";
-import SubmitTestResponse from "./submit-test-response.webp";
-import SuccessConnection from "./success-connection.webp";
-import TestResponseSuccess from "./test-response-success.webp";
-import UpdateQuestionId from "./update-question-id.webp";
-
-export const metadata = {
- title: "Comprehensive Guide to Integrating Formbricks with n8n",
- description:
- "Unlock the potential of combining Formbricks with n8n for a streamlined workflow experience. Dive into our step-by-step guide and send your survey data effortlessly to 350+ applications. Streamline your data processes now!",
-};
-
-#### Integrations
-
-# n8n Setup
-
-
- The Formbricks n8n node is currently only available in the n8n self-hosted version as a community node. To install it go to "Settings" -> "Community Nodes" and install @formbricks/n8n-nodes-formbricks.
-
-
-n8n allows you to build flexible workflows focused on deep data integration. And with sharable templates and a user-friendly UI, the less technical people on your team can collaborate on them too. Unlike other tools, complexity is not a limitation. So you can build whatever you want — without stressing over budget. Hook up Formbricks with n8n and you can send your data to 350+ other apps. Here is how to do it.
-
-## Step 1: Setup your survey incl. `questionId` for every question
-
-
- Nailed down your survey? Any changes in the survey cause additional work in the n8n node. It makes sense to first settle on the survey you want to run and then get to setting up n8n.
-
-
-When setting up the node your life will be easier when you change the `questionId`s of your survey questions. You can only do so **before** you publish your survey.
-
-
-
-_In every question card in the Advanced Settings you find the Question ID field. Update it so that you'll recognize the response tied to this question._
-
-
- ### Already published? Duplicate survey You can only update the questionId when the survey was not yet
- published. Already published it? Just **duplicate it** to update the questionIds.
-
-
-
-## Step 2: Setup your n8n workflow
-
-Go to [n8n.io](https://n8n.io) and create a new workflow. Search for “Formbricks” to get started:
-
-
-
-## Step 3: Connect Formbricks with n8n
-
-Now, you have to connect n8n with Formbricks via an API Key:
-
-
-
-Click on Create New Credentail button to add your host and API Key
-
-
-
-Now you need an API key. Please refer to the [API Key Setup](/additional-features/api#how-to-generate-an-api-key) page to learn how to create one.
-
-Once you copied it in the API Key field, hit Save button to test the connection and save the credentials.
-
-
-
-## Step 4: Select Event
-
-Next, you can choose the event you want to trigger the node on. You can select multiple events:
-
-
-
-Here, we are adding `Response Finished` as an event, which will trigger when the survey has been filled out.
-
-## Step 5: Select Survey
-
-Next, you can choose from all the surveys you have created in this environment. You can select multiple surveys:
-
-
-
-Here, we are selecting two surveys.
-
-
-
-## Step 6: Test your trigger
-
-In order to set up n8n you'll need a test response in the selected survey. This allows you to select the individual values of each response in your workflow. If you have Formbricks running locally and you want to set up an an app or a website survey, you can use our [Demo App](/contributing/demo) to trigger a survey and submit a response.
-
-
-
-Next, click on Listen for event button.
-
-
-
-Then, go to the survey which you selected. Fill it out, and wait for the particular event to trigger (in this case it's `Response Finished`). Once the event is triggered you will see the response that you filled out in the survey.
-
-
-
-Now you have all the data you need at hand. The next steps depend on what you want to do with it. In this tutorial, we will send submissions to a discord channel:
-
-## Step 7: Add discord to your workflow
-
-Click on the plus and search `Discord`.
-
-
-
-Fill in the `Webhook URL` and the `Content` that you want to receive in the respective discord channel. Next, click on `Execute Node` button to test the node.
-
-
-
-Once the execution is successful, you'll receive the content in the discord channel.
-
-
diff --git a/apps/docs/app/developer-docs/integrations/n8n/select-event.webp b/apps/docs/app/developer-docs/integrations/n8n/select-event.webp
deleted file mode 100644
index 54c613ed25..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/select-event.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/select-survey.webp b/apps/docs/app/developer-docs/integrations/n8n/select-survey.webp
deleted file mode 100644
index f10c163bcf..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/select-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/selected-surveys.webp b/apps/docs/app/developer-docs/integrations/n8n/selected-surveys.webp
deleted file mode 100644
index a1619783e1..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/selected-surveys.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/submit-test-response.webp b/apps/docs/app/developer-docs/integrations/n8n/submit-test-response.webp
deleted file mode 100644
index 735e6eb951..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/submit-test-response.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/success-connection.webp b/apps/docs/app/developer-docs/integrations/n8n/success-connection.webp
deleted file mode 100644
index 888369916a..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/success-connection.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/test-response-success.webp b/apps/docs/app/developer-docs/integrations/n8n/test-response-success.webp
deleted file mode 100644
index c25cdf6336..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/test-response-success.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/n8n/update-question-id.webp b/apps/docs/app/developer-docs/integrations/n8n/update-question-id.webp
deleted file mode 100644
index 7e00ff2dea..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/n8n/update-question-id.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/notion/images/connect-with-notion.webp b/apps/docs/app/developer-docs/integrations/notion/images/connect-with-notion.webp
deleted file mode 100644
index ec5d4553e0..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/notion/images/connect-with-notion.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/notion/images/delete-connection.webp b/apps/docs/app/developer-docs/integrations/notion/images/delete-connection.webp
deleted file mode 100644
index 3a857ebe31..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/notion/images/delete-connection.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/notion/images/integrations-tab.webp b/apps/docs/app/developer-docs/integrations/notion/images/integrations-tab.webp
deleted file mode 100644
index b408f96d9a..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/notion/images/integrations-tab.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/notion/images/link-survey-with-database.webp b/apps/docs/app/developer-docs/integrations/notion/images/link-survey-with-database.webp
deleted file mode 100644
index 8a54a70676..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/notion/images/link-survey-with-database.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/notion/images/link-with-databases.webp b/apps/docs/app/developer-docs/integrations/notion/images/link-with-databases.webp
deleted file mode 100644
index ca41fb0bf5..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/notion/images/link-with-databases.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/notion/images/list-linked-databases.webp b/apps/docs/app/developer-docs/integrations/notion/images/list-linked-databases.webp
deleted file mode 100644
index 3e5fb7b4ec..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/notion/images/list-linked-databases.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/notion/images/notion-connected.webp b/apps/docs/app/developer-docs/integrations/notion/images/notion-connected.webp
deleted file mode 100644
index 405277e807..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/notion/images/notion-connected.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/notion/page.mdx b/apps/docs/app/developer-docs/integrations/notion/page.mdx
deleted file mode 100644
index 01baccc20b..0000000000
--- a/apps/docs/app/developer-docs/integrations/notion/page.mdx
+++ /dev/null
@@ -1,125 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import ConnectWithNotion from "./images/connect-with-notion.webp";
-import DeleteConnection from "./images/delete-connection.webp";
-import IntegrationsTab from "./images/integrations-tab.webp";
-import LinkSurveyWithDatabase from "./images/link-survey-with-database.webp";
-import LinkWithDatabases from "./images/link-with-databases.webp";
-import ListLinkedDatabases from "./images/list-linked-databases.webp";
-import NotionConnected from "./images/notion-connected.webp";
-
-export const metadata = {
- title: "Notion",
- description:
- "The notion integration allows you to automatically send responses to a Notion database of your choice.",
-};
-
-#### Integrations
-
-# Notion
-
-The notion integration allows you to automatically send responses to a Notion database of your choice.
-
-
- If you are on a self-hosted instance, you will need to configure this integration separately. Please follow the guides [here](/self-hosting/integrations) to configure integrations on your self-hosted instance.
-
-
-## Formbricks Cloud
-
-1. Go to the Integrations tab in your [Formbricks Cloud dashboard](https://app.formbricks.com/) and click on the "Connect" button under Notion integration.
-
-
-
-2. Now click on the "Connect with Notion" button to authenticate yourself with Notion.
-
-
-
-3. You will now be taken to the Notion OAuth page where you can select the Notion account you want to use for the integration
-
-4. Once you have selected the account and databases and completed the authentication and authorization process, you will be taken back to Formbricks Cloud and see the connected status as below:
-
-
-
-
- Before the next step, make sure that you have a Formbricks Survey with at least one question and a Notion database in the Notion account you integrated.
-
-
-5. Now click on the "Link New Database" button to link a Notion database with Formbricks and a modal will open up.
-
-
-
-6. Select the Notion database you want to link with Formbricks and the Survey. On doing so, you will be asked to map formbricks' survey questions with selected databases' column. Complete the mapping and click on the "Link Database" button.
-
-
-
-7. On submitting, the modal will close and you will see the linked Notion database in the list of linked Notion databases.
-
-
-
-Congratulations! You have successfully linked a Notion database with Formbricks. Now whenever a response is submitted for the linked survey, it will be automatically added to the linked Notion database.
-
-## Setup in self-hosted Formbricks
-
-Enabling the Notion Integration in a self-hosted environment requires a setup using Notion account and changing the environment variables of your Formbricks instance.
-
-1. Sign up for a [Notion](https://www.notion.so/) account, if you don't have one already.
-2. Go to the [my integrations](https://www.notion.so/my-integrations) page and click on **New integration**.
-3. Fill up the basic information like **Name**, **Logo** and click on **Submit**.
-4. Now, click on **Distribution** tab on the sidebar. A text will appear which will ask you to make the integration public. Click on that toggle button. A form will appear below the text.
-5. Now provide it the details such as requested. Under **Redirect URIs** field:
- - If you are running formbricks locally, you can enter `http://localhost:3000/api/v1/integrations/notion/callback`.
- - Or, you can enter `https:///api/v1/integrations/notion/callback`
-6. Once you've filled all the necessary details, click on **Submit**.
-7. A screen will appear which will have **Client ID** and **Client secret**. Copy them and set them as the environment variables in your Formbricks instance as:
- - `NOTION_OAUTH_CLIENT_ID` - OAuth Client ID
- - `NOTION_OAUTH_CLIENT_SECRET` - OAuth Client Secret
-
-Voila! You have successfully enabled the Notion integration in your self-hosted Formbricks instance. Now you can follow the steps mentioned in the [Formbricks Cloud](#formbricks-cloud) section to link a Notion database with Formbricks.
-
-## Remove Integration with Notion Account
-
-To remove the integration with Slack Workspace,
-
-1. Visit the Integrations tab in your Formbricks Cloud dashboard.
-2. Select "Manage" button in the Slack card.
-3. Click on the "Delete Integration" button.
-4. It will now ask for a confirmation to remove the integration. Click on the "Delete" button to remove the integration. You can always come back and connect again with the same Notion Account.
-
-
-
-Still struggling or something not working as expected? [Join our Github Discussions](https://github.com/formbricks/formbricks/discussions) and we'd be glad to assist you!
diff --git a/apps/docs/app/developer-docs/integrations/overview/page.mdx b/apps/docs/app/developer-docs/integrations/overview/page.mdx
deleted file mode 100644
index b76774597e..0000000000
--- a/apps/docs/app/developer-docs/integrations/overview/page.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
-export const metadata = {
- title: "Configuring Formbricks with third party applications",
- description: "Configure third-party integrations with a Formbricks instance.",
-};
-
-#### Developer Docs
-
-# Overview
-
-At Formbricks, we understand the importance of integrating with third-party applications. We have step-by-step guides to configure our third-party integrations with a your Formbricks instance. We currently support the below integrations, click on them to see their individual guides:
-
-
- If you are on a self-hosted instance, you will need to configure these integrations manually. Please follow the guides [here](/self-hosting/integrations) to configure integrations on your self-hosted instance.
-
-
-- [Airtable](/developer-docs/integrations/airtable): Automatically send responses to an Airtable of your choice.
-- [Google Sheets](/developer-docs/integrations/google-sheets): Automatically send responses to a Google Sheet of your choice.
-- [Make](/developer-docs/integrations/make): Leverage Make's powerful automation capabilities to automate your workflows.
-- [n8n](/developer-docs/integrations/n8n): Automate workflows with n8n's no-code automation tool.
-- [Notion](/developer-docs/integrations/notion): Automatically send responses to a Notion database of your choice.
-- [Slack](/developer-docs/integrations/slack): Automatically send responses to a Slack channel of your choice on response events.
-- [Wordpress](/developer-docs/integrations/wordpress): Automatically integrate your Formbricks surveys with your Wordpress website.
-- [Zapier](/developer-docs/integrations/zapier): Connect Formbricks with 2000+ apps on Zapier.
-
----
-
-If you have any questions or need help with any of the integrations or even want a new integration, please reach out to us on [Github Discussions](https://github.com/formbricks/formbricks/discussions).
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-1.webp b/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-1.webp
deleted file mode 100644
index 6169f86383..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-1.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-2.webp b/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-2.webp
deleted file mode 100644
index f17d540c93..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-2.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-3.webp b/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-3.webp
deleted file mode 100644
index ea4e6217e4..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-3.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-4.webp b/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-4.webp
deleted file mode 100644
index f070e360ac..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/add-slack-bot-4.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/connect-with-slack.webp b/apps/docs/app/developer-docs/integrations/slack/images/connect-with-slack.webp
deleted file mode 100644
index 6927d8d236..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/connect-with-slack.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/delete-connection.webp b/apps/docs/app/developer-docs/integrations/slack/images/delete-connection.webp
deleted file mode 100644
index 2f1cbc5122..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/delete-connection.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/integrations-tab.webp b/apps/docs/app/developer-docs/integrations/slack/images/integrations-tab.webp
deleted file mode 100644
index c4dc113fcb..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/integrations-tab.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/link-survey-with-channel.webp b/apps/docs/app/developer-docs/integrations/slack/images/link-survey-with-channel.webp
deleted file mode 100644
index a12656ecb0..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/link-survey-with-channel.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/link-with-questions.webp b/apps/docs/app/developer-docs/integrations/slack/images/link-with-questions.webp
deleted file mode 100644
index caaca0088b..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/link-with-questions.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/list-linked-surveys.webp b/apps/docs/app/developer-docs/integrations/slack/images/list-linked-surveys.webp
deleted file mode 100644
index 7709179e9f..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/list-linked-surveys.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/slack-auth.webp b/apps/docs/app/developer-docs/integrations/slack/images/slack-auth.webp
deleted file mode 100644
index 1a7b96fc52..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/slack-auth.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/images/slack-connected.webp b/apps/docs/app/developer-docs/integrations/slack/images/slack-connected.webp
deleted file mode 100644
index 5a169935e7..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/slack/images/slack-connected.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/slack/page.mdx b/apps/docs/app/developer-docs/integrations/slack/page.mdx
deleted file mode 100644
index 8799631536..0000000000
--- a/apps/docs/app/developer-docs/integrations/slack/page.mdx
+++ /dev/null
@@ -1,198 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AddSlackBot1 from "./images/add-slack-bot-1.webp";
-import AddSlackBot2 from "./images/add-slack-bot-2.webp";
-import AddSlackBot3 from "./images/add-slack-bot-3.webp";
-import AddSlackBot4 from "./images/add-slack-bot-4.webp";
-import ConnectWithSlack from "./images/connect-with-slack.webp";
-import DeleteConnection from "./images/delete-connection.webp";
-import IntegrationsTab from "./images/integrations-tab.webp";
-import LinkSurveyWithChannel from "./images/link-survey-with-channel.webp";
-import LinkWithQuestions from "./images/link-with-questions.webp";
-import ListLinkedSurveys from "./images/list-linked-surveys.webp";
-import SlackAuth from "./images/slack-auth.webp";
-import SlackConnected from "./images/slack-connected.webp";
-
-export const metadata = {
- title: "Slack",
- description:
- "The slack integration allows you to automatically send responses to a Slack channel of your choice.",
-};
-
-#### Integrations
-
-# Slack
-
-The slack integration allows you to automatically send responses to a Slack channel of your choice.
-
-
- If you are on a self-hosted instance, you will need to configure this integration separately. Please follow the guides [here](/self-hosting/integrations) to configure integrations on your self-hosted instance.
-
-
-## Formbricks Cloud
-
-1. Go to the Integrations tab in your [Formbricks Cloud dashboard](https://app.formbricks.com/) and click on the "Connect" button under Slack integration.
-
-
-
-2. Now click on the "Connect with Slack" button to authenticate yourself with Slack.
-
-
-
-3. You will now be taken to the Slack OAuth page where you can select the Slack channel you want to link with Formbricks and click on the "Allow" button.
-
-
-
-4. Once you have selected the account and completed the authentication process, you will be taken back to Formbricks Cloud and see the connected status as below:
-
-
-
-
- Before the next step, make sure that you have a Formbricks Survey with at least one question and a Slack channel in the Slack workspace you integrated.
-
-
-5. In order to make your channel available in channel dropdown, you need to add formbricks integration bot to the channel you want to link. You can do this by going to channel settings -> Integrations -> Add apps -> Search for "Formbricks" -> Select the bot -> Add.
-
-
-
-
-
-
-6. Now click on the "Link channel" button to link a Slack channel with Formbricks and a modal will open up.
-
-
-
-7. Select the channel you want to link with Formbricks and the Survey. On doing so, you will be asked to select the questions' responses you want to feed in the Slack channel. Select the questions and click on the "Link Channel" button.
-
-
-
-8. On submitting, the modal will close and you will see the linked Slack channel in the list of linked Slack channels.
-
-
-
-Congratulations! You have successfully linked a Slack channel with Formbricks. Now whenever a response is submitted for the linked survey, it will be automatically sent to the linked Slack channel.
-
-## Setup in self-hosted Formbricks
-
-Enabling the Slack Integration in a self-hosted environment requires a setup using slack workspace account and changing the environment variables of your Formbricks instance.
-
-
- If you are running Formbricks locally:
-
- You need to use `https` instead of `http` for the redirect URI.
- - You can update the `go` script in your `apps/web/package.json` to include the `--experimental-https` flag. The
- command will look like:
- ```bash
- "go": next dev --experimental-https -p 3000
- ```
-
-- You also need to update the .env file in the `apps/web` directory to include the `WEBAPP_URL` as `https://localhost:3000` instead of `http://localhost:3000`.
-
-- You also need to run the terminal in admin mode to run the `go` script(to acquire the SSL certificate). You can do this by running the terminal as an administrator or using the `sudo` command in Unix-based systems.
-
-
-
-1. Create a Slack workspace if you don't have one already.
-2. Go to the [Your apps](https://api.slack.com/apps) page and **Create New App**.
-3. Click on **From Scratch** and provide the **App Name** and select your workspace in **Pick a workspace to develop your app in:** dropdown. Click on **Create App**.
-4. Go to the **OAuth & Permissions** tab on the sidebar and add the following **Bot Token Scopes**:
-
- - `channels:read`
- - `groups:read`
- - `chat:write`
- - `chat:write.public`
- - `chat:write.customize`
-
-5. Add the **Redirect URLs** under **OAuth & Permissions** tab. You can add the following URLs:
-
- - If you are running formbricks locally, you can enter `https://localhost:3000/api/v1/integrations/slack/callback`.
- - Or, you can enter `https:///api/v1/integrations/slack/callback`
-
-6. Now, click on **Install to Workspace** and **Allow** the permissions.
-7. Go to the **Basic Information** tab on the sidebar and copy the **Client ID** and **Client Secret**. Copy them and set them as the environment variables in your Formbricks instance as:
-
-- `SLACK_CLIENT_ID` - OAuth Client ID
-- `SLACK_CLIENT_SECRET` - OAuth Client Secret
-
-8. Now, you need to enable the public distribution of your app. Go to the **Basic Information** tab and click on the **Manage distribution** button and click on the "Distribute App".
-9. Scroll down to the **Share your app with other workspaces** section, complete the checklist and click on the **Activate public distribution** button.
-
-### By now, your environment variables should include the below ones:
-
-- `SLACK_CLIENT_ID`
-- `SLACK_CLIENT_SECRET`
-
-Voila! You have successfully enabled the Slack integration in your self-hosted Formbricks instance. Now you can follow the steps mentioned in the [Formbricks Cloud](#formbricks-cloud) section to link a Slack workspace with Formbricks.
-
-## Remove Integration with Slack Workspace
-
-To remove the integration with Slack Workspace,
-
-1. Visit the Integrations tab in your Formbricks Cloud dashboard.
-2. Select "Manage" button in the Slack card.
-3. Click on the "Delete Integration" button.
-4. It will now ask for a confirmation to remove the integration. Click on the "Delete" button to remove the integration. You can always come back and connect again with the same Slack Workspace.
-
-
-
-Still struggling or something not working as expected? [Join our Github Discussions](https://github.com/formbricks/formbricks/discussions) and we'd be glad to assist you!
diff --git a/apps/docs/app/developer-docs/integrations/wordpress/1-wordpress-targeted-survey-on-website-free.webp b/apps/docs/app/developer-docs/integrations/wordpress/1-wordpress-targeted-survey-on-website-free.webp
deleted file mode 100644
index 625fdb825d..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/wordpress/1-wordpress-targeted-survey-on-website-free.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/wordpress/2-run-website-survey-wordpress-targeted-for-free.webp b/apps/docs/app/developer-docs/integrations/wordpress/2-run-website-survey-wordpress-targeted-for-free.webp
deleted file mode 100644
index fc08053b83..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/wordpress/2-run-website-survey-wordpress-targeted-for-free.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/wordpress/3-wordpress-setup-survey-on-website-targeted-free-open-source.webp b/apps/docs/app/developer-docs/integrations/wordpress/3-wordpress-setup-survey-on-website-targeted-free-open-source.webp
deleted file mode 100644
index 65f850b5df..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/wordpress/3-wordpress-setup-survey-on-website-targeted-free-open-source.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/wordpress/4-wordpress-website-survey-target-visitor-free.webp b/apps/docs/app/developer-docs/integrations/wordpress/4-wordpress-website-survey-target-visitor-free.webp
deleted file mode 100644
index 154b458282..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/wordpress/4-wordpress-website-survey-target-visitor-free.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/wordpress/6-targeted-survey-on-wordpress-website-for-free.webp b/apps/docs/app/developer-docs/integrations/wordpress/6-targeted-survey-on-wordpress-website-for-free.webp
deleted file mode 100644
index 88b965c387..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/wordpress/6-targeted-survey-on-wordpress-website-for-free.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/wordpress/7-wordpress-free-hotjar-survey-open-source-website-survey-hotjar.webp b/apps/docs/app/developer-docs/integrations/wordpress/7-wordpress-free-hotjar-survey-open-source-website-survey-hotjar.webp
deleted file mode 100644
index bbf59a73b3..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/wordpress/7-wordpress-free-hotjar-survey-open-source-website-survey-hotjar.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/wordpress/page.mdx b/apps/docs/app/developer-docs/integrations/wordpress/page.mdx
deleted file mode 100644
index 0b956f209b..0000000000
--- a/apps/docs/app/developer-docs/integrations/wordpress/page.mdx
+++ /dev/null
@@ -1,131 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import Img1 from "./1-wordpress-targeted-survey-on-website-free.webp";
-import Img2 from "./2-run-website-survey-wordpress-targeted-for-free.webp";
-import Img3 from "./3-wordpress-setup-survey-on-website-targeted-free-open-source.webp";
-import Img4 from "./4-wordpress-website-survey-target-visitor-free.webp";
-import Img6 from "./6-targeted-survey-on-wordpress-website-for-free.webp";
-import Img7 from "./7-wordpress-free-hotjar-survey-open-source-website-survey-hotjar.webp";
-import Img5 from "./step-4-copy-to-wordpress-for-free-targeted-survey.webp";
-
-export const metadata = {
- title: "Run targeted surveys on your WordPress page",
- description:
- "Target specific visitors with a survey on your WordPress page using Formbricks for free. Show survey on specific page or on button click.",
-};
-
-#### WordPress
-
-# Connect Formbricks with your WordPress page
-
-If you want to run a targeted survey on your WordPress website, Formbricks is the way to go! With our generous free plan and open source tech, you get everything you need to get started and keep full control over your data.
-
-## TLDR
-
-1. Install the Formbricks WordPress plugin
-2. Create a [free Formbricks account](https://app.formbricks.com/auth/signup)
-3. Find and copy the `environment id`
-4. Copy the environment id into the right field in the plugin settings
-5. Create survey on trigger “New Session” to test it
-
-## Step 1: Install the Formbricks WordPress plugin
-
-As long as the Formbricks plugin is in review, please download it from our [GitHub repository directly.](https://github.com/formbricks/wordpress)
-
-
-
-## Step 2: Create a Formbricks Account
-
-This is super straight forward: Go to [app.formbricks.com/auth/signup](https://app.formbricks.com/auth/signup), create the account, verify your email and you’re in!
-
-When you see this screen, you’re there:
-
-
-
-## Step 3: Find and copy the environmentId
-
-Go to Settings > Setup Checklist where you’ll find your environmentId:
-
-
-
-## Step 4: Copy the environmentId to the WordPress Plugin Settings
-
-In your WordPress instance, go to the Formbricks Plugin settings and copy the environmentId in the correct field:
-
-
-
-Then click the button at the bottom to see if the connection worked.
-
-If you don’t use our Cloud, you also have to update the API Host
-
-Great!
-
-## Step 5: Create survey on trigger “New Session”
-
-Now that all is setup, we create a survey to display an example survey. Pick any template here:
-
-
-
-Keep the content for now, click on the Settings tab:
-
-
-
-Here we do three things:
-
-1. Change survey type to **App Survey** or **Website Survey**(for public facing)
-2. Select trigger “New Session”
-3. Publish
-
-
-
-When you see this page, you did it!
-
-
-
-## Step 6: Reload your page to check out your survey 🤓
-
-You did it! Reload the WordPress page and your survey should appear!
-
-## Doesn't work?
-
-If you have any questions or need help, feel free to reach out to us on **[Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/developer-docs/integrations/wordpress/step-4-copy-to-wordpress-for-free-targeted-survey.webp b/apps/docs/app/developer-docs/integrations/wordpress/step-4-copy-to-wordpress-for-free-targeted-survey.webp
deleted file mode 100644
index 150bd89743..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/wordpress/step-4-copy-to-wordpress-for-free-targeted-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/add-new-zap.webp b/apps/docs/app/developer-docs/integrations/zapier/add-new-zap.webp
deleted file mode 100644
index 4f4ff0cec2..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/add-new-zap.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/choose-event.webp b/apps/docs/app/developer-docs/integrations/zapier/choose-event.webp
deleted file mode 100644
index 9eacab449f..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/choose-event.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/connect-with-formbricks-1.webp b/apps/docs/app/developer-docs/integrations/zapier/connect-with-formbricks-1.webp
deleted file mode 100644
index d7b6b8ccde..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/connect-with-formbricks-1.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/connect-with-formbricks-2.webp b/apps/docs/app/developer-docs/integrations/zapier/connect-with-formbricks-2.webp
deleted file mode 100644
index c5b7fa12c1..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/connect-with-formbricks-2.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/duplicate-survey.webp b/apps/docs/app/developer-docs/integrations/zapier/duplicate-survey.webp
deleted file mode 100644
index 88ad485c7a..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/duplicate-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/page.mdx b/apps/docs/app/developer-docs/integrations/zapier/page.mdx
deleted file mode 100644
index cf44575a6b..0000000000
--- a/apps/docs/app/developer-docs/integrations/zapier/page.mdx
+++ /dev/null
@@ -1,151 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AddNewZap from "./add-new-zap.webp";
-import ChooseEvent from "./choose-event.webp";
-import ConnectWithFB1 from "./connect-with-formbricks-1.webp";
-import ConnectWithFB2 from "./connect-with-formbricks-2.webp";
-import DuplicateSurvey from "./duplicate-survey.webp";
-import SelectSurvey from "./select-survey.webp";
-import SlackChannelMsg from "./slack-channel-msg.webp";
-import SlackMsg from "./slack-message.webp";
-import SubmitTestResponse from "./submit-test-response.webp";
-import SuccessConnection from "./success-connected.webp";
-import TestSubmission from "./test-submission.webp";
-import UpdateQuestionId from "./update-question-id.webp";
-import ZapierMessage from "./zapier-message.webp";
-
-export const metadata = {
- title: "Step-by-Step Guide to Integrating Formbricks with Zapier",
- description:
- "Master the integration of Formbricks with Zapier using our detailed guide. Seamlessly connect your surveys to 5000+ apps, automate data transfers, and enhance feedback management. Start optimizing your workflow today.",
-};
-
-#### Integrations
-
-# Zapier Setup
-
-Zapier is a powerful ally. Hook up Formbricks with Zapier and you can send your data to 5000+ other apps. Here is how to do it.
-
-
- ### Nail down your survey first? Any changes in the survey cause additional work in the Zap. It makes sense to first settle on the survey you want to run and then get to setting up Zapier.
-
-
-## Step 1: Setup your survey incl. `questionId` for every question
-
-When setting up the Zap your life will be easier when you change the `questionId`s of your survey questions. You can only do so **before** you publish your survey.
-
-
-
-_In every question card in the Advanced Settings you find the Question ID field. Update it so that you’ll recognize the response tied to this question._
-
-
- ### Already published? Duplicate survey You can only update the questionId when the survey was not yet
- published. Already published it? Just **duplicate it** to update the questionIds.
-
-
-
-## Step 2: Send a test response
-
-In order to set up Zapier you’ll need a test response. This allows you to select the individual values of each response in your Zap. If you have Formbricks running locally and you want to set up an app or a website survey, you can use our [Demo App](/contributing/demo) to trigger a survey and submit a response.
-
-
-
-## Step 3: Setup your Zap
-
-Go to [zapier.com](https://zapier.com) and create a new Zap. Search for “Formbricks” to get started:
-
-
-
-Then, choose the event you want to trigger the Zap on:
-
-
-
-## Step 4: Connect Formbricks with Zapier
-
-Now, you have to connect Zapier with Formbricks via an API Key:
-
-
-
-
-Now you need an API key. Please refer to the [API Key Setup](/additional-features/api#how-to-generate-an-api-key) page to learn how to create one.
-
-Once you copied it in the newly opened Zapier window, you will be connected:
-
-
-
-## Step 5: Select Survey
-
-Next, you can choose from all the surveys you have created in this environment:
-
-
-
-## Step 6: Test your trigger
-
-Once you hit “Test” you will see the three most recent submissions for this survey. If you don’t have any submissions in the survey, submit one to continue setting up your Zap:
-
-
-_Now you're happy that you updated the questionId's_
-
-## Step 7: Set up your Zap
-
-Now you have all the data you need at hand. The next steps depend on what you want to do with it. In this tutorial, we will send submissions to a Slack channel:
-
-
-
-In the action itself we can determine the data and layout of the message. Here, we only choose the submission data. You can also refer to the meta data of the submission and the [attributes](/app-surveys/user-identification) of the person who submitted the survey.
-
-
-
-We now receive a notifcation in our Slack channel whenever a Churn survey is completed:
-
-
diff --git a/apps/docs/app/developer-docs/integrations/zapier/select-survey.webp b/apps/docs/app/developer-docs/integrations/zapier/select-survey.webp
deleted file mode 100644
index 880aab8b15..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/select-survey.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/slack-channel-msg.webp b/apps/docs/app/developer-docs/integrations/zapier/slack-channel-msg.webp
deleted file mode 100644
index d06fa628c4..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/slack-channel-msg.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/slack-message.webp b/apps/docs/app/developer-docs/integrations/zapier/slack-message.webp
deleted file mode 100644
index f0cf71b1f1..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/slack-message.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/submit-test-response.webp b/apps/docs/app/developer-docs/integrations/zapier/submit-test-response.webp
deleted file mode 100644
index d294882d09..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/submit-test-response.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/success-connected.webp b/apps/docs/app/developer-docs/integrations/zapier/success-connected.webp
deleted file mode 100644
index 987cfaa9d2..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/success-connected.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/test-submission.webp b/apps/docs/app/developer-docs/integrations/zapier/test-submission.webp
deleted file mode 100644
index 6a28586b47..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/test-submission.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/update-question-id.webp b/apps/docs/app/developer-docs/integrations/zapier/update-question-id.webp
deleted file mode 100644
index 834eb086ea..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/update-question-id.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/integrations/zapier/zapier-message.webp b/apps/docs/app/developer-docs/integrations/zapier/zapier-message.webp
deleted file mode 100644
index 425b109860..0000000000
Binary files a/apps/docs/app/developer-docs/integrations/zapier/zapier-message.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/js-sdk/images/1-set-up-in-app-micro-survey-popup.webp b/apps/docs/app/developer-docs/js-sdk/images/1-set-up-in-app-micro-survey-popup.webp
deleted file mode 100644
index 03859c00d5..0000000000
Binary files a/apps/docs/app/developer-docs/js-sdk/images/1-set-up-in-app-micro-survey-popup.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/js-sdk/images/2-micro-survey-pop-up-in-app.webp b/apps/docs/app/developer-docs/js-sdk/images/2-micro-survey-pop-up-in-app.webp
deleted file mode 100644
index e74629fd62..0000000000
Binary files a/apps/docs/app/developer-docs/js-sdk/images/2-micro-survey-pop-up-in-app.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/js-sdk/images/3-survey-logs-in-app-survey-popup.webp b/apps/docs/app/developer-docs/js-sdk/images/3-survey-logs-in-app-survey-popup.webp
deleted file mode 100644
index 841d7cea49..0000000000
Binary files a/apps/docs/app/developer-docs/js-sdk/images/3-survey-logs-in-app-survey-popup.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/js-sdk/page.mdx b/apps/docs/app/developer-docs/js-sdk/page.mdx
deleted file mode 100644
index 659fd3cc8e..0000000000
--- a/apps/docs/app/developer-docs/js-sdk/page.mdx
+++ /dev/null
@@ -1,255 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import I1 from "./images/1-set-up-in-app-micro-survey-popup.webp";
-import I2 from "./images/2-micro-survey-pop-up-in-app.webp";
-import I3 from "./images/3-survey-logs-in-app-survey-popup.webp";
-
-export const metadata = {
- title: "Formbricks JS SDK",
- description:
- "Integrate Formbricks App Surveys into your web apps and websites with the Formbricks JS SDK. Learn how to initialize Formbricks, set attributes, track actions, and troubleshoot common issues.",
-};
-
-#### Developer Docs
-
-# SDK: Run Surveys Inside Your Web Apps and Websites
-
-### Overview
-
-The Formbricks JS SDK is a versatile solution for integrating surveys into both web apps and websites. It adapts based on the presence of a `userId`. If a `userId` is provided, the SDK handles authenticated surveys for logged-in users in web apps. If no `userId` is provided, the SDK can still seamlessly run surveys on public-facing websites. The SDK is available on npm [here](https://www.npmjs.com/package/@formbricks/js/).
-
-### Install
-
-
-
-
-```js {{ title: 'npm' }}
-npm install @formbricks/js
-```
-
-```js {{ title: 'yarn' }}
-yarn add @formbricks/js
-```
-
-```js {{ title: 'pnpm' }}
-pnpm add @formbricks/js
-```
-
-
-
-
-## Methods
-
-### Initialize Formbricks
-
-Initialize the Formbricks JS Client for surveys. When used in a web app, pass a `userId` to create and target a specific user. When using it on a website without authentication, simply omit the `userId`.
-
-
-
-
-```javascript
-import formbricks from "@formbricks/js";
-
-formbricks.init({
- environmentId: "", // required
- apiHost: "", // required
- userId: "", // optional
-});
-```
-
-
-
-
-The moment you initialise Formbricks, your user will start seeing surveys that get triggered on simpler actions such as on New Session, Page Exit, & other custom actions!
-
-
-Formbricks JS is a client SDK meant to be run client-side in their browser so make sure the window object is accessible. Below is an example of how you can set it!
-
-
-
-
-```js
-if (window !== undefined) {
- formbricks.init({
- environmentId: "",
- apiHost: "",
- userId: "", //optional
- });
-} else {
- console.error("Window object not accessible to init Formbricks");
-}
-```
-
-
-
-
-
-
-### Set Attribute
-
-Set custom attributes for the identified user to help segment them based on specific characteristics. This method only works when a `userId` is provided during initialization, allowing for targeted surveys in web apps. To learn how to set custom user attributes, refer to our [User Attributes Guide](/app-surveys/user-identification).
-
-
-
-
-```js
-formbricks.setAttribute("Plan", "Paid");
-```
-
-
-
-
-### Track Action
-
-Track user actions to trigger surveys based on user interactions, such as button clicks or scrolling:
-
-
-
-
-```js
-formbricks.track("Clicked on Claim");
-```
-
-
-
-
-### Logout
-
-To log out and deinitialize Formbricks, use the formbricks.logout() function. This action clears the current initialization configuration and erases stored frontend information, such as the surveys a user has viewed or completed. It's an important step when a user logs out of your application or when you want to reset Formbricks.
-
-
-
-
-```js
-formbricks.logout();
-```
-
-
-
-
-After calling formbricks.logout(), you'll need to reinitialize Formbricks before using any of its features again. Ensure that you properly reinitialize Formbricks to avoid unexpected errors or behavior in your application.
-
-### Reset
-
-Reset the current instance and fetch the latest surveys and state again:
-
-
-
-
-```js
-formbricks.reset();
-```
-
-
-
-
-### Register Route Change:
-
-Listen for page changes and dynamically show surveys configured via no-code actions in the Formbricks app:
-
-
- This is only needed when your framework has a custom routing system and you want to trigger surveys on route changes. For example: NextJs
-
-
-
-
-
-```js
-formbricks.registerRouteChange();
-```
-
-
-
-
-## Debug Mode
-
-To enable debug mode in Formbricks, add `?formbricksDebug=true` to your app’s URL.
-
-For example, if you’ve integrated Formbricks JS to your app hosted at `https://example.com`, then change the URL to `https://example.com?formbricksDebug=true` and refresh the page, now view the console logs to see the debug mode live in action.
-
-This activates detailed debug messages in the browser console, providing deeper insights into Formbricks' operation and potential issues.
-
----
-
-## Troubleshooting
-
-In case you don’t see your survey right away, here's what you can do. Go through these to find the error fast:
-
-### Formbricks Cloud and your app are not connected properly.
-
-Go back to [app.formbricks.com](http://app.formbricks.com) or your self-hosted instance's URL and go to the App connection in the Configuration. If the status is still indicated as “Not connected” your app hasn't yet pinged the Formbricks Cloud:
-
-
-**How to fix it:**
-
-1. Check if your app loads the Formbricks widget correctly.
-2. Make sure you have `debug` mode enabled in your integration and you should see the Formbricks debug logs in your browser console while being in your app (right click in the browser, `Inspect`, switch to the console tab). If you don’t see them, double check your integration.
-
----
-
-### Survey not loaded
-
-If your app is connected with Formbricks Cloud, the survey might have not been loaded properly. Check the debug logs and search for the list of surveys loaded. It should look like so:
-
-
-
-**How to fix it:**
-
-The widget only loads surveys which are **public** and **in progress**. Go to Formbricks Cloud and to the Survey Summary page. Check if your survey is live:
-
-
-
----
-
-### Survey not triggered
-
-If the survey is loaded by the widget it might not have been triggered properly.
-
-**How to fix:**
-
-1. Open your local app in an incognito tab or window. The New Session event is only fired if a user was inactive for 60 minutes or was logged out of Formbricks via formrbicks.logout().
-2. Check the debug logs for “Event ‘New Session” tracked”. If you see it in the logs and the survey still did not get displayed, [please let us know.](mailto:support@formbricks.com)
-
----
-
-### Survey not displayed in HTML page
-
-If the survey is loaded by the widget in the HTML page, try the below steps:
-
-**How to fix:**
-
-1. Make sure you have added the [script](/app-surveys/framework-guides#html) in the head of the HTML page.
-2. Verify that you have set the \ and \ as per your Formbricks instance.
-3. Verify that you have the latest version of the JS Package.
-4. Check the debug logs to see if you still see any errors.
-
----
-
-### Cannot read undefined of .init()
-
-If you see this error in the console, it means that the Formbricks JS package is not loaded properly.
-
-**How to fix:**
-
-1. Update to the latest version of the JS Package.
-2. Verify this wherever you call initialise the Formbricks instance in your code.
-3. It should now start working.
-
----
-
-If you have any questions or need help, feel free to reach out to us on **[Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/developer-docs/overview/page.mdx b/apps/docs/app/developer-docs/overview/page.mdx
deleted file mode 100644
index 2b0961a848..0000000000
--- a/apps/docs/app/developer-docs/overview/page.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
-export const metadata = {
- title: "Formbricks Developer Documentation Overview",
- description:
- "Welcome to the Developer Docs section, your comprehensive resource for integrating and utilizing Formbricks SDKs & APIs, as well as contributing to our open source codebase. Dive into the documentation to discover how to deploy surveys on your website and effectively engage with your audience.",
-};
-
-#### Developer Docs
-
-# Overview
-
-Welcome to the Developer Docs section, your comprehensive resource for integrating and utilizing Formbricks SDKs &APIs, as well as contributing to our open source codebase. Here's what you can expect to find in this section:
-
-### [SDK: React Native Apps](/developer-docs/react-native-in-app-surveys)
-
-The Formbricks React Native SDK for App Surveys is designed for React Native applications, enabling seamless integration of surveys within your mobile apps. Dive into the documentation to learn how to leverage the SDK for app surveys and engage with your users effectively.
-
-### [SDK: Formbricks JS](/developer-docs/js-sdk)
-
-The Formbricks JS SDK is a versatile solution for both web apps and public websites. It adapts based on how you provide user information.
-
-If a `userId` is provided, the SDK tailors surveys for logged-in users, enabling targeted and identified interactions. This allows for advanced user tracking, providing deeper insights into user behavior within your application.
-
-Alternatively, when no `userId` is supplied, the SDK seamlessly handles surveys for public-facing websites, making it ideal for high-traffic pages without authentication. This enables efficient survey collection without requiring user identification.
-
-### [SDK: Formbricks API](/developer-docs/api-sdk)
-
-Get acquainted with the Formbricks API JS SDK, empowering you to interact with Formbricks programmatically. Learn how to access Formbricks functionalities and automate tasks to streamline your workflow.
-
-### [REST API](/developer-docs/rest-api)
-
-Explore the Formbricks REST API documentation with Postman, providing detailed insights into available endpoints, request methods, and response formats. Integrate Formbricks seamlessly into your applications using RESTful principles.
-
-### [Webhooks](/developer-docs/webhooks)
-
-Learn about Formbricks Webhooks and how to set up event-driven notifications in your applications using our UI as well as API. Stay updated with real-time data and trigger actions based on specific response events within your Formbricks environment.
-
-### [Contributing to Formbricks](/developer-docs/contributing/get-started)
-
-Interested in contributing to the Formbricks ecosystem? This page provides guidance on how to run Formbricks locally, report issues, contribute through code, and collaborate with the Formbricks community to enhance the platform for everyone.
-
-If you have any questions or need help, feel free to reach out to us on **[Github Discussions](https://github.com/formbricks/formbricks/discussions)**. Happy coding!
diff --git a/apps/docs/app/developer-docs/react-native-in-app-surveys/page.mdx b/apps/docs/app/developer-docs/react-native-in-app-surveys/page.mdx
deleted file mode 100644
index 08fab4b9b9..0000000000
--- a/apps/docs/app/developer-docs/react-native-in-app-surveys/page.mdx
+++ /dev/null
@@ -1,127 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-export const metadata = {
- title: "React Native: Formbricks App SDK",
- description:
- "Integrate Formbricks App Surveys into your React Native apps with the Formbricks React Native SDK.",
-};
-
-#### Developer Docs
-
-# React Native: In App Surveys
-
-### Overview
-
-The Formbricks React Native SDK can be used for seamlessly integrating App Surveys into your React Native Apps. Here, w'll explore how to leverage the SDK for in app surveys. The SDK is [available on npm.](https://www.npmjs.com/package/@formbricks/react-native)
-
-### Install
-
-
-
-
-```js {{ title: 'npm' }}
-npm install @formbricks/react-native
-```
-
-```js {{ title: 'yarn' }}
-yarn add @formbricks/react-native
-```
-
-```js {{ title: 'pnpm' }}
-pnpm add @formbricks/react-native
-```
-
-
-
-
-## Methods
-
-### Initialize Formbricks
-
-In your React Native app, initialize the Formbricks React Native Client for app surveys where you pass the userId (creates a user if not existing in Formbricks) to attribute & target the user based on their actions.
-
-
-
-
-```javascript
-// other imports
-import Formbricks from "@formbricks/react-native";
-
-const config = {
- environmentId: "",
- apiHost: "",
- userId: "",
-};
-
-export default function App() {
- return (
- <>
- {/* Your app content */}
-
- >
- );
-}
-```
-
-
-
-
-The moment you initialise Formbricks, your user will start seeing surveys that get triggered on simpler actions such as on New Session.
-
-### Set Attribute
-
-You can set custom attributes for the identified user. This can be helpful for segmenting users based on specific characteristics or properties. To learn how to set custom user attributes, please check out our [User Attributes Guide](/app-surveys/user-identification).
-
-
-
-
-```js
-formbricks.setAttribute("Plan", "Paid");
-```
-
-
-
-
-### Track Action
-
-Track user actions to trigger surveys based on user interactions, such as button clicks or scrolling:
-
-
-
-
-```js
-formbricks.track("Clicked on Claim");
-```
-
-
-
-
-### Logout
-
-To log out and deinitialize Formbricks, use the formbricks.logout() function. This action clears the current initialization configuration and erases stored frontend information, such as the surveys a user has viewed or completed. It's an important step when a user logs out of your application or when you want to reset Formbricks.
-
-
-
-
-```js
-formbricks.logout();
-```
-
-
-
-
-After calling formbricks.logout(), you'll need to reinitialize Formbricks before using any of its features again. Ensure that you properly reinitialize Formbricks to avoid unexpected errors or behavior in your application.
-
-### Reset
-
-Reset the current instance and fetch the latest surveys and state again:
-
-
-
-
-```js
-formbricks.reset();
-```
-
-
-
diff --git a/apps/docs/app/developer-docs/rest-api/images/add-api-key.webp b/apps/docs/app/developer-docs/rest-api/images/add-api-key.webp
deleted file mode 100644
index cde1055849..0000000000
Binary files a/apps/docs/app/developer-docs/rest-api/images/add-api-key.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/rest-api/images/api-key-secret.webp b/apps/docs/app/developer-docs/rest-api/images/api-key-secret.webp
deleted file mode 100644
index 5608c1f8c0..0000000000
Binary files a/apps/docs/app/developer-docs/rest-api/images/api-key-secret.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/rest-api/page.mdx b/apps/docs/app/developer-docs/rest-api/page.mdx
deleted file mode 100644
index 3c1b0a8bff..0000000000
--- a/apps/docs/app/developer-docs/rest-api/page.mdx
+++ /dev/null
@@ -1,130 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import AddApiKey from "./images/add-api-key.webp";
-import ApiKeySecret from "./images/api-key-secret.webp";
-
-export const metadata = {
- title: "Formbricks API Overview: Public Client & Management API Breakdown",
- description:
- "Formbricks provides a powerful API to manage your surveys, responses, users, displays, attributes & webhooks programmatically. Get a detailed understanding of Formbricks' dual API offerings: the unauthenticated Public Client API optimized for client-side tasks and the secured Management API for advanced account operations. Choose the perfect fit for your integration needs and ensure robust data handling",
-};
-
-#### API
-
-# API Overview
-
-Formbricks offers two types of APIs: the **Public Client API** and the **Management API**. Each API serves a different purpose, has different authentication requirements, and provides access to different data and settings.
-
-View our [API Documentation](/api-docs) in more than 30 frameworks and languages.
-
-## Public Client API
-
-The [Public Client API](/api-docs#tag/Client-API) is designed for our SDKs and **does not require authentication**. This API is ideal for client-side interactions, as it doesn't expose sensitive information.
-
-We currently have the following Client API methods exposed and below is their documentation attached in Postman:
-
-- [Displays API](/api-docs#tag/Public-Client-API-greater-Displays) - Mark Survey as Displayed or Update an existing Display by linking it with a Response for a Person
-- [People API](/api-docs#tag/Public-Client-API-greater-People) - Create & Update a Person (e.g. attributes, email, userId, etc)
-- [Responses API](/api-docs#tag/Public-Client-API-greater-Responses) - Create & Update a Response for a Survey
-
-## Management API
-
-The [Management API](/api-docs#tag/Management-API) provides access to all data and settings that your account has access to in the Formbricks app. This API **requires a personal API Key** for authentication, which can be generated in the Settings section of the Formbricks app. Checkout the [API Key Setup](#how-to-generate-an-api-key) below to generate & manage API Keys.
-
-We currently have the following Management API methods exposed and below is their documentation attached in Postman:
-
-- [Action Class API](/api-docs#tag/Management-API-greater-Action-Class) - Create, List, and Delete Action Classes
-- [Attribute Class API](/api-docs#tag/Management-API-greater-Attribute-Class) - Create, List, and Delete Attribute Classes
-- [Me API](/api-docs#tag/Management-API-greater-Me) - Retrieve Account Information
-- [People API](/api-docs#tag/Management-API-greater-People) - List and Delete People
-- [Response API](/api-docs#tag/Management-API-greater-Response) - List, List by Survey, Update, and Delete Responses
-- [Survey API](/api-docs#tag/Management-API-greater-Survey) - List, Create, Update, generate multiple suId and Delete Surveys
-- [Webhook API](/api-docs#tag/Management-API-greater-Webhook) - List, Create, and Delete Webhooks
-
-## How to Generate an API key
-
-The API requests are authorized with a personal API key. This API key gives you the same rights as if you were logged in at formbricks.com - **don't share it around!**
-
-1. Go to your settings on [app.formbricks.com](https://app.formbricks.com).
-2. Go to page “API keys”
-
-3. Create a key for the development or production environment.
-4. Copy the key immediately. You won’t be able to see it again.
-
-
-
- ### Store API key safely! Anyone who has your API key has full control over your account. For security reasons, you cannot view the API key again.
-
-
-### Test your API Key
-
-Hit the below request to verify that you are authenticated with your API Key and the server is responding.
-
-## Get My Profile {{ tag: 'GET', label: '/api/v1/me' }}
-
-
-
-
- Get the project details and environment type of your account.
-
- ### Mandatory Headers
-
-
-
- Your Formbricks API key.
-
-
-
- ### Delete a personal API key
-
- 1. Go to settings on [app.formbricks.com](https://app.formbricks.com/).
- 2. Go to page “API keys”.
- 3. Find the key you wish to revoke and select “Delete”.
- 4. Your API key will stop working immediately.
-
-
-
-
-
-
- ```bash {{ title: 'cURL' }}
- curl --location \
- 'https://app.formbricks.com/api/v1/me' \
- --header \
- 'x-api-key: '
- ```
-
-
-
-
-
- ```json {{title:'200 Success'}}
- {
- "id": "cll2m30r70004mx0huqkitgqv",
- "createdAt": "2023-08-08T18:04:59.922Z",
- "updatedAt": "2023-08-08T18:04:59.922Z",
- "type": "production",
- "project": {
- "id": "cll2m30r60003mx0hnemjfckr",
- "name": "My Project"
- },
- "appSetupCompleted": false,
- "websiteSetupCompleted": false,
- }
- ```
- ```json {{ title: '401 Not Authenticated' }}
- Not authenticated
- ```
-
-
-
-
-
-**Can’t figure it out?**: **[Get help in Github Discussions](https://github.com/formbricks/formbricks/discussions)**
-
----
diff --git a/apps/docs/app/developer-docs/webhooks/images/step-five.webp b/apps/docs/app/developer-docs/webhooks/images/step-five.webp
deleted file mode 100644
index 1f0cef8a36..0000000000
Binary files a/apps/docs/app/developer-docs/webhooks/images/step-five.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/webhooks/images/step-four.webp b/apps/docs/app/developer-docs/webhooks/images/step-four.webp
deleted file mode 100644
index ca5a560287..0000000000
Binary files a/apps/docs/app/developer-docs/webhooks/images/step-four.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/webhooks/images/step-one.webp b/apps/docs/app/developer-docs/webhooks/images/step-one.webp
deleted file mode 100644
index ad3704d819..0000000000
Binary files a/apps/docs/app/developer-docs/webhooks/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/webhooks/images/step-three.webp b/apps/docs/app/developer-docs/webhooks/images/step-three.webp
deleted file mode 100644
index 5fe2cfb98d..0000000000
Binary files a/apps/docs/app/developer-docs/webhooks/images/step-three.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/webhooks/images/step-two.webp b/apps/docs/app/developer-docs/webhooks/images/step-two.webp
deleted file mode 100644
index 98f9bf3b0d..0000000000
Binary files a/apps/docs/app/developer-docs/webhooks/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/webhooks/page.mdx b/apps/docs/app/developer-docs/webhooks/page.mdx
deleted file mode 100644
index 89e7ed3e04..0000000000
--- a/apps/docs/app/developer-docs/webhooks/page.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepFive from "./images/step-five.webp";
-import StepFour from "./images/step-four.webp";
-import StepOne from "./images/step-one.webp";
-import StepThree from "./images/step-three.webp";
-import StepTwo from "./images/step-two.webp";
-
-export const metadata = {
- title: "Formbricks Webhooks Overview",
- description:
- "Formbricks provides a powerful Webhooks system to notify your application about response related events that happen in your Formbricks surveys. Learn how to set up Webhooks, the available events, and how to handle them in your application.",
-};
-
-#### Developer Docs
-
-# Webhooks
-
-Formbricks' Webhook API offers a powerful interface for interacting with webhooks. Webhooks allow you to receive real-time HTTP notifications of changes to specific objects in the Formbricks environment.
-
-These APIs are designed to facilitate seamless integration of Formbricks with third-party systems. By making use of our webhook API, you can automate the process of sending data to these systems whenever significant events occur within your Formbricks environment.
-
-### Leveraging Webhooks
-
-The behavior of the webhooks is determined by their trigger settings. The trigger determines which updates the webhook sends. Current available triggers include:
-
-- "responseCreated"
-- "responseUpdated",
-- "responseFinished".
-
-### Creating Webhooks
-
-There are 2 ways for you to create webhooks with Formbricks ie either via our App UI or through API.
-
-**UI:**
-
-1. Login to the Formbricks App & switch to the Integrations Tab
-
-
-
-2. Click on **Manage Webhooks** & then **Add Webhook** button:
-
-
-
-3. Add your webhook listener endpoint & test it to make sure it can receive the test endpoint otherwise you will not be able to save it.
-
-
-
-4. Now add the triggers you want to listen to and the surveys!
-
-
-
-That’s it! Your webhooks will not start receiving data as soon as it arrives!
-
-
-
-- API: Use our documented methods on Creation, List, & Deletion endpoints of the Webhook API mentioned in the [Postman Documenter](https://documenter.getpostman.com/view/11026000/2sA3Bq5XEh#62e6ec65-021b-42a4-ac93-d1434b393c6c)
-
----
diff --git a/apps/docs/app/developer-docs/website-survey-sdk/images/1-set-up-website-micro-survey-popup.webp b/apps/docs/app/developer-docs/website-survey-sdk/images/1-set-up-website-micro-survey-popup.webp
deleted file mode 100644
index 7781c1e9d2..0000000000
Binary files a/apps/docs/app/developer-docs/website-survey-sdk/images/1-set-up-website-micro-survey-popup.webp and /dev/null differ
diff --git a/apps/docs/app/developer-docs/website-survey-sdk/page.mdx b/apps/docs/app/developer-docs/website-survey-sdk/page.mdx
deleted file mode 100644
index e048f3342f..0000000000
--- a/apps/docs/app/developer-docs/website-survey-sdk/page.mdx
+++ /dev/null
@@ -1,166 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import I1 from "./images/1-set-up-website-micro-survey-popup.webp";
-
-export const metadata = {
- title: "Formbricks Website Survey SDK",
- description:
- "Run targeted pop-up surveys on your public websites with the Formbricks JS SDK for Website Surveys. Learn how to integrate the SDK, track user actions, and trigger surveys based on user interactions.",
-};
-
-#### Developer Docs
-
-# SDK: Run Surveys On Public Websites
-
-### Overview
-
-The Formbricks JS SDK is a 2-in-1 SDK for seamlessly integrating both App Surveys and Website Surveys into your projects. In this section, we'll explore how to leverage the SDK specifically for website surveys.
-
-### Install
-
-
-
-
-```js {{ title: 'npm' }}
-npm install @formbricks/js
-```
-
-```js {{ title: 'yarn' }}
-yarn add @formbricks/js
-```
-
-```js {{ title: 'pnpm' }}
-pnpm add @formbricks/js
-```
-
-
-
-
-## Methods
-
-### Initialize Formbricks
-
-Initialize the Formbricks JS Client specifically for website surveys, ideal for public-facing websites:
-
-you cannot set any other attribute other than language (optional) in website surveys.
-
-
-
-
-```javascript
-import formbricks from "@formbricks/js/website";
-
-formbricks.init({
- environmentId: "", // required
- apiHost: "", // required
- attributes: {
- // optional
- language: "de", // optional
- },
-});
-```
-
-
-
-
-The moment you initialise Formbricks, your users will start seeing surveys that get triggered on simpler actions such as on New Session, Page Exit, & other custom actions!
-
-
-Formbricks JS is a client SDK meant to be run client-side in their browser so make sure the window object is accessible. Below is an example of how you can set it!
-
-
-
-
-```js
-if (window !== undefined) {
- formbricks.init({
- environmentId: "",
- apiHost: "",
- });
-} else {
- console.error("Window object not accessible to init Formbricks");
-}
-```
-
-
-
-
-
-
-### Track Action
-
-Track session actions to trigger surveys based on their interactions on your website, such as button clicks or scrolling:
-
-
-
-
-```js
-formbricks.track("Clicked on Claim");
-```
-
-
-
-
-### Reset
-
-Reset the current instance and fetch the latest surveys and state again:
-
-
-
-
-```js
-formbricks.reset();
-```
-
-
-
-
-### Register Route Change:
-
-Listen for page changes and dynamically show surveys configured via no-code actions in the Formbricks website:
-
-
- This is only needed when your framework has a custom routing system and you want to trigger surveys on route changes. For example: NextJs
-
-
-
-
-
-```js
-formbricks.registerRouteChange();
-```
-
-
-
-
-## Debug Mode
-
-To enable debug mode in Formbricks, add `?formbricksDebug=true` to your app’s URL.
-
-For example, if you’ve integrated Formbricks JS to your app hosted at `https://example.com`, then change the URL to `https://example.com?formbricksDebug=true` and refresh the page, now view the console logs to see the debug mode live in action.
-
-This activates detailed debug messages in the browser console, providing deeper insights into Formbricks' operation and potential issues.
-
----
-
-## Troubleshooting
-
-In case you don’t see your survey right away, here's what you can do. Go through these to find the error fast:
-
-### Formbricks Cloud and your website are not connected properly.
-
-Go back to [app.formbricks.com](http://app.formbricks.com) or your self-hosted instance's URL and go to the Website connection in the Configuration. If the status is still indicated as “Not connected” your app hasn't yet pinged the Formbricks Cloud:
-
-
-**How to fix it:**
-
-1. Check if your website loads the Formbricks widget correctly.
-2. Make sure you have `debug` mode enabled in your integration and you should see the Formbricks debug logs in your browser console while being in your app (right click in the browser, `Inspect`, switch to the console tab). If you don’t see them, double check your integration.
-
----
-
-If you have any questions or need help, feel free to reach out to us on **[Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/favicon.ico b/apps/docs/app/favicon.ico
deleted file mode 100644
index ef1fd01ff7..0000000000
Binary files a/apps/docs/app/favicon.ico and /dev/null differ
diff --git a/apps/docs/app/introduction/how-it-works/analytics.webp b/apps/docs/app/introduction/how-it-works/analytics.webp
deleted file mode 100644
index ab96643833..0000000000
Binary files a/apps/docs/app/introduction/how-it-works/analytics.webp and /dev/null differ
diff --git a/apps/docs/app/introduction/how-it-works/form-builder.webp b/apps/docs/app/introduction/how-it-works/form-builder.webp
deleted file mode 100644
index dba81befce..0000000000
Binary files a/apps/docs/app/introduction/how-it-works/form-builder.webp and /dev/null differ
diff --git a/apps/docs/app/introduction/how-it-works/integrations.webp b/apps/docs/app/introduction/how-it-works/integrations.webp
deleted file mode 100644
index 8db3cf2b58..0000000000
Binary files a/apps/docs/app/introduction/how-it-works/integrations.webp and /dev/null differ
diff --git a/apps/docs/app/introduction/how-it-works/page.mdx b/apps/docs/app/introduction/how-it-works/page.mdx
deleted file mode 100644
index b2adef789a..0000000000
--- a/apps/docs/app/introduction/how-it-works/page.mdx
+++ /dev/null
@@ -1,75 +0,0 @@
-import Analytics from "./analytics.webp";
-import FormBuilder from "./form-builder.webp";
-import integrations from "./integrations.webp";
-import Targeting from "./targeting.webp";
-import Trigger from "./trigger.webp";
-
-import { MdxImage } from "@/components/mdx-image";
-
-export const metadata = {
- title: "Formbricks Components Overview",
- description:
- "Formbricks is broadly composed of four components: An open source form builder, targeting & triggers, integrations and analytics & insights.",
-};
-
-#### Introduction
-
-# How Formbricks works
-
-Formbricks is broadly composed of four elements, which enable gathering, analyzing and reporting of experience data:
-
-1. **Survey builder**: Create and customize your surveys with a user-friendly, no-code interface.
-2. **Targeting & Triggers**: Define user segments based on attributes and set event-based triggers to display your surveys to the right users at the right time.
-3. **Integrations**: Seamlessly integrate Formbricks with your current stack using the provided SDKs, native integrations or open APIs.
-4. **Analytics & Insights**: Analyze user responses and gain actionable insights to make informed product decisions.
-
-## Survey builder
-
-The survey builder is where you create and customize your surveys. With its intuitive drag-and-drop interface, you can easily add different question types, set response options, and apply your branding to the survey forms. The survey builder allows you to preview your survey in real-time, ensuring it looks and feels perfect for your users.
-
-
-
-## Targeting & Triggers
-
-Formbricks offers fine-grained user targeting and event-based triggers to help you display your surveys to the most relevant audience. Using the platform, you can define user segments based on attributes and behaviors, and set up triggers to show your surveys at specific moments within your product. This ensures that you're capturing the most accurate and valuable feedback possible.
-
-
-
-
-
-## Integration
-
-Integrating Formbricks into your web is a breeze. With SDKs for popular web frameworks like React, and an HTML snippet for non-framework based websites, you can quickly add Formbricks to your project. The provided code snippets make it easy to initialize the Formbricks widget and configure it to communicate with your backend.
-
-
-
-## Analytics & Insights
-
-Formbricks provides powerful analytics and insights to help you understand user responses and make data-driven decisions. The platform aggregates survey results and presents them in an easy-to-understand format, enabling you to identify trends, spot issues, and uncover opportunities for improvement. With Formbricks, you're always one step ahead in understanding your users and optimizing your product experience.
-
-
diff --git a/apps/docs/app/introduction/how-it-works/targeting.webp b/apps/docs/app/introduction/how-it-works/targeting.webp
deleted file mode 100644
index 9c27b02792..0000000000
Binary files a/apps/docs/app/introduction/how-it-works/targeting.webp and /dev/null differ
diff --git a/apps/docs/app/introduction/how-it-works/trigger.webp b/apps/docs/app/introduction/how-it-works/trigger.webp
deleted file mode 100644
index 435da6ff96..0000000000
Binary files a/apps/docs/app/introduction/how-it-works/trigger.webp and /dev/null differ
diff --git a/apps/docs/app/introduction/what-is-formbricks/components/getting-started.tsx b/apps/docs/app/introduction/what-is-formbricks/components/getting-started.tsx
deleted file mode 100644
index 89eae15fa5..0000000000
--- a/apps/docs/app/introduction/what-is-formbricks/components/getting-started.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { Button } from "@/components/button";
-import { Heading } from "@/components/heading";
-
-const gettingStarted = [
- {
- href: "/website-surveys/framework-guides",
- name: "Quickstart",
- description: "Get up and running with our cloud and JavaScript widget for public-facing website surveys",
- },
- {
- href: "/website-surveys/framework-guides#next-js",
- name: "Next.js App",
- description:
- "Integrate the Formbricks Website Survey SDK into a Next.js application with the new app directory",
- },
- {
- href: "/self-hosting/one-click",
- name: "Self Host Single Click Deployment",
- description:
- "Host Formbricks on your own servers with just a single script. No need to worry about setting up databases, queues, or caches.",
- },
- {
- href: "/best-practices/interview-prompt",
- name: "Interview Prompt",
- description: "Set user interviews on autopilot for a continuous stream of interviews.",
- },
-];
-
-export function GettingStarted(): React.JSX.Element {
- return (
-
-
- Quick Resources
-
-
- {gettingStarted.map((guide) => (
-
-
{guide.name}
-
{guide.description}
-
-
-
-
- ))}
-
-
- );
-}
diff --git a/apps/docs/app/introduction/what-is-formbricks/page.mdx b/apps/docs/app/introduction/what-is-formbricks/page.mdx
deleted file mode 100644
index 4c6a9f2312..0000000000
--- a/apps/docs/app/introduction/what-is-formbricks/page.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
-import { Button } from "@/components/button";
-import { HeroPattern } from "@/components/hero-pattern";
-
-import { GettingStarted } from "./components/getting-started";
-
-export const metadata = {
- title: "Formbricks: Open Source Experience Management",
- description:
- "Formbricks is a versatile open source survey platform with an Experience Management Suite built on top of it. Survey customers, users or employee at any points with a perfectly timed and targeted survey.",
-};
-
-export const sections = [];
-
-
-
-# Formbricks – Open Source Experience Management
-
-Welcome to Formbricks! Formbricks is a versatile open source survey platform with an Experience Management Suite built on top of it. Survey customers, users or employee at any points with a perfectly timed and targeted survey. {{ className: 'lead' }}
-
-
-
-
-
-## Formbricks - The Open Source Survey Platform
-
-The foundation of Formbricks is an open source (AGPLv3) survey platform. Our objective is to built a survey tool which can be used to survey any stakeholder of an organisation (user, customer, employee, etc.) at any point on any platform.
-
-Today, you can already replace many of the existing surveying solutions with Formbricks:
-
-- **Standalone surveys (share via link):** Replace Google Forms, Typeform or any other link survey tool [with Formbricks Form Builder](https://formbricks.com/open-source-form-builder). Use lots of question types and comprehensive customisations.
-- **Scalable website surveys:** Even if you have millions of website visitors, Formbricks lets you run well-timed and anonymously targeted [surveys on any public website.](https://formbricks.com/website-survey)
-- **Highly targeted app surveys:** Identify known users with Formbricks and enrich their profiles with attributes and specific actions. Build cohorts for [highly targeted in app surveys.](https://formbricks.com/in-app-survey)
-
-The surveying platform is **largely free, also for commercial use.** As we further develop the product offering, all surveying capacity will move into the forever free Community Edition.
-
-## Formbricks - The XM Solution
-
-To fund the development of the most powerful and versatile surveying platform there is, we're building a commercial offering on top of the surveying platform: The Formbricks Experience Management (XM) Suite.
-
-- **What is XM?** "Experience Management" describes the effort to gather, analyze and report data from any stakeholder (customers, users, employees, etc.) of an organisation to measure and then manage how their experience with the organisation is developing.
-
-- **Why are we excited about XM?** Empowering companies, governments and nonprofit organisations to measure how customers, citizens, employees or visitors experience their products and services is a meaningful undertaking. Life is too short for poorly managed service offerings. Formbricks XM provides the data to make human-centric decisions at scale.
-
-- **How does XM work on Formbricks?** Essentially, through reduction and contextualisation. In an app-like format, we strip away everything you don't need to measure a specific experience. We also provide meaningful context in matching templates, reports and best practices.
-
-So far, we have spent most of our time and energy building out the open source survey platform which powers the above. Stick around to see how Formbricks XM Apps will empower everyone to think and work human-centric.
-
-
-
-
-
-
diff --git a/apps/docs/app/introduction/why-open-source/page.mdx b/apps/docs/app/introduction/why-open-source/page.mdx
deleted file mode 100644
index fbf25bbcc8..0000000000
--- a/apps/docs/app/introduction/why-open-source/page.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
-export const metadata = {
- title: "Why Formbricks is Open Source",
- description:
- "Open source software beats proprietary software in every aspect - except for value capture. We're investing in growing the value creation of our open source platform because it directly translates into business with large organisations.",
-};
-
-#### Introduction
-
-# Why is Formbricks open source?
-
-A lot has been written on why open source software beats proprietary software in all aspects - except for value capture for the company investing into its development. While this definitely poses a challenge for a profit-oriented organisation, it's also an interesting opportunity: Due to the open nature of our platform, it's usage is significantly higher. Capturing a small part of the value our platform generates translates into a decently-sized business.
-
-| Advantage | Open Source Software | Proprietary Software |
-| --------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------- |
-| **Data Privacy** | Self-host for maximum control over data | Dependent on thrid party data processor. |
-| **Cost** | Often free or significantly lower cost. | Typically requires a purchase or subscription. |
-| **Customizability** | Code can be modified to meet specific needs. | Limited customization, restricted to developer's features. |
-| **Security** | Frequent community reviews identify vulnerabilities quickly. | Security updates depend on vendor's schedule and interest. |
-| **Flexibility** | Supports a wide range of applications and integrations. | Designed for specific environments and integrations. |
-| **Community Support** | Large, active communities offer free support and resources. | Paid customer support with limited community help. |
-| **Innovation** | Fosters rapid innovation through community contributions. | Innovations depend on vendor's vision and development team. |
-| **Licensing** | Permissive licenses allow broad usage and modification. | Strict licensing with limited redistribution rights. |
-| **Independence** | Not dependent on a single vendor or developer. | Vendor lock-in can limit future choices. |
-| **Transparency** | Full visibility into the code base and development. | Closed-source, code is hidden from users. |
-| **Interoperability** | Supports open standards, ensuring interoperability. | Often requires additional software or plugins for compatibility. |
diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx
deleted file mode 100644
index 2312bf0577..0000000000
--- a/apps/docs/app/layout.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import { Providers } from "@/app/providers";
-import { Layout } from "@/components/layout";
-import { type Section } from "@/components/section-provider";
-import "@/styles/tailwind.css";
-import glob from "fast-glob";
-import { type Metadata } from "next";
-import { Jost } from "next/font/google";
-import Script from "next/script";
-
-export const metadata: Metadata = {
- title: {
- template: "%s - Formbricks Docs",
- default: "Formbricks Documentation",
- },
-};
-
-const jost = Jost({ subsets: ["latin"] });
-
-async function RootLayout({ children }: { children: React.ReactNode }) {
- const pages = await glob("**/*.mdx", { cwd: "src/app" });
- const allSectionsEntries: [string, Section[]][] = await Promise.all(
- pages.map(async (filename) => [
- `/${filename.replace(/(?:^|\/)page\.mdx$/, "")}`,
- ((await import(`./${filename}`)) as { sections: Section[] }).sections,
- ])
- );
- const allSections = Object.fromEntries(allSectionsEntries);
-
- return (
-
-
- {process.env.NEXT_PUBLIC_LAYER_API_KEY ? (
-
- ) : null}
-
-
-
-
- {children}
-
-
-
-
- );
-}
-
-export default RootLayout;
diff --git a/apps/docs/app/link-surveys/data-prefilling/page.mdx b/apps/docs/app/link-surveys/data-prefilling/page.mdx
deleted file mode 100644
index 4845087e05..0000000000
--- a/apps/docs/app/link-surveys/data-prefilling/page.mdx
+++ /dev/null
@@ -1,195 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import QuestionId from "./question-id.webp";
-
-export const metadata = {
- title: "URL Data Prefilling for Link Surveys in Formbricks",
- description:
- "Master the art of data prefilling in Formbricks link surveys. Dive into our guide on how to use URL parameters to prepopulate answers, boosting conversion rates and enhancing user experience. Learn through examples and ensure correct validation for each question type.",
-};
-
-#### Link Surveys
-
-# Data Prefilling in Link Surveys
-
-Data prefilling via the URL allows you to increase completion rate by prefilling data you already have in a different system. Formbricks allows you to prefill multiple questions in a survey.
-
-## Purpose
-
-Data prefilling via URL comes in handy when you:
-
-- Have data for some of the respondents, but not all
-- Have data you want the respondent to confirm or update
-- Have data in a different system (e.g. your database) and want to add it to the user profile in Formbricks
-- Want to embed a survey in an email and increase completion by prefilling the choice selected in the email
-
-## Quick Example
-
-
-
-
-```sh
-https://app.formbricks.com/s/clin3dxja02k8l80hpwmx4bjy?question_id_1=answer_1&question_id_2=answer_2
-```
-
-
-
-## How it works
-
-To prefill the questions of a survey, add query parameters to the survey URL. The query parameter should be in the format `questionId=answer`. The answer has to match the expected type of the question to pass through the [validation](/link-surveys/data-prefilling#validation). For example, if the first question is a rating question, the answer has to be a number. If the first question is a single select question, the answer has to be a string identical to one of the answer options.
-
-Please make sure the answer is [URL encoded](https://www.urlencoder.org/).
-
-## Prefilling Customisation
-
-You can customize the prefilling behavior using the `skipPrefilled` parameter in the URL. If you want to skip the prefilled questions and show the next available question, you can add `skipPrefilled=true` to the URL. By default, the `skipPrefilled` parameter is set to `false`.
-
-## Prefilling multiple values
-
-Formbricks let's you prefill as many values as you want. You can combine multiple values in the URL using `&` so for example `name=Bernadette&age=18`. The order of the query parameters does not matter so you can always move around questions or add new ones without having to worry about the order of the query parameters.
-
-## Where do I find my question Id?
-
-You find the `questionId` in the **Advanced Settings** toggle at the bottom of each question card in the Survey Editor. As you see, you can update the `questionId` to any string you like. However, once you published your survey, this `questionId` cannot be updated anymore:
-
-
-
-## Examples
-
-Here are a few examples to get you started:
-
-### Rating Question
-
-Translates to 5 stars / points / emojis:
-
-
-
-
-```sh
-https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?rating_question_id=5
-```
-
-
-
-
-### NPS Question
-
-Translates to an NPS rating of 10:
-
-
-
-
-```sh
-https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?nps_question_id=10
-```
-
-
-
-
-### Single Select Question (Radio)
-
-Chooses the option 'Very disappointed' in the single select question. The string has to be identical to the option in your question:
-
-
-
-
-```sh
-https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?single_select_question_id=Very%20disappointed
-```
-
-
-
-
-### Multi Select Question (Checkbox)
-
-Selects three options 'Sun, Palms and Beach' in the multi select question. The strings have to be identical to the options in your question:
-
-
-
-
-```sh
-https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?multi_select_question_id=Sun%2CPalms%2CBeach
-```
-
-
-
-
-### Open Text Question
-
-Adds 'I love Formbricks' as the answer to the open text question:
-
-
-
-
-```sh
-https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?openText_question_id=I%20love%20Formbricks
-```
-
-
-
-
-### CTA Question
-
-Adds 'clicked' as the answer to the CTA question. Alternatively, you can set it to 'dismissed' to skip the question:
-
-
-
-
-```txt
-https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?cta_question_id=clicked
-```
-
-
-
-
-### Consent Question
-
-Adds 'accepted' as the answer to the Consent question. Alternatively, you can set it to 'dismissed' to skip the question.
-
-
-
-
-```txt
-https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?consent_question_id=accepted
-```
-
-
-
-
-### Picture Selection Question
-
-Adds index of the selected image(s) as the answer to the Picture Selection question. The index starts from 1
-
-
-
-
-```txt
-https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?pictureSelection_question_id=1%2C2%2C3
-```
-
-
-
-
-All other question types, you currently cannot prefill via the URL.
-
-
-## Validation
-
-Make sure that the answer in the URL matches the expected type for the questions.
-
-The URL validation works as follows:
-
-- For Rating or NPS questions, the response is parsed as a number and verified if it's accepted by the schema.
-- For CTA type questions, the valid values are "clicked" (main CTA) and "dismissed" (skip CTA).
-- For Consent type questions, the valid values are "accepted" (consent given) and "dismissed" (consent not given).
-- For Picture Selection type questions, the response is parsed as an array of numbers and verified if it's accepted by the schema.
-- All other question types are strings.
-
-
- If an answer is invalid, the prefilling will be ignored and the question is presented as if not prefilled.
-
diff --git a/apps/docs/app/link-surveys/data-prefilling/question-id.webp b/apps/docs/app/link-surveys/data-prefilling/question-id.webp
deleted file mode 100644
index 8dfcb219c5..0000000000
Binary files a/apps/docs/app/link-surveys/data-prefilling/question-id.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/images/email-content-with-survey.webp b/apps/docs/app/link-surveys/embed-surveys/images/email-content-with-survey.webp
deleted file mode 100644
index 6782b534ee..0000000000
Binary files a/apps/docs/app/link-surveys/embed-surveys/images/email-content-with-survey.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/images/email-content-without-survey.webp b/apps/docs/app/link-surveys/embed-surveys/images/email-content-without-survey.webp
deleted file mode 100644
index d35f1683dd..0000000000
Binary files a/apps/docs/app/link-surveys/embed-surveys/images/email-content-without-survey.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-disabled.webp b/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-disabled.webp
deleted file mode 100644
index 5a0532b30a..0000000000
Binary files a/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-disabled.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-enabled.webp b/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-enabled.webp
deleted file mode 100644
index 187535b462..0000000000
Binary files a/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-enabled.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-toggle.webp b/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-toggle.webp
deleted file mode 100644
index 661e76177b..0000000000
Binary files a/apps/docs/app/link-surveys/embed-surveys/images/embed-mode-toggle.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/images/jo-signature.webp b/apps/docs/app/link-surveys/embed-surveys/images/jo-signature.webp
deleted file mode 100644
index 859260e6d1..0000000000
Binary files a/apps/docs/app/link-surveys/embed-surveys/images/jo-signature.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/images/plugin-add-survey.webp b/apps/docs/app/link-surveys/embed-surveys/images/plugin-add-survey.webp
deleted file mode 100644
index 92d474a09c..0000000000
Binary files a/apps/docs/app/link-surveys/embed-surveys/images/plugin-add-survey.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/images/plugin-source-tab.webp b/apps/docs/app/link-surveys/embed-surveys/images/plugin-source-tab.webp
deleted file mode 100644
index 6b765123e6..0000000000
Binary files a/apps/docs/app/link-surveys/embed-surveys/images/plugin-source-tab.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/embed-surveys/page.mdx b/apps/docs/app/link-surveys/embed-surveys/page.mdx
deleted file mode 100644
index f07871301d..0000000000
--- a/apps/docs/app/link-surveys/embed-surveys/page.mdx
+++ /dev/null
@@ -1,267 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import { TellaVideo } from "@/components/tella-video";
-
-import EmailContentWithSurvey from "./images/email-content-with-survey.webp";
-import EmailContentWithoutSurvey from "./images/email-content-without-survey.webp";
-import EmbedModeDisabled from "./images/embed-mode-disabled.webp";
-import EmbedModeEnabled from "./images/embed-mode-enabled.webp";
-import EmbedModeToggle from "./images/embed-mode-toggle.webp";
-import JoSignature from "./images/jo-signature.webp";
-import PluginAddSurvey from "./images/plugin-add-survey.webp";
-import PluginSourceTab from "./images/plugin-source-tab.webp";
-
-export const metadata = {
- title: "Embed Surveys in Your Web Page & Email",
- description:
- "Embed Formbricks surveys seamlessly into your website using an iframe & Email using code snippets.",
-};
-
-#### Embed Surveys
-
-# Embed Surveys in Your Web Page & Emails
-
-Embedding Formbricks surveys directly into your web pages & emails allows you to integrate interactive surveys without redirecting users to a separate survey site. This method ensures a seamless integration and maintains the aesthetic continuity of your website or application and your email marketing campaigns.
-
-## Embedding Surveys in Web Pages
-
-
-
-1. Create and publish a link survey.
-
-2. Open survey summary page and click on **share** button on the top right.
-
-3. In the survey share modal, click on **Embed survey** button.
-
-4. Navigate to **Embed in a Web Page** tab and click on Copy code
-
-5. Paste the copied iframe code into the HTML of your web page where you want the survey to appear.
-
-### Example of Embedding a Survey on a Web Page
-
-
-
-
-```html
-
-
-
-```
-
-
-
-
-## Iframe Events
-
-The iframe fires a **formbricksSurveyCompleted** event when a user finishes a survey within the embedded iframe. This event can be captured through a message listener in your webpage's JavaScript
-
-### How to Use it?
-
-1. Embed the Formbricks survey on your webpage using the iframe method as described above.
-
-2. Add an event listener to your webpage’s JavaScript that listens for `message` events from the iframe.
-
-3. Check if the received message indicates that the survey is completed by comparing the `event.data` with the value `formbricksSurveyCompleted`.
-
-
- It is important to verify the origin of the message to ensure it comes from the iframe containing your survey, enhancing the security of your event handling.
-
-
-4. Implement your custom actions within the callback function based on the survey completion.
-
-### Example of Handling Survey Completion Events
-
-
-
-
-```javascript
-window.addEventListener("message", (event) => {
- // Replace 'https://app.formbricks.com' with the actual web app url
- if (event.origin === "https://app.formbricks.com" && event.data === "formbricksSurveyCompleted") {
- console.log("Survey completed!");
- // Implement your custom actions here
- }
-});
-```
-
-
-
-
-## Emebd Mode
-
-Embed your survey with a minimalist design, disregarding padding and background.
-
-### How to enable it?
-
-It can be enabled by simply appending **?embed=true** to your survey link or from UI
-
-1. Open Embed survey tab in survey share modal
-
-2. Toggle **Embed mode**
-
-
-
-### With Embed mode enabled
-
-
-
-### With Embed mode disabled
-
-
-
-## Embedding Surveys in Emails
-
-Embedding Formbricks surveys directly into your emails allows you to collect valuable feedback from your users at every touchpoint. Seamlessly integrate interactive surveys into your email campaigns to gather insights and improve user experience.
-
-## Generate an Embed Code
-
-To embed a Formbricks survey in an email, first, create a survey and publish it. Follow these steps to generate the embed code:
-
-1. **Create and Publish a Survey**: Start by creating a link survey and publish it once ready.
-2. **Access the Share Options**: Go to the survey summary page and click the Share button (see below).
-3. **Get the Embed Code**: Click on Embed Survey at the bottom of the share modal, navigate to the `Embed in an Email` tab, and click `Copy Code`.
-4. **Preview and Test**: Before sending it to your users, click on Send Preview to receive a test email. This helps ensure the survey appears correctly.
-
-
-
-## Embedding the Survey in Emails
-
-Different email clients have different support for HTML and CSS. We recommend testing the email in different email clients to ensure the survey looks good in all of them.
-
-Below are some of the methods and services that we know that allows HTML embedding and how you can use them:
-
-
- Please use the below methods at your own discretion. We do not officially endorse any of the services mentioned below.
-
-
-### 1. Gmail
-
-Gmail does not support HTML embedding natively. It's a WYSIWYG (What You See Is What You Get) editor. However, you can use a free plugin like [HTML Editor for Gmail by cloudHQ](https://chromewebstore.google.com/detail/free-html-editor-for-gmai/ioinaaeeacahcmbgfmeaaofhfkijpdeb) to embed HTML in your emails.
-
-- Install the plugin from the Chrome Web Store.
-- Open Gmail and compose a new email.
-- Write your email content after which you want to embed the survey.
-
-{" "}
-
-
-
-- Right next to the Send button you will see a new button called **HTML Editor**. Click on it.
-- This will open a new window with the **Design** tab active. Switch to the **Source** tab.
-
-{" "}
-
-
-
-- Now paste the copied HTML code from Formbricks into this window. On the right, you will see a preview of how the email will look.
-
-{" "}
-
-
-
-- Click on the **Close Editor** button to save the changes & close the editor.
-
-{" "}
-
-
-
-- Voila! You have successfully embedded the survey in your email.
-
-### 2. Sendgrid
-
-Sendgrid supports HTML content in emails directly:
-
-- Compose Your Email: Use Sendgrid's email composition tools to embed the HTML directly into your email body.
-- Reference: For detailed steps, refer to Sendgrid's official documentation [here](https://sendgrid.com/en-us/solutions/email-marketing/email-design) or API docs [here](https://sendgrid.com/docs/for-developers/sending-email/api-getting-started/)
-
-### 3. Mailchimp
-
-Available in their Standard plan and above, Mailchimp allows HTML content embedding:
-
-- Use the Code Block: Drag a code block into your email template and paste the HTML code for the survey.
-- Reference: Check out Mailchimp's guide on pasting in custom HTML [here](https://mailchimp.com/help/paste-in-html-to-create-an-email/)
-
-### 4. Notemailer
-
-Nodemailer is a Node.js module that allows you to send emails with HTML content.
-
-- If you use Node.js to send emails, just attach the `html` parameter in your email message.
-- Reference: Take a look at Nodemailer's official message documentation [here](https://nodemailer.com/message/)
-
-
- Please note that the above methods are not exhaustive and there are many other ways to embed HTML in emails.
-
-
-## Example: Email Footer Survey
-
-Embed a survey link in your email signature to collect feedback subtly yet effectively. Here’s how:
-
-
-
-1. Create a Survey: Adjust an existing survey or create a new one.
-2. Scroll down & enable the **Hidden Fields** option.
-3. Add a new hidden field with the name **helpful**.
-4. Now Publish the survey as a Link Survey & copy the link.
-5. Embed in Your Signature: Add this HTML snippet to your email signature in your email client settings.
-
-
-
-
-```html
-Was our conversation helpful? Yes 👍 |
-No 👎
-```
-
-
-
-
-Replace `YOUR_SURVEY_LINK` with the actual survey link.
-
-PS: If you do not see any signature settings, just use one of the methods we've mentioned above to embed the HTML code in your email.
-
----
-
-**Can’t figure it out?**: **[Get help in Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/link-surveys/market-research-panel/copy-survey-link.webp b/apps/docs/app/link-surveys/market-research-panel/copy-survey-link.webp
deleted file mode 100644
index f994d21f67..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/copy-survey-link.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/market-research-panel/create-study.webp b/apps/docs/app/link-surveys/market-research-panel/create-study.webp
deleted file mode 100644
index 969bc3616d..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/create-study.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/market-research-panel/hidden-fields.webp b/apps/docs/app/link-surveys/market-research-panel/hidden-fields.webp
deleted file mode 100644
index 4c4545ca21..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/hidden-fields.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/market-research-panel/page.mdx b/apps/docs/app/link-surveys/market-research-panel/page.mdx
deleted file mode 100644
index 5bdf751fbe..0000000000
--- a/apps/docs/app/link-surveys/market-research-panel/page.mdx
+++ /dev/null
@@ -1,142 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import CopySurveyLink from "./copy-survey-link.webp";
-import CreateStudy from "./create-study.webp";
-import HiddenFields from "./hidden-fields.webp";
-import PreviewComplete from "./preview-complete.webp";
-import PreviewStudy from "./preview-study.webp";
-import AddRedirectUrl from "./redirect-url-formbricks.webp";
-import RedirectUrl from "./redirect-url.webp";
-import ScreeningOut from "./screening-out.webp";
-import UrlParameters from "./url-parameters.webp";
-
-export const metadata = {
- title: "Creating a Research Panel with Prolific",
- description:
- "Formbricks surveys can be integrated with Prolifics participant panel easily. This tutorial walks you through the steps on how to access a pool of over 200.000 participants for your research.",
-};
-
-#### Research Panel
-
-# Creating a Research Panel with Prolific
-
-You need a lot of research participants that match your target audience fast?
-
-Formbricks integrates well with Prolific. Prolific provides a pool of over 200.000 research participants you can choose from. Run market research with Formbricks within hours, not days.
-
-
- Prolific is a paid service. You need to fund your account to access the pool of participants. The cost
- depends on the number of participants you want to reach and the demographics you're targeting. You can get an estimate of the cost with the [Prolific price calculator](https://www.prolific.com/calculator)
-
-
-## Purpose
-
-External research panels are useful when:
-
-- You don't have access to enough people who match your target audience
-- You want to reach a specific demographic
-- You want to reach a large number of people quickly
-
-## Steps to Follow
-
-### Step 1: Add hidden fields to the Formbricks survey
-
-To be able to attribute a completed answer to a research participant, you need to add hidden fields to your Formbricks survey. To do so, edit your survey and scroll down to the Hidden Fields card.
-
-Add three fields with the IDs `PROLIFIC_PID`, `STUDY_ID`, and `SESSION_ID`.
-
-
-
-### Step 2: Create an account on Prolific
-
-Go to [Prolific](https://app.prolific.co/) and create an account.
-
-### Step 3: Create a study on Prolific
-
-Once you're logged in to Prolific, create a new study.
-
-
-
-### Step 4: Copy the Formbricks survey link to the Prolific study
-
-We connect the Formbricks survey with the Prolific study by copying the survey link from Formbricks and pasting it into the Prolific study:
-
-
-
-### Step 5: Choose URL parameters for attribution
-
-To attribute responses to the correct participant, you need to add URL parameters to the Formbricks survey link. The parameters are `PROLIFIC_PID`, `STUDY_ID`, and `SESSION_ID`, exactly like the hidden fields you added.
-
-
-
-### Step 6: Update the Formbricks Redirect URL
-
-To ensure that participants are redirected back to Prolific after completing the survey, add the redirect URL provided in the Prolific study setup (e.g. `https://app.prolific.co/submissions/complete?cc=I2PWSFRG`)
-
-Copy from Prolific:
-
-
-
-Set it up as Redirect URL in the Response Options in Formbricks:
-
-
-
-### Step 7: Preview the study
-
-Preview the study using Prolific's [Preview-functionality](https://researcher-help.prolific.com/hc/en-gb/articles/360009222853-Previewing-your-study)
-
-
-
-Got to the success screen? Then you're ready to publish your study!
-
-
-
-### Step 8: Publish the study
-
-After you've published the study, you'll get the first responses within a few hours.
-
-Prolific is a paid service. You need to fund your account to publish your study.
-
-### That's it! 🎉
-
-Once you've published the survey, you can sit back and watch the responses come in. Prolific will take care of the rest.
diff --git a/apps/docs/app/link-surveys/market-research-panel/preview-complete.webp b/apps/docs/app/link-surveys/market-research-panel/preview-complete.webp
deleted file mode 100644
index 7e7120d926..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/preview-complete.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/market-research-panel/preview-study.webp b/apps/docs/app/link-surveys/market-research-panel/preview-study.webp
deleted file mode 100644
index 6b665e8954..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/preview-study.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/market-research-panel/redirect-url-formbricks.webp b/apps/docs/app/link-surveys/market-research-panel/redirect-url-formbricks.webp
deleted file mode 100644
index eda709578c..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/redirect-url-formbricks.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/market-research-panel/redirect-url.webp b/apps/docs/app/link-surveys/market-research-panel/redirect-url.webp
deleted file mode 100644
index 3f106f1bf3..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/redirect-url.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/market-research-panel/screening-out.webp b/apps/docs/app/link-surveys/market-research-panel/screening-out.webp
deleted file mode 100644
index 7d8dee37f2..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/screening-out.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/market-research-panel/url-parameters.webp b/apps/docs/app/link-surveys/market-research-panel/url-parameters.webp
deleted file mode 100644
index 2215eb11f0..0000000000
Binary files a/apps/docs/app/link-surveys/market-research-panel/url-parameters.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-five.webp b/apps/docs/app/link-surveys/pin-protected-surveys/images/step-five.webp
deleted file mode 100644
index 52c23b53de..0000000000
Binary files a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-five.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-four.webp b/apps/docs/app/link-surveys/pin-protected-surveys/images/step-four.webp
deleted file mode 100644
index b186fde5f4..0000000000
Binary files a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-four.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-one.webp b/apps/docs/app/link-surveys/pin-protected-surveys/images/step-one.webp
deleted file mode 100644
index 7d74be7026..0000000000
Binary files a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-three.webp b/apps/docs/app/link-surveys/pin-protected-surveys/images/step-three.webp
deleted file mode 100644
index c59f807ce8..0000000000
Binary files a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-three.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-two.webp b/apps/docs/app/link-surveys/pin-protected-surveys/images/step-two.webp
deleted file mode 100644
index abe1ae4de4..0000000000
Binary files a/apps/docs/app/link-surveys/pin-protected-surveys/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/pin-protected-surveys/page.mdx b/apps/docs/app/link-surveys/pin-protected-surveys/page.mdx
deleted file mode 100644
index 43e5cb4d1f..0000000000
--- a/apps/docs/app/link-surveys/pin-protected-surveys/page.mdx
+++ /dev/null
@@ -1,90 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepFive from "./images/step-five.webp";
-import StepFour from "./images/step-four.webp";
-import StepOne from "./images/step-one.webp";
-import StepThree from "./images/step-three.webp";
-import StepTwo from "./images/step-two.webp";
-
-export const metadata = {
- title: "Protect Surveys with a Secure PIN",
- description:
- "Enhance the security and exclusivity of your surveys by requiring respondents to enter a secure 4 digit PIN to access your survey. Learn how to enable PIN protection and the benefits it offers.",
-};
-
-# PIN Protected Surveys
-
-To enhance the security and exclusivity of your surveys, you can require respondents to enter a secure 4 digit PIN to access your survey. This feature ensures that only participants who know the PIN can view and respond to the survey, making it ideal for targeted or confidential surveys.
-
-## **Enabling PIN Protection**
-
-PIN protection can be applied to your surveys easily through the survey editor. This setup allows you to control access effectively, ensuring that only authorized users can participate.
-
-### **Steps to Set Up PIN Protection**
-
-1. **Open Settings in Survey Editor**: Navigate to your survey in the survey editor where you wish to enable PIN protection & click on Settings Tab.
-2. **Select Response Options**: Find and select **`Response Options`** to access settings related to survey responses.
-
-
-3. **Enable PIN Protection**: Find the option for "Protect Survey with a PIN" and activate it. You will be
-prompted to enter a PIN that respondents must use to access the survey.
-
-### **Setting the PIN**
-
-
-Enter the PIN you wish to use for your survey. Once set, this PIN will need to be entered by participants to
-access the survey. Note that this can be changed anytime from here in the future.
-
-### **User Experience Upon Accessing the Survey**
-
-When a respondent attempts to access the survey, they are prompted to enter the PIN:
-
-- **PIN Entry Prompt**: A screen will appear asking the respondent to enter the PIN to proceed. This acts as the first gatekeeping step before survey access is granted.
-
-- **Incorrect PIN Handling**: If an incorrect PIN is entered, the respondent will be informed and asked to try again, ensuring secure access to the survey.
-
-- **Correct PIN**: On entering the correct PIN, the user access the survey & can fill it accordingly.
-
-
-### **Benefits of PIN Protection**
-
-- **Enhanced Security**: Protects the survey from unauthorized access, ensuring that only participants with the PIN can enter.
-- **Controlled Participation**: Enables you to restrict survey participation to a specific group, such as during a closed testing phase or confidential feedback gathering.
-- **Prevents Unwanted Access**: Deters casual browsing and unauthorized attempts to view or complete the survey.
-
-## **Use Cases**
-
-PIN protection is particularly useful in situations where:
-
-- Confidential surveys are being conducted, such as internal company feedback or sensitive research studies.
-- Surveys are designed for a specific event or group, and access needs to be controlled.
-- You want to limit survey responses to participants who have been explicitly invited or have registered in advance.
-
-## **Conclusion**
-
-Setting up PIN protection for your Formbricks surveys is a straightforward and effective way to ensure that only authorized respondents can access and complete your surveys. This feature adds an additional layer of security and control, making it ideal for managing access to sensitive or exclusive surveys.
diff --git a/apps/docs/app/link-surveys/quickstart/home-page.webp b/apps/docs/app/link-surveys/quickstart/home-page.webp
deleted file mode 100644
index 62346fe033..0000000000
Binary files a/apps/docs/app/link-surveys/quickstart/home-page.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/quickstart/page.mdx b/apps/docs/app/link-surveys/quickstart/page.mdx
deleted file mode 100644
index faf8a5a444..0000000000
--- a/apps/docs/app/link-surveys/quickstart/page.mdx
+++ /dev/null
@@ -1,88 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import HomePage from "./home-page.webp";
-import SurveyPublished from "./survey-published.webp";
-import SurveyQuestions from "./survey-questions.webp";
-import SurveyResponseOptions from "./survey-response-options.webp";
-import SurveySettings from "./survey-settings.webp";
-
-export const metadata = {
- title: "Formbricks Quickstart Guide: Link Surveys Made Easier & Faster",
- description:
- "Formbricks is the easiest way to create and manage link surveys. This quickstart guide will show you how to create your first link survey in under 5 minutes.",
-};
-
-#### Getting Started
-
-# Quickstart
-
-Link Surveys make it easy for your users to give you feedback. They are a great way to get feedback from your users, without interrupting their workflow. This quickstart guide will show you how to create your first link survey in under 5 minutes.
-
-## Create a free Formbricks Cloud account
-
-While you can [self-host](/self-hosting/deployment) Formbricks, but the quickest and easiest way to get started is with the free Cloud plan. Just [sign up here](https://app.formbricks.com/auth/signup) and click through the onboarding, until you’re here:
-
-
-
-Choose one of the pre-created templates to get started. We’ll choose the **Product Market Fit** template for this quickstart guide.
-
-## Create your first survey
-
-On clicking the template, you’ll be forwarded to the survey editor. Here you can edit the survey questions and settings. For the sake of simplicity, we'll keep the questions as they are and move to the survey settings.
-
-
-
-Click on the **Settings** tab to edit the survey settings.
-
-## Configure your survey settings
-
-Formbricks packs a lot of useful functionality out of the box. You can:
-
-- Close the survey on a specidic date
-- After a number of response
-- Redirect users to a URL after they completed the survey
-- Protect survey with a Pin
-- ... and much more!
-
-
-
-## Style your survey
-
-Style your survey to your need. You can keep it simplistic or use animated backgrounds. You can change the main color and soon you'll be able to fully control the appearance of the survey.
-
-
-
-## Publish your survey
-
-Once you’re happy with the survey settings, hit **Publish** and you’ll be forwarded to the Summary Page. This is where you’ll find the responses to this survey.
-
-
-
-## Share your survey
-
-Congratulations! Your survey is now published and ready to be shared with your users. You can share the survey link via email, SMS, or any other channel.
diff --git a/apps/docs/app/link-surveys/quickstart/survey-published.webp b/apps/docs/app/link-surveys/quickstart/survey-published.webp
deleted file mode 100644
index 9b493ab6a0..0000000000
Binary files a/apps/docs/app/link-surveys/quickstart/survey-published.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/quickstart/survey-questions.webp b/apps/docs/app/link-surveys/quickstart/survey-questions.webp
deleted file mode 100644
index 9c8b92778a..0000000000
Binary files a/apps/docs/app/link-surveys/quickstart/survey-questions.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/quickstart/survey-response-options.webp b/apps/docs/app/link-surveys/quickstart/survey-response-options.webp
deleted file mode 100644
index 139252852f..0000000000
Binary files a/apps/docs/app/link-surveys/quickstart/survey-response-options.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/quickstart/survey-settings.webp b/apps/docs/app/link-surveys/quickstart/survey-settings.webp
deleted file mode 100644
index 6988107a7f..0000000000
Binary files a/apps/docs/app/link-surveys/quickstart/survey-settings.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/single-use-links/env-variable.webp b/apps/docs/app/link-surveys/single-use-links/env-variable.webp
deleted file mode 100644
index 5ac40484eb..0000000000
Binary files a/apps/docs/app/link-surveys/single-use-links/env-variable.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/single-use-links/metadata.webp b/apps/docs/app/link-surveys/single-use-links/metadata.webp
deleted file mode 100644
index 8b806e0a56..0000000000
Binary files a/apps/docs/app/link-surveys/single-use-links/metadata.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/single-use-links/page.mdx b/apps/docs/app/link-surveys/single-use-links/page.mdx
deleted file mode 100644
index 0db8abac34..0000000000
--- a/apps/docs/app/link-surveys/single-use-links/page.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import EnvVar from "./env-variable.webp";
-import Metadata from "./metadata.webp";
-import ShareModal from "./share-modal.webp";
-import Settings from "./single-use-setting.webp";
-import Message from "./used-message.webp";
-
-export const metadata = {
- title: "Single Use Links",
- description: "Make sure that each respondent only replies once with single use links.",
-};
-
-#### Link Surveys
-
-# Single Use Links
-
-This guide will help you understand how to generate and use single-use links within our application.
-
-## Purpose
-
-- Single-use links (or one-time / disposable links) are URLs that grant access to a survey only once.
-
-- The primary purpose of single-use links is to assure that no respondent submits a survey twice.
-
-
- Want to create up to 5,000 single-use links? Use our [API endpoint for that.](https://documenter.getpostman.com/view/11026000/2sA3Bq5XEh#c49ef758-a78a-4ef4-a282-262621151f08)
-
-
-## Using Single-Use Links with Formbricks
-
-Using single-use links with Formbricks is quite straight-forward:
-
-1. In the survey settings, toggle "Single Use Link" on:
-
-
-
-2. When you publish your survey, the following modal will open:
-
-
-Here, you can copy and generate as many single-use links as you need.
-
-## URL Encryption
-
-You can encrypt single use URLs to assure information to be protected. To enable it, you have to set the correct environment variable:
-
-
-
-## Check suId of a submission
-
-You can find the suId of each submission in the submission meta data. To view it, simple hover over the Avatar:
-
-
-
-### 'Link used' message
-
-You can customize the 'link used' messaging in the Survey Editor settings:
-
-
diff --git a/apps/docs/app/link-surveys/single-use-links/share-modal.webp b/apps/docs/app/link-surveys/single-use-links/share-modal.webp
deleted file mode 100644
index 82cf5ba31f..0000000000
Binary files a/apps/docs/app/link-surveys/single-use-links/share-modal.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/single-use-links/single-use-setting.webp b/apps/docs/app/link-surveys/single-use-links/single-use-setting.webp
deleted file mode 100644
index 9161968715..0000000000
Binary files a/apps/docs/app/link-surveys/single-use-links/single-use-setting.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/single-use-links/used-message.webp b/apps/docs/app/link-surveys/single-use-links/used-message.webp
deleted file mode 100644
index f1f5b5f588..0000000000
Binary files a/apps/docs/app/link-surveys/single-use-links/used-message.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/source-tracking/page.mdx b/apps/docs/app/link-surveys/source-tracking/page.mdx
deleted file mode 100644
index 8995b95c49..0000000000
--- a/apps/docs/app/link-surveys/source-tracking/page.mdx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-import { ResponsiveVideo } from "@/components/responsive-video";
-
-import ShareLink from "./share-link.webp";
-import ViewResponse from "./view-response.webp";
-
-export const metadata = {
- title: "Source Tracking",
- description: "Track the source of your users in an easy & compliant way!",
-};
-
-#### Link Surveys
-
-# Source Tracking
-
-Understand the source a survey respondent comes from when responding to your survey - all while keeping data privacy standards high!
-
-Check out this video to learn more about source tracking in link surveys:
-
-{/* Replace link below with our new link on Source Tracking */}
-
-
-
-## Purpose
-
-Source tracking for link surveys is essential when you:
-
-- Want to analyze the origin of your survey respondents.
-- Aim to ensure compliance with tracking and data collection regulations.
-
-## Code Example
-
-
-
-
-```sh
-https://formbricks.com/clin3dxja02k8l80hpwmx4bjy?source=Google
-```
-
-
-
-
-## How it Works
-
-To track the source of users in your link surveys effectively, follow these steps:
-
-1. **Generate Survey URL**: Create a Link Survey and get the sharable link. Append `?source=YourSouce` to the link to reference it with your campaigns and sources.
-
-
-
-
-```sh
-https://formbricks.com/clin3dxja02k8l80hpwmx4bjy?source=Google
-```
-
-
-
-
-2. **Collect Data**: When users access the survey through these links, the URL parameters will capture the source information from which they were shared.
-
-3. **View Responses**: Use the collected source data to analyze where your survey respondents are coming from. You can hover over the user icon in the responses tab to see the source of the user.
-
-
-
-4. **Analyse Data**: Download all the responses as a CSV/Excel and get access to the source information. This can provide valuable insights into your audience.
-
-Source tracking allows you to make informed decisions based on the origin of your survey participants, helping you tailor your surveys and marketing strategies accordingly.
diff --git a/apps/docs/app/link-surveys/source-tracking/share-link.webp b/apps/docs/app/link-surveys/source-tracking/share-link.webp
deleted file mode 100644
index 12d9357727..0000000000
Binary files a/apps/docs/app/link-surveys/source-tracking/share-link.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/source-tracking/view-response.webp b/apps/docs/app/link-surveys/source-tracking/view-response.webp
deleted file mode 100644
index 8b0e9bd7d5..0000000000
Binary files a/apps/docs/app/link-surveys/source-tracking/view-response.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/start-at-question/page.mdx b/apps/docs/app/link-surveys/start-at-question/page.mdx
deleted file mode 100644
index e87e011935..0000000000
--- a/apps/docs/app/link-surveys/start-at-question/page.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
-export const metadata = {
- title: "Start At Specific Question",
- description: "Start a survey at a specific question using the URL to skip the initial questions.",
-};
-
-#### Link Surveys
-
-# Start At Specific Question
-
-You can start a survey at a specific question from the survey using the URL to skip the initial questions. This is useful when you want to link to a specific question from an external source or want to use the same survey in different parts of the user journey.
-
-## How to Use it?
-
-1. In the Survey Editor, open the Questions Tab and ensure the survey is set as a **Link Survey**.
-
-2. Find the question you want to start at, click on **Show Advanced Settings**, and copy the **Question ID**.
-
-
- Each question has a unique Question ID, which is used to identify it in the survey. You can use different Question IDs for multiple **startAt** points in the URL.
-
-
-3. Append `?startAt=question_id` to your survey's URL, replacing `question_id` with the copied Question ID.
-
-4. Share this modified URL with your users to start the survey at the specified question.
-
-### Sample Link Survey URL with `startAt`
-
-
-
-
-```sh
-https://formbricks.com/clny997dj087ho30fdzyf4nkl?startAt=bqd29m94l9k0hnc3azbrexl8
-```
-
-
-
-
-## Use Cases
-
-- **Link to a specific question from an external source:** Use this feature to direct users to a specific question in your survey from emails, chatbots, or web pages, providing a seamless experience.
-- **Use the same survey in different parts of the user journey:** Employ the same survey at various stages of the user journey, starting at different questions to gather comprehensive insights.
-- **Create a personalized survey experience:** Tailor the survey experience by starting at a particular question based on the user's past interactions or preferences, enhancing engagement.
diff --git a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-five.webp b/apps/docs/app/link-surveys/verify-email-before-survey/images/step-five.webp
deleted file mode 100644
index bce405556c..0000000000
Binary files a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-five.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-four.webp b/apps/docs/app/link-surveys/verify-email-before-survey/images/step-four.webp
deleted file mode 100644
index d9ed057e01..0000000000
Binary files a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-four.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-one.webp b/apps/docs/app/link-surveys/verify-email-before-survey/images/step-one.webp
deleted file mode 100644
index 679f4e9e73..0000000000
Binary files a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-one.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-seven.webp b/apps/docs/app/link-surveys/verify-email-before-survey/images/step-seven.webp
deleted file mode 100644
index 519720f79b..0000000000
Binary files a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-seven.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-six.webp b/apps/docs/app/link-surveys/verify-email-before-survey/images/step-six.webp
deleted file mode 100644
index 5ca465d171..0000000000
Binary files a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-six.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-three.webp b/apps/docs/app/link-surveys/verify-email-before-survey/images/step-three.webp
deleted file mode 100644
index b4e20a69b2..0000000000
Binary files a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-three.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-two.webp b/apps/docs/app/link-surveys/verify-email-before-survey/images/step-two.webp
deleted file mode 100644
index a3d871c668..0000000000
Binary files a/apps/docs/app/link-surveys/verify-email-before-survey/images/step-two.webp and /dev/null differ
diff --git a/apps/docs/app/link-surveys/verify-email-before-survey/page.mdx b/apps/docs/app/link-surveys/verify-email-before-survey/page.mdx
deleted file mode 100644
index 9674e71e0d..0000000000
--- a/apps/docs/app/link-surveys/verify-email-before-survey/page.mdx
+++ /dev/null
@@ -1,114 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import StepFive from "./images/step-five.webp";
-import StepFour from "./images/step-four.webp";
-import StepOne from "./images/step-one.webp";
-import StepSeven from "./images/step-seven.webp";
-import StepSix from "./images/step-six.webp";
-import StepThree from "./images/step-three.webp";
-import StepTwo from "./images/step-two.webp";
-
-export const metadata = {
- title: "Verifying Email Before Accessing Surveys",
- description:
- "Ensure the credibility of your survey participants and maintain high-quality data by requiring respondents to verify their email before they can view and respond to your Formbricks link surveys. Learn how to enable email verification and the benefits it offers.",
-};
-
-# **Verifying Email Before Accessing Surveys**
-
-To ensure the credibility of your survey participants and maintain high-quality data, you can require respondents to verify their email before they can view and respond to your Formbricks link surveys. This verification process helps confirm that only participants with valid email addresses can access the survey, enhancing data integrity.
-
-## **Enabling Email Verification**
-
-This feature, designed for link surveys, can be enabled or disabled directly from the survey editor. Here’s how to activate it:
-
-### **Steps to Enable Email Verification**
-
-1. **Open Survey Editor**: Navigate to your link survey in the survey editor where you wish to enable email verification.
-2. **Access Settings**: Click on the **`Settings`** tab next to the Questions & Styling tab.
-3. **Select Response Options**: Find and select **`Response Options`** to access settings related to survey responses.
-
-
-
-4. **Activate Email Verification**: Find the "Verify Email Before Accessing Survey" option and use the toggle to activate email verification. Specify what details should be visible to the public when they access the survey.
-
-
-
-### **User Experience Upon Accessing the Survey**
-
-When email verification is enabled, the following process unfolds for the user:
-
-1. **Email Entry Prompt**: Upon accessing the survey link, the user is prompted to verify their email before they can proceed.
-
-
-
-2. **Preview Option**: A "Preview survey questions" option is available for those who are just browsing or curious about the survey content without completing it. This allows a non-interactive view of the survey.
-
-
-
-3. **Verification Process**: After entering their email, respondents receive an email containing a survey link, which they can use to access the survey.
-
-
-
-**4. Survey Access**: After verifying their email, respondents can access and respond to the survey.
-
-
-
-### **Benefits of Email Verification**
-
-- **Authenticity of Respondents**: Ensures that each respondent is verified, adding an extra layer of authenticity to your data collection.
-- **Reduction in Spam and Fraudulent Responses**: Helps reduce unwanted or spam entries by confirming the legitimacy of each respondent’s email address.
-- **Enhanced Data Quality**: Increases the reliability and quality of the data collected by confirming the identity of participants.
-
-### **Visibility of Verified Emails**
-
-In the Formbricks dashboard, the survey response card displays the verified email along with the responses attached to it, ensuring traceability and authenticity of the data collected.
-
-
-
-## **Use Cases**
-
-Email verification is particularly beneficial in scenarios where:
-
-- Market research requires verified responses from specific demographics.
-- Surveys are intended for a selected audience with gated content.
-- Academic or professional studies necessitate authenticated data for accuracy.
-
-## **Conclusion**
-
-Implementing the Email Verification feature is an effective strategy to ensure the authenticity of your survey respondents. By requiring email verification before survey access, you safeguard the integrity of your survey data and ensure that only verified individuals can contribute responses.
diff --git a/apps/docs/app/not-found.tsx b/apps/docs/app/not-found.tsx
deleted file mode 100644
index 5dbca978d3..0000000000
--- a/apps/docs/app/not-found.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Button } from "@/components/button";
-import { HeroPattern } from "@/components/hero-pattern";
-
-export default function NotFound(): React.JSX.Element {
- return (
- <>
-
-
-
404
-
Page not found
-
- Sorry, we couldn’t find the page you’re looking for.
-
-
-
- >
- );
-}
diff --git a/apps/docs/app/providers.tsx b/apps/docs/app/providers.tsx
deleted file mode 100644
index 6139d1a717..0000000000
--- a/apps/docs/app/providers.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-"use client";
-
-import { ThemeProvider, useTheme } from "next-themes";
-import { useEffect } from "react";
-
-function ThemeWatcher() {
- const { resolvedTheme, setTheme } = useTheme();
-
- useEffect(() => {
- const media = window.matchMedia("(prefers-color-scheme: dark)");
-
- const onMediaChange = () => {
- const systemTheme = media.matches ? "dark" : "light";
- if (resolvedTheme === systemTheme) {
- setTheme("system");
- }
- };
-
- onMediaChange();
- media.addEventListener("change", onMediaChange);
-
- return () => {
- media.removeEventListener("change", onMediaChange);
- };
- }, [resolvedTheme, setTheme]);
-
- return null;
-}
-
-export function Providers({ children }: { children: React.ReactNode }) {
- return (
-
-
- {children}
-
- );
-}
diff --git a/apps/docs/app/self-hosting/cluster-setup/page.mdx b/apps/docs/app/self-hosting/cluster-setup/page.mdx
deleted file mode 100644
index ac25a9183e..0000000000
--- a/apps/docs/app/self-hosting/cluster-setup/page.mdx
+++ /dev/null
@@ -1,54 +0,0 @@
-export const metadata = {
- title: "Cluster Setup for Formbricks",
- description: "Learn how to set up Formbricks in a multi-instance cluster configuration for high availability and scalability.",
-};
-
-#### Self-Hosting
-
-# Cluster Setup
-
-
- Running Formbricks in a multi-instance cluster configuration is an Enterprise Edition feature and requires an enterprise license key.
-
-
-## Overview
-
-Running Formbricks as a cluster of multiple instances offers several key advantages:
-
-- **High Availability**: Ensure your surveys remain accessible even if some instances fail
-- **Load Distribution**: Handle higher traffic by distributing requests across multiple instances
-- **Scalability**: Easily scale horizontally by adding more instances as your needs grow
-- **Zero-Downtime Updates**: Rolling updates without service interruption
-
-## Requirements
-
-To run Formbricks in a cluster setup, you'll need:
-
-- Enterprise Edition license key
-- Shared PostgreSQL database
-- Shared Redis cache for session management and caching
-- Load balancer to distribute traffic
-
-## Redis Configuration
-
-
- Redis integration is an Enterprise Edition feature and requires an enterprise license key.
-
-
-Configure Redis by adding the following environment variables to your instances:
-
-```sh {{ title: 'env file' }}
-REDIS_URL=redis://your-redis-host:6379
-REDIS_HTTP_URL=http://your-redis-host:8000
-```
-
-## Coming Soon
-
-We're working on comprehensive Kubernetes deployment instructions to make cluster setup even easier. This will include:
-
-- Kubernetes manifests
-- Helm charts
-- Detailed scaling configurations
-- Production-ready deployment examples
-
-Stay tuned for updates.
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_01.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_01.webp
deleted file mode 100644
index e2aa3b1410..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_01.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_02.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_02.webp
deleted file mode 100644
index 997cd2c391..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_02.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_03.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_03.webp
deleted file mode 100644
index 46ac29a70f..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_03.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_04.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_04.webp
deleted file mode 100644
index c70921fb47..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_04.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_05.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_05.webp
deleted file mode 100644
index ed1b01be32..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_05.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_06.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_06.webp
deleted file mode 100644
index 86e40a48d7..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_06.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_07.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_07.webp
deleted file mode 100644
index 7328bf73a8..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_07.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_08.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_08.webp
deleted file mode 100644
index 112e72a0d0..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_08.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_09.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_09.webp
deleted file mode 100644
index 7b38eb46bc..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_09.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_10.webp b/apps/docs/app/self-hosting/configuration/images/entra_app_reg_10.webp
deleted file mode 100644
index 22b57fa691..0000000000
Binary files a/apps/docs/app/self-hosting/configuration/images/entra_app_reg_10.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/configuration/page.mdx b/apps/docs/app/self-hosting/configuration/page.mdx
deleted file mode 100644
index 7cba06c84d..0000000000
--- a/apps/docs/app/self-hosting/configuration/page.mdx
+++ /dev/null
@@ -1,328 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import EntraIDAppReg01 from "./images/entra_app_reg_01.webp";
-import EntraIDAppReg02 from "./images/entra_app_reg_02.webp";
-import EntraIDAppReg03 from "./images/entra_app_reg_03.webp";
-import EntraIDAppReg04 from "./images/entra_app_reg_04.webp";
-import EntraIDAppReg05 from "./images/entra_app_reg_05.webp";
-import EntraIDAppReg06 from "./images/entra_app_reg_06.webp";
-import EntraIDAppReg07 from "./images/entra_app_reg_07.webp";
-import EntraIDAppReg08 from "./images/entra_app_reg_08.webp";
-import EntraIDAppReg09 from "./images/entra_app_reg_09.webp";
-import EntraIDAppReg10 from "./images/entra_app_reg_10.webp";
-
-export const metadata = {
- title: "Configure Formbricks with External auth providers",
- description:
- "Set up and integrate multiple external authentication providers with Formbricks. Our step-by-step guide covers Google OAuth and more, ensuring a seamless login experience for your users.",
-};
-
-#### Self-Hosting
-
-# Configure
-
-### Custom Configurations
-
-These variables are present inside your machine’s docker-compose file. Restart the docker containers if you change any variables for them to take effect.
-
-
-| Variable | Description | Required | Default |
-| ---------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | ------------------------- |
-| WEBAPP_URL | Base URL of the site. | required | http://localhost:3000 |
-| NEXTAUTH_URL | Location of the auth server. This should normally be the same as WEBAPP_URL | required | http://localhost:3000 |
-| DATABASE_URL | Database URL with credentials. | required | |
-| NEXTAUTH_SECRET | Secret for NextAuth, used for session signing and encryption. | required | (Generated by the user, must not exceed 32 bytes, `openssl rand -hex 32`) |
-| ENCRYPTION_KEY | Secret for used by Formbricks for data encryption | required | (Generated by the user, must not exceed 32 bytes, `openssl rand -hex 32`) |
-| CRON_SECRET | API Secret for running cron jobs. | required | (Generated by the user, must not exceed 32 bytes, `openssl rand -hex 32`) |
-| UPLOADS_DIR | Local directory for storing uploads. | optional | ./uploads |
-| S3_ACCESS_KEY | Access key for S3. | optional | (resolved by the AWS SDK) |
-| S3_SECRET_KEY | Secret key for S3. | optional | (resolved by the AWS SDK) |
-| S3_REGION | Region for S3. | optional | (resolved by the AWS SDK) |
-| S3_BUCKET_NAME | S3 bucket name for data storage. Formbricks enables S3 storage when this is set. | optional (required if S3 is enabled) | |
-| S3_ENDPOINT_URL | Endpoint for S3. | optional | (resolved by the AWS SDK) |
-| PRIVACY_URL | URL for privacy policy. | optional | |
-| TERMS_URL | URL for terms of service. | optional | |
-| IMPRINT_URL | URL for imprint. | optional | |
-|IMPRINT_ADDRESS | Address for imprint. | optional | |
-| EMAIL_AUTH_DISABLED | Disables the ability for users to signup or login via email and password if set to 1. | optional | |
-| PASSWORD_RESET_DISABLED | Disables password reset functionality if set to 1. | optional | |
-| EMAIL_VERIFICATION_DISABLED | Disables email verification if set to 1. | optional | |
-| RATE_LIMITING_DISABLED | Disables rate limiting if set to 1. | optional | |
-| INVITE_DISABLED | Disables the ability for invited users to create an account if set to 1. | optional | |
-| MAIL_FROM | Email address to send emails from. | optional (required if email services are to be enabled) | |
-| SMTP_HOST | Host URL of your SMTP server. | optional (required if email services are to be enabled) | |
-| SMTP_PORT | Host Port of your SMTP server. | optional (required if email services are to be enabled) | |
-| SMTP_USER | Username for your SMTP Server. | optional (required if email services are to be enabled) | |
-| SMTP_PASSWORD | Password for your SMTP Server. | optional (required if email services are to be enabled) | |
-| SMTP_AUTHENTICATED | If set to 0, the server will not require SMTP_USER and SMTP_PASSWORD(default is 1) | optional | |
-| SMTP_SECURE_ENABLED | SMTP secure connection. For using TLS, set to 1 else to 0. | optional (required if email services are to be enabled) | |
-| SMTP_REJECT_UNAUTHORIZED_TLS | If set to 0, the server will accept connections without requiring authorization from the list of supplied CAs. | optional | 1 |
-| TURNSTILE_SITE_KEY | Site key for Turnstile. | optional | |
-| TURNSTILE_SECRET_KEY | Secret key for Turnstile. | optional | |
-| GITHUB_ID | Client ID for GitHub. | optional (required if GitHub auth is enabled) | |
-| GITHUB_SECRET | Secret for GitHub. | optional (required if GitHub auth is enabled) | |
-| GOOGLE_CLIENT_ID | Client ID for Google. | optional (required if Google auth is enabled) | |
-| GOOGLE_CLIENT_SECRET | Secret for Google. | optional (required if Google auth is enabled) | |
-| STRIPE_SECRET_KEY | Secret key for Stripe integration. | optional | |
-| STRIPE_WEBHOOK_SECRET | Webhook secret for Stripe integration. | optional | |
-| TELEMETRY_DISABLED | Disables telemetry if set to 1. | optional | |
-| DEFAULT_BRAND_COLOR | Default brand color for your app (Can be overwritten from the UI as well). | optional | #64748b |
-| DEFAULT_ORGANIZATION_ID | Automatically assign new users to a specific organization when joining | optional | |
-| DEFAULT_ORGANIZATION_ROLE | Role of the user in the default organization. | optional | owner |
-| OIDC_DISPLAY_NAME | Display name for Custom OpenID Connect Provider | optional | |
-| OIDC_CLIENT_ID | Client ID for Custom OpenID Connect Provider | optional (required if OIDC auth is enabled) | |
-| OIDC_CLIENT_SECRET | Secret for Custom OpenID Connect Provider | optional (required if OIDC auth is enabled) | |
-| OIDC_ISSUER | Issuer URL for Custom OpenID Connect Provider (should have .well-known configured at this) | optional (required if OIDC auth is enabled) | |
-| OIDC_SIGNING_ALGORITHM | Signing Algorithm for Custom OpenID Connect Provider | optional | RS256 |
-| OPENTELEMETRY_LISTENER_URL | URL for OpenTelemetry listener inside Formbricks. | optional | |
-| CUSTOM_CACHE_DISABLED | Disables custom cache handler if set to 1 (required for deployment on Vercel) | optional | |
-
-Note: If you want to configure something that is not possible via above, please open an issue on our GitHub repo here or reach out to us on Github Discussions and we’ll try our best to work out a solution with you.
-
-## OAuth Configuration
-
-
- Single Sign-On (SSO) functionality, including OAuth integrations with Google, Microsoft Entra ID, Github and OpenID Connect, requires a valid Formbricks Enterprise License.
-
-
-### Google OAuth
-
-Integrating Google OAuth with your Formbricks instance allows users to log in using their Google credentials, ensuring a secure and streamlined user experience. This guide will walk you through the process of setting up Google OAuth for your Formbricks instance.
-
-#### Requirements:
-
-- A Google Cloud Platform (GCP) account.
-- A Formbricks instance running and accessible.
-
-#### Steps:
-
-1. **Create a GCP Project**:
-
- - Navigate to the [GCP Console](https://console.cloud.google.com/).
- - From the projects list, select a project or create a new one.
-
-2. **Setting up OAuth 2.0**:
-
- - If the **APIs & services** page isn't already open, open the console left side menu and select **APIs & services**.
- - On the left, click **Credentials**.
- - Click **Create Credentials**, then select **OAuth client ID**.
-
-3. **Configure OAuth Consent Screen**:
-
- - If this is your first time creating a client ID, configure your consent screen by clicking **Consent Screen**.
- - Fill in the necessary details and under **Authorized domains**, add the domain where your Formbricks instance is hosted.
-
-4. **Create OAuth 2.0 Client IDs**:
- - Select the application type **Web application** for your project and enter any additional information required.
- - Ensure to specify authorized JavaScript origins and authorized redirect URIs.
-
-
-
- ``` {{ title: "Redirect & Origin URLs" }}
- Authorized JavaScript origins: {WEBAPP_URL}
- Authorized redirect URIs: {WEBAPP_URL}/api/auth/callback/google
- ```
-
-
-
-
-5. **Update Environment Variables in Docker**:
- - To integrate the Google OAuth, you have two options: either update the environment variables in the docker-compose file or directly add them to the running container.
- - In your Docker setup directory, open the `.env` file, and add or update the following lines with the `Client ID` and `Client Secret` obtained from Google Cloud Platform:
- - Alternatively, you can add the environment variables directly to the running container using the following commands (replace `container_id` with your actual Docker container ID):
-
-
-
-
-```sh {{ title: 'Shell commands' }}
-docker exec -it container_id /bin/bash
-export GOOGLE_CLIENT_ID=your-client-id-here
-export GOOGLE_CLIENT_SECRET=your-client-secret-here
-exit
-```
-
-```sh {{ title: 'env file' }}
-GOOGLE_CLIENT_ID=your-client-id-here
-GOOGLE_CLIENT_SECRET=your-client-secret-here
-```
-
-
-
-
-6. **Restart Your Formbricks Instance**:
- - **Note:** Restarting your Docker containers may cause a brief period of downtime. Plan accordingly.
- - Once the environment variables have been updated, it's crucial to restart your Docker containers to apply the changes. This ensures that your Formbricks instance can utilize the new Google OAuth configuration for user authentication. Here's how you can do it:
- - Navigate to your Docker setup directory where your `docker-compose.yml` file is located.
- - Run the following command to bring down your current Docker containers and then bring them back up with the updated environment configuration:
-
-### Microsoft Entra ID (Azure Active Directory) SSO OAuth
-
-Do you have a Microsoft Entra ID Tenant? Integrate it with your Formbricks instance to allow users to log in using their existing Microsoft credentials. This guide will walk you through the process of setting up an Application Registration for your Formbricks instance.
-
-#### Requirements
-
-- A Microsoft Entra ID Tenant populated with users. [Create a tenant as per Microsoft's documentation](https://learn.microsoft.com/en-us/entra/fundamentals/create-new-tenant).
-- A Formbricks instance running and accessible.
-- The callback URI for your Formbricks instance: `{WEBAPP_URL}/api/auth/callback/azure-ad`
-
-#### Creating an App Registration
-
-1. Login to the [Microsoft Entra admin center](https://entra.microsoft.com/).
-2. Go to **Applications** > **App registrations** in the left menu.
-
-
-
-3. Click the **New registration** button at the top.
-
-
-
-4. Name your application something descriptive, such as `Formbricks SSO`.
-
-
-
-5. If you have multiple tenants/organizations, choose the appropriate **Supported account types** option. Otherwise, leave the default option for _Single Tenant_.
-
-
-
-6. Under **Redirect URI**, select **Web** for the platform and paste your Formbricks callback URI (see Requirements above).
-
-
-
-7. Click **Register** to create the App registration. You will be redirected to your new app's _Overview_ page after it is created.
-
-8. On the _Overview_ page, under **Essentials**:
-
-- Copy the entry for **Application (client) ID** to populate the `AZUREAD_CLIENT_ID` variable.
-- Copy the entry for **Directory (tenant) ID** to populate the `AZUREAD_TENANT_ID` variable.
-
-
-
-9. From your App registration's _Overview_ page, go to **Manage** > **Certificates & secrets**.
-
-
-
-10. Make sure you have the **Client secrets** tab active, and click **New client secret**.
-
-
-
-11. Enter a **Description**, set an **Expires** period, then click **Add**.
-
-
- You will need to create a new client secret using these steps whenever your chosen expiry period ends.
-
-
-
-
-12. Copy the entry under **Value** to populate the `AZUREAD_CLIENT_SECRET` variable.
-
-
- Microsoft will only show this value to you immediately after creation, and you will not be able to access it again. If you lose it, simply start from step 9 to create a new secret.
-
-
-
-
-13. Update these environment variables in your `docker-compose.yml` or pass it like your other environment variables to the Formbricks container.
-
-
- You must wrap the `AZUREAD_CLIENT_SECRET` value in double quotes (e.g., `"THis~iS4faKe.53CreTvALu3"`) to prevent issues with special characters.
-
-
-An example `.env` for Microsoft Entra ID in Formbricks would look like:
-
-
-
- ```yml {{ title: ".env" }}
- AZUREAD_CLIENT_ID=a25cadbd-f049-4690-ada3-56a163a72f4c
- AZUREAD_TENANT_ID=2746c29a-a3a6-4ea1-8762-37816d4b7885
- AZUREAD_CLIENT_SECRET="THis~iS4faKe.53CreTvALu3"
- ```
-
-
-
-14. Restart your Formbricks instance.
-15. You're all set! Users can now sign up & log in using their Microsoft credentials associated with your Entra ID Tenant.
-
-## OpenID Configuration
-
-Integrating your own OIDC (OpenID Connect) instance with your Formbricks instance allows users to log in using their OIDC credentials, ensuring a secure and streamlined user experience. Please follow the steps below to set up OIDC for your Formbricks instance.
-
-1. Configure your OIDC provider & get the following variables:
- - `OIDC_CLIENT_ID`
- - `OIDC_CLIENT_SECRET`
- - `OIDC_ISSUER`
- - `OIDC_SIGNING_ALGORITHM`
-
-
- Make sure the Redirect URI for your OIDC Client is set to `{WEBAPP_URL}/api/auth/callback/openid`.
-
-
-2. Update these environment variables in your `docker-compose.yml` or pass it directly to the running container.
-
-An example configuration for a FusionAuth OpenID Connect in Formbricks would look like:
-
-
-
- ```yml {{ title: ".env" }}
- OIDC_CLIENT_ID=59cada54-56d4-4aa8-a5e7-5823bbe0e5b7
- OIDC_CLIENT_SECRET=4f4dwP0ZoOAqMW8fM9290A7uIS3E8Xg29xe1umhlB_s
- OIDC_ISSUER=http://localhost:9011
- OIDC_DISPLAY_NAME=FusionAuth OIDC_SIGNING_ALGORITHM=HS256
- ```
-
-
-
-3. Set an environment variable `OIDC_DISPLAY_NAME` to the display name of your OIDC provider.
-
-4. Restart your Formbricks instance.
-
-5. You're all set! Users can now signup & log in using their OIDC credentials.
diff --git a/apps/docs/app/self-hosting/custom-ssl/page.mdx b/apps/docs/app/self-hosting/custom-ssl/page.mdx
deleted file mode 100644
index 036e3d8895..0000000000
--- a/apps/docs/app/self-hosting/custom-ssl/page.mdx
+++ /dev/null
@@ -1,138 +0,0 @@
-export const metadata = {
- title: "Add Custom SSL Certificate to Formbricks",
- description: "Learn how to add a custom SSL certificate to your Formbricks self-hosted instance.",
-};
-
-# Using Formbricks One-Click Setup with a Custom SSL Certificate
-
-
- Formbricks One-Click setup already comes with a valid SSL certificate using Let's Encrypt. This guide is only if you already have a valid SSL certificate that you need to use due to company policy or other requirements.
-
-
-## Introduction
-
-While Formbricks' One-Click setup can automatically create a valid SSL certificate using Let's Encrypt, there are scenarios where a custom SSL certificate is necessary. This is particularly relevant for environments like intranets or other setups with specific certificate requirements, where an internal or custom certificate authority (CA) might be used.
-
-### Step 1: Navigate to the Formbricks Folder
-
-Navigate into the "formbricks" folder that contains all the files from the Formbricks One-Click setup.
-
-```sh
-cd formbricks
-```
-
-### Step 2: Create a Folder for SSL Certificates
-
-Create a new folder named "certs" within the "formbricks" folder. Place your SSL certificate files (`fullchain.crt` and `cert.key`) in this directory.
-
-```sh
-mkdir certs
-# Move your SSL certificate files to the certs folder
-mv /path/to/your/fullchain.crt certs/
-mv /path/to/your/cert.key certs/
-```
-
-### Step 3: Understand SSL Certificate Files
-
-For a custom SSL setup, you need the following files:
-
-- **fullchain.crt**: This file contains your SSL certificate along with the entire certificate chain. The certificate chain includes intermediate certificates that link your SSL certificate to a trusted root certificate.
-- **cert.key**: This is your private key file. It is used to encrypt and decrypt data sent between your server and clients.
-
-### Step 4: Update File Permissions
-
-Ensure the directory and files have appropriate permissions:
-
-```sh
-sudo chown root:root certs/*
-sudo chmod 600 certs/*
-```
-
-### Step 5: Update `traefik.yaml`
-
-Update your `traefik.yaml` file to define entry points for HTTP and HTTPS traffic and set up a provider for Traefik to use Docker and a file-based configuration.
-
-```yaml
-entryPoints:
- web:
- address: ":80"
- http:
- redirections:
- entryPoint:
- to: websecure
- scheme: https
- permanent: true
- websecure:
- address: ":443"
-
-providers:
- docker:
- watch: true
- exposedByDefault: false
- file:
- directory: /etc/traefik/dynamic
-```
-
-### Step 6: Create `certs-traefik.yaml`
-
-Create a `certs-traefik.yaml` file that specifies the path to your custom SSL certificate and key.
-
-```yaml
-tls:
- certificates:
- - certFile: /certs/fullchain.crt
- keyFile: /certs/cert.key
-```
-
-### Step 7: Update `docker-compose.yml`
-
-Update your `docker-compose.yml` file to enforce TLS and link to your custom SSL certificate. Here's an example configuration for both the Formbricks and Traefik services. The rest of the configuration should remain the same as the One-Click setup:
-
-```yaml
-services:
- formbricks:
- restart: always
- image: ghcr.io/formbricks/formbricks:latest
- depends_on:
- - postgres
- labels:
- - "traefik.enable=true" # Enable Traefik for this service
- - "traefik.http.routers.formbricks.rule=Host(`my-domain.com`)" # Use your actual domain or IP
- - "traefik.http.routers.formbricks.entrypoints=websecure" # Use the websecure entrypoint (port 443 with TLS)
- - "traefik.http.routers.formbricks.tls=true" # Enable TLS
- - "traefik.http.services.formbricks.loadbalancer.server.port=3000" # Forward traffic to Formbricks on port 3000
- ports:
- - 3000:3000
- volumes:
- - uploads:/home/nextjs/apps/web/uploads/
- <<: *environment
-
- traefik:
- image: "traefik:v2.7"
- restart: always
- container_name: "traefik"
- depends_on:
- - formbricks
- ports:
- - "80:80"
- - "443:443"
- - "8080:8080"
- volumes:
- - ./traefik.yaml:/traefik.yaml
- - ./acme.json:/acme.json
- - /var/run/docker.sock:/var/run/docker.sock:ro
- - ./certs:/certs
- - ./certs-traefik.yaml:/etc/traefik/dynamic/certs-traefik.yaml
-```
-
-### Summary
-
-1. **Navigate to the Formbricks Folder**: Move into the "formbricks" directory.
-2. **Create a Folder for SSL Certificates**: Create a "certs" folder and place your `fullchain.crt` and `cert.key` files inside it.
-3. **Understand SSL Certificate Files**: Ensure you have the `fullchain.crt` and `cert.key` files.
-4. **Update File Permissions**: Ensure the certificate files have the correct permissions.
-5. **Update `traefik.yaml`**: Define entry points and remove certificate resolvers.
-6. **Create `certs-traefik.yaml`**: Specify the paths to your SSL certificate and key.
-7. **Update `docker-compose.yml`**: Configure Traefik labels to enforce TLS and mount the certificate directory.
-
-This setup ensures that Formbricks uses your custom SSL certificate for secure communications, suitable for environments with special certificate requirements.
diff --git a/apps/docs/app/self-hosting/docker/page.mdx b/apps/docs/app/self-hosting/docker/page.mdx
deleted file mode 100644
index af2926dd26..0000000000
--- a/apps/docs/app/self-hosting/docker/page.mdx
+++ /dev/null
@@ -1,229 +0,0 @@
-export const metadata = {
- title: "Guide to Deploying Formbricks Using Docker",
- description:
- "Step-by-step tutorial on how to effortlessly set up and run Formbricks via Docker. Explore the quick deployment process with Docker-Compose, learn how to update Formbricks, and troubleshoot common issues. Ideal for those looking for a hassle-free Formbricks experience",
-};
-
-#### Self-Hosting
-
-# Advanced Setup
-
-Quickly set up and start using Formbricks with our [official Docker image](https://github.com/formbricks/formbricks/pkgs/container/formbricks) that we've already built for you.
-
-The pre-built image is ready-to-run, and it only requires minimal configuration on your part. It's as easy as downloading the Docker image and firing up the container.
-
-### Requirements
-
-Ensure `docker` & `docker compose` are installed on your server/system. Both are typically included with Docker utilities, like Docker Desktop and Rancher Desktop.
-
-
- `docker compose` without the hyphen is now the primary method of using docker-compose, according to the Docker documentation.
-
-
-## Start
-
-1. **Create a New Directory for Formbricks**
-
-Open a terminal and create a new directory for Formbricks, then navigate into this new directory:
-
-
-
-
- ```bash
- mkdir formbricks-quickstart && cd formbricks-quickstart
- ```
-
-
-
-
-
-2. **Download the Docker-Compose File**
-
-Download the docker-compose file directly from the Formbricks repository:
-
-
-
-
- ```bash
- curl -o docker-compose.yml https://raw.githubusercontent.com/formbricks/formbricks/main/docker/docker-compose.yml
- ```
-
-
-
-
-
-3. **Generate NextAuth Secret**
-
-Next, you need to generate a NextAuth secret. This will be used for session signing and encryption. The `sed` command below generates a random string using `openssl`, then replaces the `NEXTAUTH_SECRET:` placeholder in the `docker-compose.yml` file with this generated secret:
-
-
-
-
- ```bash
- sed -i "/NEXTAUTH_SECRET:$/s/NEXTAUTH_SECRET:.*/NEXTAUTH_SECRET: $(openssl rand -hex 32)/" docker-compose.yml
- ```
-
-
-
-
-
-4. **Generate Encryption Key**
-
-Next, you need to generate an Encryption Key. This will be used for authenticating and verifying 2 Factor Authentication. The `sed` command below generates a random string using `openssl`, then replaces the `ENCRYPTION_KEY:` placeholder in the `docker-compose.yml` file with this generated secret:
-
-
-
-
- ```bash
- sed -i "/ENCRYPTION_KEY:$/s/ENCRYPTION_KEY:.*/ENCRYPTION_KEY: $(openssl rand -hex 32)/" docker-compose.yml
- ```
-
-
-
-
-
-5. **Generate Cron Secret**
-
-Next, you need to generate a Cron secret. This will be used as an API Secret for running cron jobs. The `sed` command below generates a random string using `openssl`, then replaces the `CRON_SECRET:` placeholder in the `docker-compose.yml` file with this generated secret:
-
-
-
-
- ```bash
- sed -i "/CRON_SECRET:$/s/CRON_SECRET:.*/CRON_SECRET: $(openssl rand -hex 32)/" docker-compose.yml
- ```
-
-
-
-
-
-6. **Start the Docker Setup**
-
-You're now ready to start the Formbricks Docker setup. The following command will start Formbricks together with a postgreSQL database using Docker Compose:
-
-
-
-
-```bash
- docker compose up -d
-```
-
-
-
- The `-d` flag will run the containers in detached mode, meaning they'll run in the background.
-
-7. **Visit Formbricks in Your Browser**
-
- After starting the Docker setup, visit http://localhost:3000 in your browser to interact with the Formbricks application. The first time you access this page, you'll be greeted by a setup wizard. Follow the prompts to define your first user and get started.
-
-## Update
-
-
- Please take a look at our [migration guide](/self-hosting/migration-guide) for version specific steps to update Formbricks.
-
-
-1. Pull the latest Formbricks image
-
-
-
-
-```bash
-formbricks-quickstart-formbricks-1 | All migrations have been successfully applied.
-formbricks-quickstart-formbricks-1 |
-formbricks-quickstart-formbricks-1 | - info Loaded env from /home/nextjs/apps/web/.env
-formbricks-quickstart-formbricks-1 | Listening on port 3000 url: http://:3000
-```
-
-
-
-You can close the logs again with `CTRL + C`.
-
-
-## Customizing environment variables
-
-To edit any of the available environment variables, check out our [Configure](/self-hosting/configuration) section!
-
-
-
-Still facing issues? [Join our Github Discussions](https://github.com/formbricks/formbricks/discussions) and we'd be glad to assist you!
diff --git a/apps/docs/app/self-hosting/integrations/images/airtable/create-new-integration.webp b/apps/docs/app/self-hosting/integrations/images/airtable/create-new-integration.webp
deleted file mode 100644
index a55bdc618d..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/airtable/create-new-integration.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/airtable/development-use-warning.webp b/apps/docs/app/self-hosting/integrations/images/airtable/development-use-warning.webp
deleted file mode 100644
index 8b74880552..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/airtable/development-use-warning.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/airtable/open-developer-hub.webp b/apps/docs/app/self-hosting/integrations/images/airtable/open-developer-hub.webp
deleted file mode 100644
index 648aab6598..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/airtable/open-developer-hub.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/airtable/register-new-integration.webp b/apps/docs/app/self-hosting/integrations/images/airtable/register-new-integration.webp
deleted file mode 100644
index 331ea78dfd..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/airtable/register-new-integration.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/airtable/select-scopes.webp b/apps/docs/app/self-hosting/integrations/images/airtable/select-scopes.webp
deleted file mode 100644
index f60e8ca7f4..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/airtable/select-scopes.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/add-api-key.webp b/apps/docs/app/self-hosting/integrations/images/n8n/add-api-key.webp
deleted file mode 100644
index d015ff537d..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/add-api-key.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/add-discord.webp b/apps/docs/app/self-hosting/integrations/images/n8n/add-discord.webp
deleted file mode 100644
index e5f7b5c59a..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/add-discord.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/add-formbricks-trigger.webp b/apps/docs/app/self-hosting/integrations/images/n8n/add-formbricks-trigger.webp
deleted file mode 100644
index f6219251e3..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/add-formbricks-trigger.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/create-new-credential-btn.webp b/apps/docs/app/self-hosting/integrations/images/n8n/create-new-credential-btn.webp
deleted file mode 100644
index bfc1a0c7dc..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/create-new-credential-btn.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/discord-response.webp b/apps/docs/app/self-hosting/integrations/images/n8n/discord-response.webp
deleted file mode 100644
index 5d39b9cc91..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/discord-response.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/fill-discord-details.webp b/apps/docs/app/self-hosting/integrations/images/n8n/fill-discord-details.webp
deleted file mode 100644
index 56dc5b6ef3..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/fill-discord-details.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/listen-for-event.webp b/apps/docs/app/self-hosting/integrations/images/n8n/listen-for-event.webp
deleted file mode 100644
index a08211e4b9..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/listen-for-event.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/select-event.webp b/apps/docs/app/self-hosting/integrations/images/n8n/select-event.webp
deleted file mode 100644
index 54c613ed25..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/select-event.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/select-survey.webp b/apps/docs/app/self-hosting/integrations/images/n8n/select-survey.webp
deleted file mode 100644
index f10c163bcf..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/select-survey.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/selected-surveys.webp b/apps/docs/app/self-hosting/integrations/images/n8n/selected-surveys.webp
deleted file mode 100644
index a1619783e1..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/selected-surveys.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/submit-test-response.webp b/apps/docs/app/self-hosting/integrations/images/n8n/submit-test-response.webp
deleted file mode 100644
index 735e6eb951..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/submit-test-response.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/success-connection.webp b/apps/docs/app/self-hosting/integrations/images/n8n/success-connection.webp
deleted file mode 100644
index 888369916a..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/success-connection.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/n8n/test-response-success.webp b/apps/docs/app/self-hosting/integrations/images/n8n/test-response-success.webp
deleted file mode 100644
index c25cdf6336..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/n8n/test-response-success.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/zapier/add-new-zap.webp b/apps/docs/app/self-hosting/integrations/images/zapier/add-new-zap.webp
deleted file mode 100644
index 4f4ff0cec2..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/zapier/add-new-zap.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/zapier/choose-event.webp b/apps/docs/app/self-hosting/integrations/images/zapier/choose-event.webp
deleted file mode 100644
index 9eacab449f..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/zapier/choose-event.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/zapier/connect-with-formbricks-1.webp b/apps/docs/app/self-hosting/integrations/images/zapier/connect-with-formbricks-1.webp
deleted file mode 100644
index d7b6b8ccde..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/zapier/connect-with-formbricks-1.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/zapier/connect-with-formbricks-2.webp b/apps/docs/app/self-hosting/integrations/images/zapier/connect-with-formbricks-2.webp
deleted file mode 100644
index c5b7fa12c1..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/zapier/connect-with-formbricks-2.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/images/zapier/success-connected.webp b/apps/docs/app/self-hosting/integrations/images/zapier/success-connected.webp
deleted file mode 100644
index 987cfaa9d2..0000000000
Binary files a/apps/docs/app/self-hosting/integrations/images/zapier/success-connected.webp and /dev/null differ
diff --git a/apps/docs/app/self-hosting/integrations/page.mdx b/apps/docs/app/self-hosting/integrations/page.mdx
deleted file mode 100644
index fe3ad065ac..0000000000
--- a/apps/docs/app/self-hosting/integrations/page.mdx
+++ /dev/null
@@ -1,378 +0,0 @@
-import { MdxImage } from "@/components/mdx-image";
-
-import CreateNewIntegration from "./images/airtable/create-new-integration.webp";
-import DevelopmentUseWarning from "./images/airtable/development-use-warning.webp";
-import OpenDeveloperHub from "./images/airtable/open-developer-hub.webp";
-import RegisterNewIntegration from "./images/airtable/register-new-integration.webp";
-import SelectScopes from "./images/airtable/select-scopes.webp";
-
-import AddApiKey from "./images/n8n/add-api-key.webp";
-import AddDiscord from "./images/n8n/add-discord.webp";
-import AddFormbricksTrigger from "./images/n8n/add-formbricks-trigger.webp";
-import CreateNewCredentialBtn from "./images/n8n/create-new-credential-btn.webp";
-import DiscordResponse from "./images/n8n/discord-response.webp";
-import FillDiscordDetails from "./images/n8n/fill-discord-details.webp";
-import ListenForEvent from "./images/n8n/listen-for-event.webp";
-import SelectEvent from "./images/n8n/select-event.webp";
-import SelectSurvey from "./images/n8n/select-survey.webp";
-import SelectedSurveys from "./images/n8n/selected-surveys.webp";
-import SubmitTestResponse from "./images/n8n/submit-test-response.webp";
-import SuccessConnection from "./images/n8n/success-connection.webp";
-import TestResponseSuccess from "./images/n8n/test-response-success.webp";
-
-import AddNewZap from "./images/zapier/add-new-zap.webp";
-import ChooseEvent from "./images/zapier/choose-event.webp";
-import ConnectWithFB1 from "./images/zapier/connect-with-formbricks-1.webp";
-import ConnectWithFB2 from "./images/zapier/connect-with-formbricks-2.webp";
-import SuccessConnectionZapier from "./images/zapier/success-connected.webp";
-
-export const metadata = {
- title: "Setting up Integrations for Self Hosted Formbricks",
- description: "Configure third-party integrations with your self-hosted Formbricks instance.",
-};
-
-# Integrations
-
-### Overview
-
-We have step-by-step guides to configure our third-party integrations with a self hosted Formbricks instance. We currently support the below integrations, click on them to see their individual guides:
-
-- [Airtable](#airtable)
-- [Google Sheets](#google-sheets)
-- [Notion](#notion)
-- Make: We do not support for self-hosted instances yet.
-- [n8n](#n8n)
-- [Slack](#slack)
-- Wordpress: Wordpress setup is similar to the [Cloud setup](/developer-docs/integrations/wordpress), just change the API Host to your self-hosted URL.
-- [Zapier](#zapier)
-
-
- Once you’ve configured your integration, See our Integration sections to see how to use them within your Formbricks app [here](/developer-docs/integrations/airtable)
-
-
-### Step by Step Guides
-
-## Airtable
-
-Enabling the Airtable Integration in a self-hosted environment requires creating an airtable account and changing the environment variables of your Formbricks instance.
-
-
- If your Airtable app is in development use, please ensure that the email used in the Airtable integration matches the email used in the Airtable OAuth app. To use other email addresses, you need to fill this information in your OAuth app settings again:
-
-
-
-
-1. Go to the [Airtable](https://airtable.com) and create a new account if you dont already have one.
-
-2. Click on user icon on top left and open to **Developer hub**
-
-
-
-3. Navigate to OAuth integrations and click on **Register an OAuth integrations**
-
-
-
-3. Select a name for you integration and also add a redirect URL which will be `/api/v1/integrations/airtable/callback`
-
-
-
-4. Now fill some basic details about your integrations and then go to scope section. You need to **enable** 5 scopes:
-
- - data.records:read
- - data.records:write
- - schema.bases:read
- - schema.bases:write
- - user.email:read
-
-
-
-5. Click on the "Save" button and you are done
-6. Now just copy **Client ID** for your integration & add it to your **Formbricks environment variables** as in the docker compose file:
-
-- `AIRTABLE_CLIENT_ID`
-
-Voila! You have successfully enabled the Airtable integration in your self-hosted Formbricks instance. Now you can follow the steps mentioned in [Airtable Integration with Formbricks](/developer-docs/integrations/airtable) section to link an Airtable with Formbricks.
-
-## Google Sheets
-
-Integrating Google Sheets with a self-hosted Formbricks instance requires configuring Google Cloud and updating your environment variables.
-
-
- If your Google Cloud Console project has a publishing status of "Testing" your refresh token will expire after 7 days. To avoid that, you need to change the publishing status to "Production". [Google OAuth 2.0 documentation](https://developers.google.com/identity/protocols/oauth2?hl=en#expiration)
-
-
-1. Go to the **[Google Cloud Console](https://console.cloud.google.com/)** and **create a new project**.
-2. Enable necessary APIs:
- - Now select the project you just created and go to the **APIs & Services** section.
- - Click on the **Enable APIs and Services** button and search for **Google Sheets API** and enable it.
-3. Configure OAuth Consent Screen:
- - Go to **OAuth Consent screen** and select the appropriate User Type (External or Internal). Select **Internal** if you want only the users of your Google Workspace to be able to use the integration.
- - Fill the required details:
- - App name: Name displayed during OAuth authentication.
- - User support email and Developer contact information: Your contact details for support.
- - Click on **Save and Continue**.
-4. Add required Scopes:
-
-- Click on the **Add or Remove Scopes** button and add the scopes:
- - `https://www.googleapis.com/auth/userinfo.email`
- - `https://www.googleapis.com/auth/spreadsheets`
-- Click on the **Update** button. Verify the scopes and click on the **Save and Continue** button.
-- Skip the **Test Users** section and click on the **Save and Continue** button.
-
-5. View the OAuth Consent Screen summary and click on the **Back to Dashboard** button.
-6. Register OAuth Client:
-
-- Navigate to **Credentials** > **Create Credentials** > **OAuth Client ID**.
-- Select **Web Application** and set:
- - Name: Name of the OAuth Client ID.
- - Authorized JavaScript Origins: `https://`
- - Authorized redirect URIs: `https:///api/google-sheet/callback`
-- Save and note the Client ID and Client Secret.
-
-7. Copy the Client ID and Client Secret and set them as environment variables in your Formbricks instance:
- - `GOOGLE_SHEETS_CLIENT_ID`
- - `GOOGLE_SHEETS_CLIENT_SECRET`
- - `GOOGLE_SHEETS_REDIRECT_URL`
-
-Now just copy **GOOGLE_SHEETS_CLIENT_ID**, **GOOGLE_SHEETS_CLIENT_SECRET** and **GOOGLE_SHEETS_REDIRECT_URL** for your integration & add it to your **Formbricks environment variables** as in the docker compose file:
-
-- `GOOGLE_SHEETS_CLIENT_ID`
-- `GOOGLE_SHEETS_CLIENT_SECRET`
-- `GOOGLE_SHEETS_REDIRECT_URL`
-
-Voila! You have successfully enabled the Google Sheets integration in your self-hosted Formbricks instance. Now you can follow the steps mentioned in [Google Sheets Integration with Formbricks](/developer-docs/integrations/google-sheets) section to link a Google Sheet with Formbricks.
-
-## Notion:
-
-Enabling the Notion Integration in a self-hosted environment requires a setup using Notion account and changing the environment variables of your Formbricks instance.
-
-1. Sign up for a **[Notion](https://www.notion.so/)** account, if you don't have one already.
-2. Go to the **[my integrations](https://www.notion.so/my-integrations)** page and click on **New integration**.
-3. Fill up the basic information like **Name**, **Logo** and click on **Submit**.
-4. Now, click on **Distribution** tab on the sidebar. A text will appear which will ask you to make the integration public. Click on that toggle button. A form will appear below the text.
-5. Now provide it the details such as requested. Under **Redirect URIs** field:
- - If you are running formbricks locally, you can enter `http://localhost:3000/api/v1/integrations/notion/callback`.
- - Or, you can enter `https:///api/v1/integrations/notion/callback`
-6. Once you've filled all the necessary details, click on **Submit**.
-7. Now just copy from the screen the **Client ID** and **Client secret** for your integration & add it to your **Formbricks environment variables** as in the docker compose file:
- - `NOTION_OAUTH_CLIENT_ID` - OAuth Client ID
- - `NOTION_OAUTH_CLIENT_SECRET` - OAuth Client Secret
-
-Voila! You have successfully enabled the Notion integration in your self-hosted Formbricks instance. Now you can follow the steps mentioned in [Notion Integration with Formbricks](/developer-docs/integrations/notion) section to link your Notion with Formbricks.
-
-## n8n
-
-Enabling the n8n integration in a self-hosted environment requires a new workflow setup using n8n and changing the environment variables of your Formbricks instance.
-
-1.Setup your n8n workflow: Go to [n8n.io](https://n8n.io) and create a new workflow. Search for “Formbricks” to get started:
-
-
-
-2.Connect Formbricks with n8n: Now, you have to connect n8n with Formbricks via an API Key:
-
-
-
-3. Click on Create New Credentail button to add your host and API Key
-
-
-
-Now you need an API key. Please refer to the [API Key Setup](/additional-features/api#how-to-generate-an-api-key) page to learn how to create one.
-
-Once you copied it in the API Key field, hit Save button to test the connection and save the credentials.
-
-
-
-4. Select Event: Next, you can choose the event you want to trigger the node on. You can select multiple events:
-
-
-
-Here, we are adding `Response Finished` as an event, which will trigger when the survey has been filled out.
-
-5. Select Survey: Next, you can choose from all the surveys you have created in this environment. You can select multiple surveys:
-
-
-
-Here, we are selecting two surveys.
-
-
-
-6. Test your trigger: In order to set up n8n you'll need a test response in the selected survey. This allows you to select the individual values of each response in your workflow. If you have Formbricks running locally and you want to set up an app survey, you can use our [Demo App](/contributing/demo) to trigger a survey and submit a response.
-
-
-
-Next, click on Listen for event button.
-
-
-
-Then, go to the survey which you selected. Fill it out, and wait for the particular event to trigger (in this case it's `Response Finished`). Once the event is triggered you will see the response that you filled out in the survey.
-
-
-
-Now you have all the data you need at hand. The next steps depend on what you want to do with it. In this tutorial, we will send submissions to a discord channel:
-
-7. Add discord to your workflow: Click on the plus and search `Discord`.
-
-
-
-Fill in the `Webhook URL` and the `Content` that you want to receive in the respective discord channel. Next, click on `Execute Node` button to test the node.
-
-
-
-Once the execution is successful, you'll receive the content in the discord channel.
-
-
-
-Voila! You have successfully enabled the n8n integration in your self-hosted Formbricks instance. Now you can follow the steps mentioned in the [Formbricks](/developer-docs/integrations/n8n) Integrations section to know more about the capabilities with Formbricks with n8n.
-
-## Slack
-
-Enabling the Slack Integration in a self-hosted environment requires a setup using slack workspace account and changing the environment variables of your Formbricks instance.
-
- Make sure your self hosted Formbricks instance works with SSL as Slack requires it.
-
-1. Create a Slack workspace if you don't have one already.
-2. Go to the [Your apps](https://api.slack.com/apps) page and **Create New App**.
-3. Click on **From Scratch** and provide the **App Name** and select your workspace in **Pick a workspace to develop your app in:** dropdown. Click on **Create App**.
-4. Go to the **OAuth & Permissions** tab on the sidebar and add the following **Bot Token Scopes**:
-
- - `channels:read`
- - `groups:read`
- - `chat:write`
- - `chat:write.public`
- - `chat:write.customize`
-
-5. Add the **Redirect URLs** under **OAuth & Permissions** tab. You can add the following URLs:
-
- - If you are running formbricks locally, you can enter `https://localhost:3000/api/v1/integrations/slack/callback`.
- - Or, you can enter `https:///api/v1/integrations/slack/callback`
-
-6. Now, click on **Install to Workspace** and **Allow** the permissions.
-7. Go to the **Basic Information** tab on the sidebar and copy the **Client ID** and **Client Secret**. Copy them & add it to your **Formbricks environment variables** as in the docker compose file:
-
-- `SLACK_CLIENT_ID` - OAuth Client ID
-- `SLACK_CLIENT_SECRET` - OAuth Client Secret
-
-8. Now, you need to enable the public distribution of your app. Go to the **Basic Information** tab and click on the **Manage distribution** button and click on the "Distribute App".
-9. Scroll down to the **Share your app with other workspaces** section, complete the checklist and click on the **Activate public distribution** button.
-
-Voila! You have successfully enabled the Slack integration in your self-hosted Formbricks instance. Now you can follow the steps mentioned in the [Slack Integration](/developer-docs/integrations/slack) section to link a Slack workspace with Formbricks.
-
-## Zapier
-
-1. Setup your Zap: Go to [zapier.com](https://zapier.com/) and create a new Zap. Search for “Formbricks” to get started:
-
-
-
-Then, choose the event you want to trigger the Zap on:
-
-
-
-1. Connect Formbricks with Zapier: You have to connect Zapier with Formbricks via an API Key:
-
-
-
-
-Now you need an API key. Please refer to the [API Key Setup](/developer-docs/rest-api##how-to-generate-an-api-key) page to learn how to create one.
-
-Once you copied it in the newly opened Zapier window, you will be connected:
-
-
-
-Voila! You have successfully configured Zapier to work with your self-hosted Formbricks instance. Now you can follow the steps mentioned in the [Zapier Integration](/developer-docs/integrations/zapier) section to connect it with your Formbricks app and see it live.
-
----
diff --git a/apps/docs/app/self-hosting/kubernetes/page.mdx b/apps/docs/app/self-hosting/kubernetes/page.mdx
deleted file mode 100644
index 324ddecbca..0000000000
--- a/apps/docs/app/self-hosting/kubernetes/page.mdx
+++ /dev/null
@@ -1,158 +0,0 @@
-export const metadata = {
- title: "Kubernetes Deployment",
- description: "Deploy Formbricks on a Kubernetes cluster using Helm.",
-};
-
-# Deploying Formbricks on Kubernetes
-
-This guide explains how to deploy Formbricks on a **Kubernetes cluster** using **Helm**. It assumes that:
-- You **already have a Kubernetes cluster** running (e.g., DigitalOcean, GKE, AWS, Minikube).
-- An **Ingress controller** (e.g., Traefik, Nginx) is configured.
-- You have **Helm installed** on your local machine.
-
----
-
-## 🚀 **Step 1: Install Formbricks with Helm**
-
-### **1️⃣ Clone the Formbricks Helm Chart**
-```sh
-git clone https://github.com/formbricks/formbricks.git
-cd formbricks/helm-chart
-```
-
-### **2️⃣ Deploy Formbricks**
-```sh
- helm install my-formbricks ./ \
- --namespace formbricks \
- --create-namespace \
- --set replicaCount=2
-```
-
-
-## 🎯 **Step 2: Verify and Access Formbricks**
-### **Check the Running Services**
-```sh
-kubectl get pods -n formbricks
-kubectl get svc -n formbricks
-kubectl get ingress -n formbricks
-```
-
-### **Access Formbricks**
-- If running locally with **Minikube**:
- ```sh
- minikube service my-formbricks -n formbricks
- ```
-- If deployed on a **cloud cluster**, visit:
- ```
- https://formbricks.example.com
- ```
-
----
-
-## Upgrading Formbricks
-
-This section provides guidance on how to upgrade your Formbricks deployment using Helm, including examples of common upgrade scenarios.
-
-### Upgrade Process
-
-To upgrade your Formbricks deployment when using a local chart (e.g., with Minikube), use:
-
-```bash
-# From the helm-chart directory
-helm upgrade my-formbricks ./ --namespace formbricks
-```
-
-For installations from the Helm repository (typically for production deployments):
-```bash
-helm repo update
-helm upgrade my-formbricks formbricks/formbricks --namespace formbricks
-```
-
-### Common Upgrade Scenarios
-
-#### 1. Updating Environment Variables
-
-To update or add new environment variables, use the `--set` flag with the `env` prefix:
-
-```bash
-helm upgrade my-formbricks formbricks/formbricks \
- --set env.SMTP_HOST=new-smtp.example.com \
- --set env.SMTP_PORT=587 \
- --set env.NEW_CUSTOM_VAR=newvalue
-```
-
-This command updates the SMTP host and port, and adds a new custom environment variable.
-
-#### 2. Enabling or Disabling Features
-
-You can enable or disable features by updating their respective values:
-
-```bash
-# Disable Redis
-helm upgrade my-formbricks formbricks/formbricks --set redis.enabled=false
-
-# Enable Redis
-helm upgrade my-formbricks formbricks/formbricks --set redis.enabled=true
-```
-
-#### 3. Scaling Resources
-
-To adjust resource allocation:
-
-```bash
-helm upgrade my-formbricks formbricks/formbricks \
- --set resources.limits.cpu=1 \
- --set resources.limits.memory=2Gi \
- --set resources.requests.cpu=500m \
- --set resources.requests.memory=1Gi
-```
-
-#### 4. Updating Autoscaling Configuration
-
-To modify autoscaling settings:
-
-```bash
-helm upgrade my-formbricks formbricks/formbricks \
- --set autoscaling.minReplicas=3 \
- --set autoscaling.maxReplicas=10 \
- --set autoscaling.metrics[0].resource.target.averageUtilization=75
-```
-
-#### 5. Changing Database Credentials
-
-To update PostgreSQL database credentials:
-To switch from the built-in PostgreSQL to an external database or update the external database credentials:
-
-```bash
-helm upgrade my-formbricks formbricks/formbricks \
- --set postgresql.enabled=false \
- --set postgresql.externalUrl="postgresql://newuser:newpassword@external-postgres-host:5432/newdatabase"
-```
-
-This command disables the built-in PostgreSQL and configures Formbricks to use an external PostgreSQL database. Make sure your external database is set up and accessible before making this change.
-
-
-
-## Full Values Documentation
-
-Below is a comprehensive list of all configurable values in the Formbricks Helm chart:
-
-| Field | Description | Default |
-| ----------------------------------------------------------- | ------------------------------------------ | ------------------------------- |
-| `image.repository` | Docker image repository for Formbricks | `ghcr.io/formbricks/formbricks` |
-| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
-| `image.tag` | Docker image tag | `"2.6.0"` |
-| `service.type` | Kubernetes service type | `ClusterIP` |
-| `service.port` | Kubernetes service port | `80` |
-| `service.targetPort` | Container port to expose | `3000` |
-| `resources.limits.cpu` | CPU resource limit | `500m` |
-| `resources.limits.memory` | Memory resource limit | `1Gi` |
-| `resources.requests.cpu` | Memory resource request | `null` |
-| `resources.requests.memory` | Memory resource request | `null` |
-| `autoscaling.enabled` | Enable autoscaling | `false` |
-| `autoscaling.minReplicas` | Minimum number of replicas | `1` |
-| `autoscaling.maxReplicas` | Maximum number of replicas | `5` |
-| `autoscaling.metrics[0].type` | Type of metric for autoscaling | `Resource` |
-| `autoscaling.metrics[0].resource.name` | Resource name for autoscaling metric | `cpu` |
-| `autoscaling.metrics[0].resource.target.type` | Target type for autoscaling | `Utilization` |
-| `autoscaling.metrics[0].resource.target.averageUtilization` | Average utilization target for autoscaling | `80`
\ No newline at end of file
diff --git a/apps/docs/app/self-hosting/license/page.mdx b/apps/docs/app/self-hosting/license/page.mdx
deleted file mode 100644
index 651a8c5e30..0000000000
--- a/apps/docs/app/self-hosting/license/page.mdx
+++ /dev/null
@@ -1,111 +0,0 @@
-export const metadata = {
- title: "About the Formbricks Open-Source License",
- description: "The Formbricks core is available under the AGPLv3 license",
-};
-
-#### Self-Hosting
-
-# License
-
-The Formbricks core source code is licensed under AGPLv3 and available on GitHub. Additionally, we offer features for bigger organisations & enterprises under a separate, paid Enterprise License. This assures the long-term sustainability of the open source project. All free features are listed [below](#what-features-are-free).
-
-
- Want to get your hands on the Enterprise Edition? Request a free 30-day Enterprise Edition trial by [filling out the form below.](#30-day-trial-license-request) No call needed or strings attached 🤙
-
-
-## Enterprise Edition
-
-Additional to the AGPLv3 licensed Formbricks core, the Formbricks repository contains code licensed under our **[Enterprise License](https://github.com/formbricks/formbricks/blob/main/apps/web/modules/ee/LICENSE)**. This additional functionality is not part of the AGPLv3 licensed Formbricks core and is designed to meet the needs of larger teams and enterprises. This advanced functionality is already included in the Docker images, but you need an **Enterprise License Key** to unlock it. For the pricing, please refer to [Formbricks Pricing](https://formbricks.com/pricing) or [get in touch](https://cal.com/johannes/license).
-
-## When do I need an Enterprise License?
-
-| | Community Edition | Enterprise License |
-| ------------------------------------------------------------- | ----------------- | ------------------ |
-| Self-host for commercial purposes | ✅ | No license needed |
-| Fork codebase, make changes, release under AGPLv3 | ✅ | No license needed |
-| Fork codebase, make changes, **keep private** | ❌ | ✅ |
-| Unlimited responses | ✅ | No license needed |
-| Unlimited surveys | ✅ | No license needed |
-| Unlimited users | ✅ | No license needed |
-| Projects | 3 | Unlimited |
-| Use any of the other [free features](#what-features-are-free) | ✅ | No license needed |
-| Remove branding ⚠️ Changed with 3.0 ⚠️ | ❌ | ✅ |
-| SSO ⚠️ Changed with 3.0 ⚠️ | ❌ | ✅ |
-| Contacts & Targeting ⚠️ Changed with 3.0 ⚠️ | ❌ | ✅ |
-| Teams & access roles | ❌ | ✅ |
-| Cluster support | ❌ | ✅ |
-| Use any of the [paid features](#what-features-are-free) | ❌ | ✅ |
-
-Ready to get started with the Enterprise Edition? Fill out our form below and we'll reach out to you.
-
-## 30-day Trial License Request
-
-Many organisations want to do an internal test run with the Enterprise Edition. To make that really easy, we offer a 30-day trial license. Just fill out the form below and we'll send you a license key within 24 hours (business days):
-
-
-
-
-
-## Open Core Licensing
-
-### The AGPL Formbricks Core
-
-The Formbricks core application is licensed under the **[AGPLv3 Open Source License](https://github.com/formbricks/formbricks/blob/main/LICENSE)**. The core application is fully functional and includes everything you need to design & run link surveys, website surveys and in-app surveys. You can use the software for free for personal and commercial use. You're also allowed to create and distribute modified versions as long as you document the changes you make incl. date and **publish your complete code under the AGPLv3 license as well.**
-
-### The Enterprise Edition
-
-Additional to the AGPL licensed Formbricks core, this repository contains code licensed under an Enterprise license. The **[code](https://github.com/formbricks/formbricks/tree/main/apps/web/modules/ee)** and **[license](https://github.com/formbricks/formbricks/blob/main/apps/web/modules/ee/LICENSE)** for the enterprise functionality can be found in the `/apps/web/modules/ee` folder of this repository. This additional functionality is not part of the AGPLv3 licensed Formbricks core and is designed to meet the needs of larger teams and enterprises. This advanced functionality is already included in the Docker images, but you need an **[Enterprise License Key](https://formbricks.com/docs/self-hosting/enterprise)** to unlock it.
-
-## White-Labeling Formbricks and Other Licensing Needs
-
-We currently do not offer Formbricks white-labeled. Any other needs? [Send us an email](mailto:hola@formbricks.com).
-
-## Why charge for Enterprise Features?
-
-The Enterprise Edition allows us to fund the development of Formbricks sustainably. It guarantees that the open-source surveying infrastructure we're building will be around for decades to come.
-
-## What features are free?
-
-| Feature | Community Edition | Enterprise Edition |
-| ---------------------------------------------- | ----------------- | ------------------ |
-| Unlimited surveys | ✅ | ✅ |
-| Website & App surveys | ✅ | ✅ |
-| Link surveys | ✅ | ✅ |
-| Email embedded surveys | ✅ | ✅ |
-| Advanced logic | ✅ | ✅ |
-| Custom styling | ✅ | ✅ |
-| Custom URL | ✅ | ✅ |
-| Recall information | ✅ | ✅ |
-| All question types | ✅ | ✅ |
-| Multi-media backgrounds | ✅ | ✅ |
-| Partial responses | ✅ | ✅ |
-| File upload | ✅ | ✅ |
-| Hidden fields | ✅ | ✅ |
-| Single-use links | ✅ | ✅ |
-| Pin-protected surveys | ✅ | ✅ |
-| Full API Access | ✅ | ✅ |
-| All SDKs | ✅ | ✅ |
-| Webhooks | ✅ | ✅ |
-| Email follow-ups | ✅ | ✅ |
-| Multi-language UI | ✅ | ✅ |
-| All integrations (Slack, Zapier, Notion, etc.) | ✅ | ✅ |
-| Remove branding | ❌ | ✅ |
-| Teams & access roles | ❌ | ✅ |
-| Contact management & segments | ❌ | ✅ |
-| AI analysis | ❌ | ✅ |
-| Multi-language surveys | ❌ | ✅ |
-| Single sign-on (SSO) | ❌ | ✅ |
-| Helm charts | ❌ | ✅ |
-| White-glove onboarding | ❌ | ✅ |
-| Support SLAs | ❌ | ✅ |
-
-**Any more questions?**: [Send us an email](mailto:johannes@formbricks.com) or [book a call with us.](https://cal.com/johannes/license)
diff --git a/apps/docs/app/self-hosting/migration-guide/page.mdx b/apps/docs/app/self-hosting/migration-guide/page.mdx
deleted file mode 100644
index f8bb9a0fdf..0000000000
--- a/apps/docs/app/self-hosting/migration-guide/page.mdx
+++ /dev/null
@@ -1,1273 +0,0 @@
-export const metadata = {
- title: "Migrating Formbricks to the Latest Version",
- description:
- "Each Latest Version of Formbricks comes with an exciting set of new features & functionality while cutting down significantly on the bugs at the same time! No need to build the image again! This guide will help you migrate your existing Formbricks instance to the up-to-date instance",
-};
-
-#### Self-Hosting
-
-# Migration Guide
-
-## v3.1
-
-
- We released a new automatic data migration approach with Formbricks 3.0. If you are on a version older than v2.7, you need to migrate step-by-step through the earlier versions first (e.g. 2.4 → 2.5 → 2.6 → 2.7). After you have reached v2.7, you can upgrade directly to any v3.x and future release without performing each intermediate migration.
-
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v3.1_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-When you start the latest version of Formbricks, it will automatically detect and run any necessary data migrations during startup. There is no need to run any manual migration steps or pull any separate migration images.
-
-5. Access your updated instance
-
-Once the containers are up and running, simply navigate to the same URL as before to access your fully migrated Formbricks instance.
-
-That’s it! The new workflow ensures that your Formbricks instance will always remain up-to-date with the latest schema changes as soon as you run the updated container.
-
-## v3.0
-
-
- **Don't upgrade to 3.0 if you need SSO, user identification or cluster support**
-
-With Formbricks 3.0, we're making some strategic changes to ensure long-term sustainability while keeping our core commitment to open source. While the Community Edition got more powerful, we're moving some advanced features to the Enterprise Edition.
-
-If you update to 3.0 and run the data migration, there IS NO WAY BACK to 2.7.2 - if you need to use SSO or one of the other previously free features, either stick with 2.7.x or reach out for a custom quote.
-
-
-
-
- This major release introduces a new improved approach for data migrations. If you are on a version older than v2.7, you need to migrate step-by-step through the earlier versions first (e.g. 2.4 → 2.5 → 2.6 → 2.7). After you have reached v2.7, you can upgrade directly to any v3.x and future release without performing each intermediate migration.
-
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v3.0_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-When you start the latest version of Formbricks, it will automatically detect and run any necessary data migrations during startup. There is no need to run any manual migration steps or pull any separate migration images.
-
-5. Access your updated instance
-
-That’s it! Once the containers are up and running, simply navigate to the same URL as before to access your fully migrated Formbricks instance.
-
-## v2.7
-
-
- This release sets the foundation for our upcoming AI features, currently in private beta. Formbricks now requires the `pgvector` extension to be installed in the PostgreSQL database. For users of our one-click setup, simply use the `pgvector/pgvector:pg15` image instead of `postgres:15-alpine`.
-
-
-Formbricks v2.7 includes all the features and improvements developed by the community during hacktoberfest 2024. Additionally we introduce an advanced team-based access control system (requires Formbricks Enterprise Edition).
-
-### Additional Updates
-
-If you previously used organization-based access control (enterprise feature) as well as the `DEFAULT_ORGANIZATION_ROLE` environment variable, make sure to update the value to one of the following roles: `owner`, `manager`, `member`. Read more about the new roles in the [Docs](/global/access-roles).
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v2.7_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. If you use an older `docker-compose.yml` file from the one-click setup, modify it to use the `pgvector/pgvector:pg15` image instead of `postgres:15-alpine`:
-
-```yaml
-services:
- postgres:
- image: pgvector/pgvector:pg15
- volumes:
- - postgres:/var/lib/postgresql/data
- environment:
- - POSTGRES_DB=postgres
- - POSTGRES_USER=postgres
- - POSTGRES_PASSWORD=postgres
- ports:
- - 5432:5432
-```
-
-3. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-4. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-5. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-6. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ls`
-
-
-
-
-```bash
-docker pull ghcr.io/formbricks/data-migrations:latest && \
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v2.7" \
- ghcr.io/formbricks/data-migrations:v2.7.0
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-7. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-## v2.6
-
-Formbricks v2.6 introduces advanced logic jumps for surveys, allowing you to add more advanced branching logic to your surveys including variables, and/or conditions and many more. This release also includes a lot of bug fixes, big performance improvements to website and app surveys and a lot of stability improvements.
-
-
- This release includes the last step of the server-side action tracking deprecation (previously used for
- segment filtering by performed actions). The migrations included in this release will delete all tracked actions from the database. If you still need these action records, please make sure to export them before upgrading.
-
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v2.6_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-5. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ls`
-
-
-
-
-```bash
-docker pull ghcr.io/formbricks/data-migrations:latest && \
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v2.6" \
- ghcr.io/formbricks/data-migrations:v2.6.0
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-6. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-## v2.5
-
-Formbricks v2.5 allows you to visualize responses in a data table format. This release also includes a few bug fixes and performance improvements.
-
-
- This release will fix the inconsistency of CTA and consent question values in case of skipping the question. The value will be set to empty string instead of "dismissed" in order to make it consistent with other questions.
-
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v2.5_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-5. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ls`
-
-
-
-
-```bash
-docker pull ghcr.io/formbricks/data-migrations:latest && \
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v2.5" \
- ghcr.io/formbricks/data-migrations:v2.5.3
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-6. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-## v2.4
-
-Formbricks v2.4 allows you to create multiple endings for your surveys and decide which ending the user should see based on logic jumps. This release also includes many bug fixes and performance improvements.
-
-
- This release will drop support for advanced targeting (enterprise targeting for app surveys) with actions (e.g. only target users that triggered action x 3 times in the last month). This means that actions can still be used as triggers, but will no longer be stored on the server in order to improve the overall performance of the Formbricks system.
-
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v2.4_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-5. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ls`
-
-
-
-
-```bash
-docker pull ghcr.io/formbricks/data-migrations:v2.4.3 && \
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v2.4" \
- ghcr.io/formbricks/data-migrations:v2.4.3
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-6. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-### Additional Updates
-
-- The `CRON_SECRET` environment variable is now required to improve the security of the internal cron APIs. Please make sure that the variable is set in your environment / docker-compose.yml. You can use `openssl rand -hex 32` to generate a secure secret.
-
-## v2.3
-
-Formbricks v2.3 includes new color options for rating questions, improved multi-language functionality for Chinese (Simplified & Traditional), and various bug fixes and performance improvements.
-
-### Steps to Migrate
-
-
- You only need to run the data migration if you have multi language surveys set up in the Chinese language (`zh`). If you don't have any surveys in Chinese, you can skip the data migration step.
-
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v2.3_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-5. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ls`
-
-
-
-
-```bash
-docker pull ghcr.io/formbricks/data-migrations:v2.3.0 && \
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v2.3" \
- ghcr.io/formbricks/data-migrations:v2.3.0
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-6. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-### Additional Updates
-
-The feature to create short urls in Formbricks is now deprecated. Previously generated short urls will keep working for now but we recommend to use the long urls instead. Redirect support for short urls will be removed in a future release.
-
-## v2.2
-
-Formbricks v2.2 introduces XM research presets into your products with a brand new product onboarding. Our objective is to make user research “obviously easy”, industry by industry. And we're starting with Software-as-a-Service and E-Commerce.
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v2.2_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-5. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ls`
-
-
-
-
-```bash
-docker pull ghcr.io/formbricks/data-migrations:v2.2 && \
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v2.2" \
- ghcr.io/formbricks/data-migrations:v2.2
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-6. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-### Changes in Environment Variables
-
-- `ONBOARDING_DISABLED` is now deprecated since we replaced the user onboarding with a product onboarding that only runs when creating a new product.
-
-## v2.1
-
-Formbricks v2.1 introduces more options for creating No-Code Actions and lays the foundation for easier self-hosting of Formbricks starting with an Onboarding for fresh instances.
-
-
- To improve the user experience in self-hosting instances and to simplify setup, we are moving to a single organization approach for self-hosting instances with this release. This will allow self-hosters to centrally manage their instance and more easily restrict access to the instance. We will soon introduce a new permissions system that will allow more granular access to projects and other resources within an organization. If you have created multiple organizations in the past, you will still be able to switch between them in the UI, but don't have an option to create new organizations.
- between them in the UI, but don't have an option to create new organizations.
-
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v2.1_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-5. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ls`
-
-
-
-
-```bash
-docker pull ghcr.io/formbricks/data-migrations:v2.1.0 && \
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v2.1" \
- ghcr.io/formbricks/data-migrations:v2.1.0
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-6. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-### Changes in Environment Variables
-
-- `SIGNUP_DISABLED` is now deprecated since self-hosting instaces have signup disabled by default and new users can only be invited by the organization owner or admin.
-- `DEFAULT_TEAM_ID` got renamed to `DEFAULT_ORGANIZATION_ID`
-- `DEFAULT_TEAM_ROLE` got renamed to `DEFAULT_ORGANIZATION_ROLE`
-
-## v2.0
-
-Formbricks v2.0 comes with huge features such as Multi-Language Surveys and Advanced Styling for Surveys. We have also shipped various optimisations, bug fixes & smaller fixes on the way to make your experience more seamless. This guide will help you migrate your existing Formbricks instance to v2.0 without any hassles or build errors.
-
-
- This upgrade requires a **data migration**. Please make sure to backup your database before proceeding with the upgrade. Follow the below steps thoroughly to upgrade your Formbricks instance to v2.0.
-
-
-
- If you've used the Formbricks Enterprise Edition with a free beta license key, your instance will be downgraded to the Community Edition 2.0. You can find all license details on the [license page](/self-hosting/license/).
-
-
-
- We are moving from DockerHub to Github Packages for our images. If you are still pulling the images from DockerHub please change `image: formbricks/formbricks:latest` to `image:ghcr.io/formbricks/formbricks:latest` in your `docker-compose.yml` file.
-
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v2.0_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose pull
-```
-
-
-
-
-3. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-4. Restarting the containers with the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-5. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ls`
-
-
-
-
-```bash
-docker pull ghcr.io/formbricks/data-migrations:v2.0.3 && \
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v2.0" \
- ghcr.io/formbricks/data-migrations:v2.0.3
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-6. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-### App Surveys with @formbricks/js
-
-From this upgrade, we now **dynamically fetch** the package from our API endpoint and updated the package entrypoints to support both app and website surveys so that you always have the latest version of the package (v2.0.0+).
-
-**Old approach:** (v1.6.5)
-
-
-
-
-```ts
-import formbricks from "@formbricks/js/website";
-
-formbricks.init({
- environmentId: "",
- apiHost: "",
- // userId is not supported here
-});
-```
-
-
-
-
-App surveys:
-
-
-
-
-```ts
-import formbricks from "@formbricks/js/app";
-
-formbricks.init({
- environmentId: "",
- apiHost: "",
- userId: "", // required
-});
-```
-
-
-
-
-## v1.6
-
-Formbricks v1.6 comes with a big new features like Advanced Targeting & Segmentation of your end-users along with on-the-fly triggers for surveys and a ton of stability improvements & features. This also involves a few changes in our environment variables. This guide will help you migrate your existing Formbricks instance to v1.6 without any hassles or build errors.
-
-
- This upgrade requires a **data migration**. Please make sure to backup your database before proceeding with the upgrade. Follow the below steps thoroughly to upgrade your Formbricks instance to v1.6.
-
-
-### Steps to Migrate
-
-This guide is for users who are self-hosting Formbricks using our one-click setup. If you are using a different setup, you might adjust the commands accordingly.
-
-To run all these steps, please navigate to the `formbricks` folder where your `docker-compose.yml` file is located.
-
-1. **Backup your Database**: This is a crucial step. Please make sure to backup your database before proceeding with the upgrade. You can use the following command to backup your database:
-
-
-
-
-```bash
-docker exec formbricks-quickstart-postgres-1 pg_dump -Fc -U postgres -d formbricks > formbricks_pre_v1.6_$(date +%Y%m%d_%H%M%S).dump
-```
-
-
-
-
-
- If you run into “No such container”, use `docker ps` to find your container name, e.g. `formbricks_postgres_1`.
-
-
-
- If you prefer storing the backup as an `*.sql` file remove the `-Fc` (custom format) option. In case of a restore scenario you will need to use `psql` then with an empty `formbricks` database.
-
-
-2. Stop the running Formbricks instance & remove the related containers:
-
-
-
-
-```bash
-docker compose down
-```
-
-
-
-
-3. Restarting the containers will automatically pull the latest version of Formbricks:
-
-
-
-
-```bash
-docker compose up -d
-```
-
-
-
-
-4. Now let's migrate the data to the latest schema:
-
-To find your Docker Network name for your Postgres Database, find it using `docker network ps`
-
-
-
-
-```bash
-docker run --rm \
- --network=formbricks_default \
- -e DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" \
- -e UPGRADE_TO_VERSION="v1.6" \
- ghcr.io/formbricks/data-migrations:v1.6.1
-```
-
-
-
-
-The above command will migrate your data to the latest schema. This is a crucial step to migrate your existing data to the new structure. Only if the script runs successful, changes are made to the database. The script can safely run multiple times.
-
-5. That's it! Once the migration is complete, you can **now access your Formbricks instance** at the same URL as before.
-
-#### Restoring the database after a failed upgrade
-
-
-
-
-```bash
-docker exec -i formbricks-quickstart-postgres-1 pg_restore --clean -U postgres -v -d formbricks < formbricks_pre_v1.6_.dump
-```
-
-
-
-
-Replace the path to `formbricks_pre_v1.6_.dump` with the exact path to your `.dump` file.
-
-This will wipe the database and restore from the `.dump` file
-
-### App Surveys with @formbricks/js
-
-If you are using the `@formbricks/js` package, please make sure to update it to version `~1.6.5` to use the latest features and improvements.
-
-
- Currently the package needs to be pinned to `~1.6.5`, see [this issue](https://github.com/formbricks/formbricks/issues/2273).
-
-
-
-
-
-```bash
-npm install @formbricks/js@~1.6.5
-```
-
-
-
-
-### Deprecated Environment Variables
-
-| Environment Variable | Comments |
-| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| GITHUB_AUTH_ENABLED | Was used to enable GitHub OAuth, but from v1.6, you can just set the `GITHUB_ID` and `GITHUB_SECRET` environment variables. |
-| GOOGLE_AUTH_ENABLED | Was used to enable Google OAuth, but from v1.6, you can just set the `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` environment variables. |
-| AZUREAD_AUTH_ENABLED | Was used to enable AzureAD OAuth, but from v1.6, you can just set the `AZUREAD_CLIENT_ID`, `AZUREAD_CLIENT_SECRET` & `AZUREAD_TENANT_ID` environment variables. |
-
-## v1.2
-
-Formbricks v1.2 ships a lot of features targeting our Link Surveys. We have also improved our security posture to be as robust as ever. However, it also comes with a few breaking changes specifically with the environment variables. This guide will help you migrate your existing Formbricks instance to v1.2 without any hassles or build errors.
-
-### New Environment Variables
-
-| Environment Variable | Required | Recommended Generation | Comments |
-| -------------------- | -------- | ----------------------- | ----------------------------------------------------------- |
-| ENCRYPTION_KEY | true | `openssl rand -hex 32` | Needed for 2 Factor Authentication |
-| SHORT_URL_BASE | false | `` | Needed if you want to enable shorter links for Link Surveys |
-
-### Deprecated / Removed Environment Variables
-
-| Environment Variable | Comments |
-| -------------------- | ------------------------------------------------------------------------- |
-| SURVEY_BASE_URL | The WEBAPP_URL is now used to determine the survey base url in all places |
-
-## v1.1
-
-Formbricks v1.1 includes a lot of new features and improvements. However, it also comes with a few breaking changes specifically with the environment variables. This guide will help you migrate your existing Formbricks instance to v1.1 without losing any data.
-
-### Renamed Environment Variables
-
-This was introduced because we got a lot of requests from our users for the ability to define some common environment variables at runtime itself i.e. without having to rebuild the image for the changes to take effect.
-This is now possible with v1.1. However, due to Next.JS best practices, we had to deprecate the prefix **NEXT*PUBLIC*** in the following environment variables:
-
-| till v1.0 | v1.1 |
-| --------------------------------------- | --------------------------- |
-| NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED | EMAIL_VERIFICATION_DISABLED |
-| NEXT_PUBLIC_PASSWORD_RESET_DISABLED | PASSWORD_RESET_DISABLED |
-| NEXT_PUBLIC_SIGNUP_DISABLED | SIGNUP_DISABLED |
-| NEXT_PUBLIC_INVITE_DISABLED | INVITE_DISABLED |
-| NEXT_PUBLIC_PRIVACY_URL | PRIVACY_URL |
-| NEXT_PUBLIC_TERMS_URL | TERMS_URL |
-| NEXT_PUBLIC_IMPRINT_URL | IMPRINT_URL |
-| NEXT_PUBLIC_GITHUB_AUTH_ENABLED | GITHUB_AUTH_ENABLED |
-| NEXT_PUBLIC_GOOGLE_AUTH_ENABLED | GOOGLE_AUTH_ENABLED |
-| NEXT_PUBLIC_WEBAPP_URL | WEBAPP_URL |
-| NEXT_PUBLIC_IS_FORMBRICKS_CLOUD | IS_FORMBRICKS_CLOUD |
-| NEXT_PUBLIC_SURVEY_BASE_URL | SURVEY_BASE_URL |
-
-
- Please note that their values and the logic remains exactly the same. Only the prefix has been deprecated. The other environment variables remain the same as well.
-
-
-### Deprecated Environment Variables
-
-- **NEXT_PUBLIC_VERCEL_URL**: Was used as Vercel URL (used instead of WEBAPP_URL), but from v1.1, you can just set the WEBAPP_URL environment variable to your Vercel URL.
-- **RAILWAY_STATIC_URL**: Was used as Railway Static URL (used instead of WEBAPP_URL), but from v1.1, you can just set the WEBAPP_URL environment variable.
-- **RENDER_EXTERNAL_URL**: Was used as an external URL to Render (used instead of WEBAPP_URL), but from v1.1, you can just set the WEBAPP_URL environment variable.
-- **HEROKU_APP_NAME**: Was used to build the App name on a Heroku hosted webapp, but from v1.1, you can just set the WEBAPP_URL environment variable.
-- **NEXT_PUBLIC_WEBAPP_URL**: Was used for the same purpose as WEBAPP_URL, but from v1.1, you can just set the WEBAPP_URL environment variable.
-- **PRISMA_GENERATE_DATAPROXY**: Was used to tell Prisma that it should generate the runtime for Dataproxy usage. But its officially deprecated now.
-
-### Helper Shell Script
-
-For a seamless migration, below is a shell script for your self-hosted instance that will automatically update your environment variables to be compliant with the new naming conventions.
-
-### Docker & Single Script Setup
-
-Now that these variables can be defined at runtime, you can append them inside your `x-environment` in the `docker-compose.yml` itself.
-For a more detailed guide on these environment variables, please refer to the [Important Runtime Variables](/self-hosting/docker#important-run-time-variables) section.
-
-
-
-
-```yaml {{ title: 'docker-compose.yml' }}
-version: "3.3"
-x-environment: &environment
- environment:
- # The url of your Formbricks instance used in the admin panel
- WEBAPP_URL:
-
- # Required for next-auth. Should be the same as WEBAPP_URL
- NEXTAUTH_URL:
-
- # PostgreSQL DB for Formbricks to connect to
- DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/formbricks?schema=public"
-
- # NextJS Auth
- # @see: https://next-auth.js.org/configuration/options#nextauth_secret
- # You can use: `openssl rand -hex 32` to generate one
- NEXTAUTH_SECRET:
-
- # PostgreSQL password
- POSTGRES_PASSWORD: postgres
-
- # Email Configuration
- MAIL_FROM:
- SMTP_HOST:
- SMTP_PORT:
- SMTP_SECURE_ENABLED:
- SMTP_USER:
- SMTP_PASSWORD:
-
- # Uncomment the below and set it to 1 to disable Email Verification for new signups
- # EMAIL_VERIFICATION_DISABLED:
-
- # Uncomment the below and set it to 1 to disable Password Reset
- # PASSWORD_RESET_DISABLED:
-
- # Uncomment the below and set it to 1 to disable Signups
- # SIGNUP_DISABLED:
-
- # Uncomment the below and set it to 1 to disable loging in with email
- # EMAIL_AUTH_DISABLED:
-
- # Uncomment the below and set it to 1 to disable Invites
- # INVITE_DISABLED:
-
- # Uncomment the below and set a value to have your own Privacy Page URL on the signup & login page
- # PRIVACY_URL:
-
- # Uncomment the below and set a value to have your own Terms Page URL on the auth and the surveys page
- # TERMS_URL:
-
- # Uncomment the below and set a value to have your own Imprint Page URL on the auth and the surveys page
- # IMPRINT_URL:
-
- # Uncomment the below and set to 1 if you want to enable GitHub OAuth
- # GITHUB_AUTH_ENABLED:
- # GITHUB_ID:
- # GITHUB_SECRET:
-
- # Uncomment the below and set to 1 if you want to enable Google OAuth
- # GOOGLE_AUTH_ENABLED:
- # GOOGLE_CLIENT_ID:
- # GOOGLE_CLIENT_SECRET:
-```
-
-
-
-
-Did we miss something? Are you still facing issues migrating your app? [Join our Github Discussions](https://github.com/formbricks/formbricks/discussions) We'd be happy to help!
diff --git a/apps/docs/app/self-hosting/one-click/page.mdx b/apps/docs/app/self-hosting/one-click/page.mdx
deleted file mode 100644
index 57f7ab94ad..0000000000
--- a/apps/docs/app/self-hosting/one-click/page.mdx
+++ /dev/null
@@ -1,423 +0,0 @@
-export const metadata = {
- title: "Step by Step Guide on Deploying Formbricks to Production on Ubuntu",
- description:
- "Master the swift deployment of Formbricks on an Ubuntu server with our step-by-step guide. Use a single command to automate Docker, Postgres DB, SSL certificate configuration, and more. Encounter issues? Dive into our troubleshooting steps or join our community on Github Discussions for assistance.",
-};
-
-#### Self-Hosting
-
-# One-Click Setup
-
-This only works with an Ubuntu machine so please verify the underlying OS beforehand!
-
-If you want to quickly set up a production instance of Formbricks on a server running Ubuntu, we've got you covered! This method utilizes a convenient shell script that takes care of everything, including **Docker**, **Postgres DB**, and **SSL certificate configuration**. The shell script will automatically install all the required dependencies and configure your server, making the process a breeze.
-
-
- This setup installs **Traefik** to work as a **reverse proxy**. This configuration is crucial for directing incoming traffic to the correct container, allowing Formbricks to be accessible from the internet securely.
- Traefik is chosen for its simplicity and automatic SSL management with Let's Encrypt.
-
-
-If you want to run Formbricks on a different OS or have more control over the installation process, you can follow the [advanced installation guide with Docker](/self-hosting/docker).
-
-### Requirements
-
-Before you proceed, make sure you have the following:
-
-- A **Linux Ubuntu** Virtual Machine deployed with SSH access.
-- An **A record** set up to connect a custom domain to your instance. Formbricks will **automatically create an SSL certificate** for your domain using Let's Encrypt.
-- **Port 80 and 443** open in your VM's Security Group to allow Traefik to create the SSL certificate.
-
-## Start
-
-Copy and paste the following command into your terminal:
-
-
-
-
-```bash
-curl -fsSL https://raw.githubusercontent.com/formbricks/formbricks/main/docker/formbricks.sh -o formbricks.sh && chmod +x formbricks.sh && ./formbricks.sh install
-```
-
-
-
-
-The script will prompt you for the following information:
-
-1. **Overwriting Docker GPG Keys**: If Docker GPG keys already exist, the script will ask if you want to overwrite them.
-
-
-
-
-```bash
-🚀 Executing default step of installing Formbricks
-🧱 Welcome to the Formbricks Setup Script
-
-🛸 Fasten your seatbelts! We're setting up your Formbricks environment on your Ubuntu 24.04 LTS server.
-
-🧹 Time to sweep away any old Docker installations.
-🔄 Updating your package list.
-📦 Installing the necessary dependencies.
-🔑 Adding Docker's official GPG key and setting up the stable repository.
-File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N)
-```
-
-
-
-
-2. **Domain Name**: You will be asked to enter the domain name where you want to host Formbricks. This domain will be used to generate an SSL certificate.
-
-
-
-
-```bash
-🚀 Executing default step of installing Formbricks
-🧱 Welcome to the Formbricks Setup Script
-
-🛸 Fasten your seatbelts! We're setting up your Formbricks environment on your Ubuntu 24.04 LTS server.
-
-🧹 Time to sweep away any old Docker installations.
-🔄 Updating your package list.
-📦 Installing the necessary dependencies.
-🔑 Adding Docker's official GPG key and setting up the stable repository.
-File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N) y
-🔄 Updating your package list again.
-🐳 Installing Docker.
-🚀 Testing your Docker installation.
-🎉 Docker is installed!
-🐳 Adding your user to the Docker group to avoid using sudo with docker commands.
-🎉 Hooray! Docker is all set and ready to go. You're now ready to run your Formbricks instance!
-📁 Created Formbricks Quickstart directory at ./formbricks.
-🔗 Please enter your domain name for the SSL certificate (🚨 do NOT enter the protocol (http/https/etc)):
-```
-
-
-
-
-3. **HTTPS Certificate Prompt**: The script will ask if you want to create an HTTPS certificate for your domain. Enter Y to proceed. This is highly recommended for secure access to your Formbricks instance.
-
-
-
-
-```bash
-🚀 Executing default step of installing Formbricks
-🧱 Welcome to the Formbricks Setup Script
-
-🛸 Fasten your seatbelts! We're setting up your Formbricks environment on your Ubuntu 24.04 LTS server.
-
-🧹 Time to sweep away any old Docker installations.
-🔄 Updating your package list.
-📦 Installing the necessary dependencies.
-🔑 Adding Docker's official GPG key and setting up the stable repository.
-File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N) y
-🔄 Updating your package list again.
-🐳 Installing Docker.
-🚀 Testing your Docker installation.
-🎉 Docker is installed!
-🐳 Adding your user to the Docker group to avoid using sudo with docker commands.
-🎉 Hooray! Docker is all set and ready to go. You're now ready to run your Formbricks instance!
-📁 Created Formbricks Quickstart directory at ./formbricks.
-🔗 Please enter your domain name for the SSL certificate (🚨 do NOT enter the protocol (http/https/etc)):
-my.hosted.url.com
-🔗 Do you want us to set up an HTTPS certificate for you? [Y/n]
-```
-
-
-
-
-4. **DNS Setup Prompt**: Ensure that your domain's DNS is correctly configured and ports 80 and 443 are open. Confirm this by entering Y. This step is crucial for proper SSL certificate issuance and secure server access.
-
-
-
-
-```bash
-🚀 Executing default step of installing Formbricks
-🧱 Welcome to the Formbricks Setup Script
-
-🛸 Fasten your seatbelts! We're setting up your Formbricks environment on your Ubuntu 24.04 LTS server.
-
-🧹 Time to sweep away any old Docker installations.
-🔄 Updating your package list.
-📦 Installing the necessary dependencies.
-🔑 Adding Docker's official GPG key and setting up the stable repository.
-File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N) y
-🔄 Updating your package list again.
-🐳 Installing Docker.
-🚀 Testing your Docker installation.
-🎉 Docker is installed!
-🐳 Adding your user to the Docker group to avoid using sudo with docker commands.
-🎉 Hooray! Docker is all set and ready to go. You're now ready to run your Formbricks instance!
-📁 Created Formbricks Quickstart directory at ./formbricks.
-🔗 Please enter your domain name for the SSL certificate (🚨 do NOT enter the protocol (http/https/etc)):
-my.hosted.url.com
-🔗 Do you want us to set up an HTTPS certificate for you? [Y/n]
-Y
-🔗 Please make sure that the domain points to the server's IP address and that ports 80 & 443 are open in your server's firewall. Is everything set up? [Y/n]
-```
-
-
-
-
-5. **Email Address**: Provide an email address for SSL certificate registration. This email will be used for notifications regarding your SSL certificate from Let's Encrypt.
-
-
-
-
-```bash
-🚀 Executing default step of installing Formbricks
-🧱 Welcome to the Formbricks Setup Script
-
-🛸 Fasten your seatbelts! We're setting up your Formbricks environment on your Ubuntu 24.04 LTS server.
-
-🧹 Time to sweep away any old Docker installations.
-🔄 Updating your package list.
-📦 Installing the necessary dependencies.
-🔑 Adding Docker's official GPG key and setting up the stable repository.
-File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N) y
-🔄 Updating your package list again.
-🐳 Installing Docker.
-🚀 Testing your Docker installation.
-🎉 Docker is installed!
-🐳 Adding your user to the Docker group to avoid using sudo with docker commands.
-🎉 Hooray! Docker is all set and ready to go. You're now ready to run your Formbricks instance!
-📁 Created Formbricks Quickstart directory at ./formbricks.
-🔗 Please enter your domain name for the SSL certificate (🚨 do NOT enter the protocol (http/https/etc)):
-my.hosted.url.com
-🔗 Do you want us to set up an HTTPS certificate for you? [Y/n]
-Y
-🔗 Please make sure that the domain points to the server's IP address and that ports 80 & 443 are open in your server's firewall. Is everything set up? [Y/n]
-Y
-💡 Please enter your email address for the SSL certificate:
-```
-
-
-
-
-6. **Enforce HTTPS (HSTS) Prompt**: Enforcing HTTPS with HSTS is a good security practice, as it ensures all communication with your server is encrypted. Enter Y to enable this setting.
-
-
-
-
-```bash
-🚀 Executing default step of installing Formbricks
-🧱 Welcome to the Formbricks Setup Script
-
-🛸 Fasten your seatbelts! We're setting up your Formbricks environment on your Ubuntu 24.04 LTS server.
-
-🧹 Time to sweep away any old Docker installations.
-🔄 Updating your package list.
-📦 Installing the necessary dependencies.
-🔑 Adding Docker's official GPG key and setting up the stable repository.
-File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N) y
-🔄 Updating your package list again.
-🐳 Installing Docker.
-🚀 Testing your Docker installation.
-🎉 Docker is installed!
-🐳 Adding your user to the Docker group to avoid using sudo with docker commands.
-🎉 Hooray! Docker is all set and ready to go. You're now ready to run your Formbricks instance!
-📁 Created Formbricks Quickstart directory at ./formbricks.
-🔗 Please enter your domain name for the SSL certificate (🚨 do NOT enter the protocol (http/https/etc)):
-my.hosted.url.com
-🔗 Do you want us to set up an HTTPS certificate for you? [Y/n]
-Y
-🔗 Please make sure that the domain points to the server's IP address and that ports 80 & 443 are open in your server's firewall. Is everything set up? [Y/n]
-Y
-💡 Please enter your email address for the SSL certificate:
-docs@formbricks.com
-🔗 Do you want to enforce HTTPS (HSTS)? [Y/n]
-```
-
-
-
-
-7. **Email Service Setup Prompt**: The script will ask if you want to set up the email service. Enter `Y` to proceed.(default is `N`). You can skip this step if you don't want to set up the email service. You will still be able to use Formbricks without setting up the email service.
-
-
-
-
-```bash
-🚀 Executing default step of installing Formbricks
-🧱 Welcome to the Formbricks Setup Script
-
-🛸 Fasten your seatbelts! We're setting up your Formbricks environment on your Ubuntu 24.04 LTS server.
-
-🧹 Time to sweep away any old Docker installations.
-🔄 Updating your package list.
-📦 Installing the necessary dependencies.
-🔑 Adding Docker's official GPG key and setting up the stable repository.
-File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N) y
-🔄 Updating your package list again.
-🐳 Installing Docker.
-🚀 Testing your Docker installation.
-🎉 Docker is installed!
-🐳 Adding your user to the Docker group to avoid using sudo with docker commands.
-🎉 Hooray! Docker is all set and ready to go. You're now ready to run your Formbricks instance!
-📁 Created Formbricks Quickstart directory at ./formbricks.
-🔗 Please enter your domain name for the SSL certificate (🚨 do NOT enter the protocol (http/https/etc)):
-my.hosted.url.com
-🔗 Do you want us to set up an HTTPS certificate for you? [Y/n]
-Y
-🔗 Please make sure that the domain points to the server's IP address and that ports 80 & 443 are open in your server's firewall. Is everything set up? [Y/n]
-Y
-💡 Please enter your email address for the SSL certificate:
-docs@formbricks.com
-🔗 Do you want to enforce HTTPS (HSTS)? [Y/n]
-Y
-🚗 Configuring Traefik...
-💡 Created traefik.yaml and traefik-dynamic.yaml file.
-💡 Created acme.json file with correct permissions.
-📧 Do you want to set up the email service? You will need SMTP credentials for the same! [y/N]
-```
-
-
-
-
-**That's it**! After running the command and providing the required information, visit the domain name you entered, and you should see the Formbricks home wizard!
-
-
-
-
-```bash
-🚀 Executing default step of installing Formbricks
-🧱 Welcome to the Formbricks Setup Script
-
-🛸 Fasten your seatbelts! We're setting up your Formbricks environment on your Ubuntu 24.04 LTS server.
-
-🧹 Time to sweep away any old Docker installations.
-🔄 Updating your package list.
-📦 Installing the necessary dependencies.
-🔑 Adding Docker's official GPG key and setting up the stable repository.
-File '/etc/apt/keyrings/docker.gpg' exists. Overwrite? (y/N) y
-🔄 Updating your package list again.
-🐳 Installing Docker.
-🚀 Testing your Docker installation.
-🎉 Docker is installed!
-🐳 Adding your user to the Docker group to avoid using sudo with docker commands.
-🎉 Hooray! Docker is all set and ready to go. You're now ready to run your Formbricks instance!
-📁 Created Formbricks Quickstart directory at ./formbricks.
-🔗 Please enter your domain name for the SSL certificate (🚨 do NOT enter the protocol (http/https/etc)):
-my.hosted.url.com
-🔗 Do you want us to set up an HTTPS certificate for you? [Y/n]
-Y
-🔗 Please make sure that the domain points to the server's IP address and that ports 80 & 443 are open in your server's firewall. Is everything set up? [Y/n]
-Y
-💡 Please enter your email address for the SSL certificate:
-docs@formbricks.com
-🔗 Do you want to enforce HTTPS (HSTS)? [Y/n]
-Y
-🚗 Configuring Traefik...
-💡 Created traefik.yaml and traefik-dynamic.yaml file.
-💡 Created acme.json file with correct permissions.
-📧 Do you want to set up the email service? You will need SMTP credentials for the same! [y/N] N
-📥 Downloading docker-compose.yml from Formbricks GitHub repository...
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
-100 6632 100 6632 0 0 24280 0 --:--:-- --:--:-- --:--:-- 24382
-🚙 Updating docker-compose.yml with your custom inputs...
-🚗 NEXTAUTH_SECRET updated successfully!
-🚗 ENCRYPTION_KEY updated successfully!
-🚗 CRON_SECRET updated successfully!
-
-[+] Running 4/4
- ✔ Network formbricks_default Created 0.2s
- ✔ Container formbricks-postgres-1 Started 1.0s
- ✔ Container formbricks-formbricks-1 Started 1.6s
- ✔ Container traefik Started 2.8s
-🔗 To edit more variables and deeper config, go to the formbricks/docker-compose.yml, edit the file, and restart the container!
-🚨 Make sure you have set up the DNS records as well as inbound rules for the domain name and IP address of this instance.
-
-🎉 All done! Please setup your Formbricks instance by visiting your domain at https://my.hosted.url.com. You can check the status of Formbricks & Traefik with 'cd formbricks && sudo docker compose ps.'
-
-```
-
-
-
-
-## Update
-
-To update Formbricks, simply run the following command:
-
-
-
-
-```bash
-./formbricks.sh update
-```
-
-
-
-
-The script will automatically pull the latest version of Formbricks from GitHub Container Registry and restart the containers.
-
-## Stop
-
-To stop Formbricks, simply run the following command:
-
-
-
-
-```bash
-./formbricks.sh stop
-```
-
-
-
-
-The script will automatically stop all the Formbricks related containers and brings the entire stack down.
-
-## Restart
-
-To restart Formbricks, simply run the following command:
-
-
-
-
-```bash
-./formbricks.sh restart
-```
-
-
-
-
-The script will automatically restart all the Formbricks related containers and brings the entire stack up with the previous configuration.
-
-## Uninstall
-
-To uninstall Formbricks, simply run the following command, but keep in mind that this will delete all your data!
-
-
-
-
-```bash
-./formbricks.sh uninstall
-```
-
-
-
-
-The script will automatically stop all the Formbricks related containers, remove the Formbricks directory, and delete the Docker network.
-
-## Debug
-
-If you encounter any issues, you can check the logs of the containers with:
-
-
-
-
-```bash
-./formbricks.sh logs
-```
-
-
-
-
-## Troubleshooting
-
-If you encounter any issues, consider the following steps:
-
-- **Inbound Rules**: Make sure you have added inbound rules for Port 80 and 443 in your VM's Security Group.
-
-- **A Record**: Verify that you have set up an A record for your domain, pointing to your VM's IP address.
-
-- **Check Docker Instances**: Run `docker ps` to check the status of the Docker instances.
-
-- **Check Formbricks Logs**: Run `cd formbricks && docker compose logs` to check the logs of the Formbricks stack.
diff --git a/apps/docs/app/self-hosting/overview/page.mdx b/apps/docs/app/self-hosting/overview/page.mdx
deleted file mode 100644
index 8b2e1d3638..0000000000
--- a/apps/docs/app/self-hosting/overview/page.mdx
+++ /dev/null
@@ -1,52 +0,0 @@
-export const metadata = {
- title: "Comprehensive Guide to Self-Hosting Formbricks",
- description:
- "Discover versatile options to deploy Formbricks tailored to your expertise level. From Ubuntu setups using shell scripts, swift Docker deployments, to manual source configurations, harness the flexibility and power of Formbricks to fit your unique hosting needs. Dive in today!",
-};
-
-#### Self-Hosting
-
-# Overview
-
-Welcome to Formbricks, the versatile surveying tool designed to meet the needs of both individuals and enterprises.
-
-Running Formbricks requires at least 1 vCPU, 2 GBs of RAM, 8 GBs of SSD
-
-The Formbricks server must be run with a valid HTTPS certificate.
-
-This section covers the below:
-
-- [**One Click Setup**](/self-hosting/one-click): Quickly set up a production instance of Formbricks on Ubuntu with our convenient shell script.
-- [**Docker Setup**](/self-hosting/docker): Start using Formbricks quickly with our pre-built Docker image.
-- [**Migration Guide**](/self-hosting/migration): Migrate your existing Formbricks instance to the latest version hassle-free.
-- [**Configuration**](/self-hosting/configuration): Customize your Formbricks installation with custom configurations.
-- [**Integrations**](/self-hosting/integrations): Configure third-party integrations with your self-hosted Formbricks instance.
-- [**All things Licensing**](/self-hosting/license): Learn more about our AGPL Formbricks Core and its open-source license & Unlock advanced features tailored for larger teams and enterprises with the EE License.
-
-## Understanding our Offerings:
-
-Whether you're looking for a self-hosted solution or prefer cloud hosting, Formbricks has you covered. Below is a concise overview of our offerings:
-
-- **Cloud Hosting**: Enjoy hassle-free deployment and management with our cloud hosting option. Available at https://app.formbricks.com, our cloud hosting solution is perfect for users who prefer a managed service.
-- **Self-Hosting Free**: Get started quickly with our free self-hosting option, perfect for personal and small-scale usage.
-- **Self-Hosting with Enterprise License**: Unlock advanced functionality tailored for larger teams and enterprises by opting for our Enterprise Edition license.
-
-### **Licensing Options Comparison**:
-
-For Self Hosting, our core product is free however certain advanced features are a part of our Enterprise License offering. Please refer this table to understand if you want the features that are a part of it and then we’ll reach out to you!
-
-| Feature | Cloud Hosting | Self-Hosting Free | Self-Hosting EE License |
-| ----------------------- | -------------------------- | ----------------- | ----------------------- |
-| Setup & Maintenance | Managed | DIY | DIY |
-| Advanced Functionality | Full (Optional Paid plans) | Most of them | All Advanced Features |
-| Support & Updates | Included | Community | Prioritised |
-| Price | Subscription | Free | Fixed Per month |
-| Customization & Control | Limited | Moderate | Full |
-
-For more queries around licensing, reach out to us at hola@formbricks.com
-
-Please note that regardless of the method you choose, Formbricks is designed to be easy-to-use and flexible. So choose the method that best fits your comfort level and requirements, and start leveraging the **power of Formbricks** today!
-
----
-
-**Can’t figure it out?**: **[Get help in Github Discussions](https://github.com/formbricks/formbricks/discussions)**
diff --git a/apps/docs/app/self-hosting/rate-limiting/page.mdx b/apps/docs/app/self-hosting/rate-limiting/page.mdx
deleted file mode 100644
index f9a5f747dc..0000000000
--- a/apps/docs/app/self-hosting/rate-limiting/page.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
-# Rate Limiting
-
-To protect the platform from abuse and ensure fair usage, rate limiting is enforced by default on an IP-address basis. If a client exceeds the allowed number of requests within the specified time window, the API will return a `429 Too Many Requests` status code.
-
-## Default Rate Limits
-
-The following rate limits apply to various endpoints:
-
-| **Endpoint** | **Rate Limit** | **Time Window** |
-| ----------------------- | -------------- | --------------- |
-| `POST /login` | 30 requests | 15 minutes |
-| `POST /signup` | 30 requests | 60 minutes |
-| `POST /verify-email` | 10 requests | 60 minutes |
-| `POST /forgot-password` | 5 requests | 60 minutes |
-| `GET /client-side-api` | 100 requests | 1 minute |
-| `POST /share` | 100 requests | 60 minutes |
-
-If a request exceeds the defined rate limit, the server will respond with:
-
-```json
-{
- "code": 429,
- "error": "Too many requests, Please try after a while!"
-}
-```
-
-## Disabling Rate Limiting
-
-For self-hosters, rate limiting can be disabled if necessary. However, we **strongly recommend keeping rate limiting enabled in production environments** to prevent abuse.
-
-To disable rate limiting, set the following environment variable:
-
-```bash
-RATE_LIMITING_DISABLED=1
-```
-
-After making this change, restart your server to apply the new setting.
diff --git a/apps/docs/components/button.tsx b/apps/docs/components/button.tsx
deleted file mode 100644
index 9c33bb072a..0000000000
--- a/apps/docs/components/button.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-import clsx from "clsx";
-import Link from "next/link";
-
-function ArrowIcon(props: React.ComponentPropsWithoutRef<"svg">): React.JSX.Element {
- return (
-
- );
-}
-
-const variantStyles = {
- primary:
- "rounded-full bg-slate-900 py-1 px-3 text-white hover:text-white hover:bg-slate-700 dark:bg-teal-400/10 dark:text-teal-400 dark:ring-1 dark:ring-inset dark:ring-teal-400/20 dark:hover:bg-teal-400/10 dark:hover:text-teal-300 dark:hover:ring-teal-300",
- secondary:
- "rounded-full bg-slate-100 py-1 px-3 text-slate-900 hover:bg-slate-200 dark:bg-slate-800/40 dark:text-slate-400 dark:ring-1 dark:ring-inset dark:ring-slate-800 dark:hover:bg-slate-800 dark:hover:text-slate-300",
- filled:
- "rounded-full bg-slate-900 py-1 px-3 text-white hover:bg-slate-700 dark:bg-teal-500 dark:text-white dark:hover:bg-teal-400",
- outline:
- "rounded-full py-1 px-3 text-slate-700 ring-1 ring-inset ring-slate-900/10 hover:bg-slate-900/2.5 hover:text-slate-900 dark:text-slate-400 dark:ring-white/10 dark:hover:bg-white/5 dark:hover:text-white",
- text: "text-teal-500 hover:text-teal-700 dark:text-teal-400 dark:hover:text-teal-300",
-};
-
-type ButtonProps = {
- variant?: keyof typeof variantStyles;
- arrow?: "left" | "right";
-} & (
- | React.ComponentPropsWithoutRef
- | (React.ComponentPropsWithoutRef<"button"> & { href?: undefined })
-);
-
-export function Button({
- variant = "primary",
- className,
- children,
- arrow,
- ...props
-}: ButtonProps): React.JSX.Element {
- const buttonClassName = clsx(
- "inline-flex gap-0.5 justify-center items-center overflow-hidden font-medium transition text-center",
- variantStyles[variant],
- className,
- "px-5 py-2.5 text-sm"
- );
-
- const arrowIcon = (
-
- );
-
- const inner = (
- <>
- {arrow === "left" && arrowIcon}
- {children}
- {arrow === "right" && arrowIcon}
- >
- );
-
- if (typeof props.href === "undefined") {
- return (
-
- );
- }
-
- return (
-
- {inner}
-
- );
-}
diff --git a/apps/docs/components/code.tsx b/apps/docs/components/code.tsx
deleted file mode 100644
index 255eb416df..0000000000
--- a/apps/docs/components/code.tsx
+++ /dev/null
@@ -1,355 +0,0 @@
-"use client";
-
-import { Tag } from "@/components/tag";
-import { Tab } from "@headlessui/react";
-import clsx from "clsx";
-import { Children, createContext, isValidElement, useContext, useEffect, useRef, useState } from "react";
-import { create } from "zustand";
-
-const languageNames: Record = {
- js: "JavaScript",
- ts: "TypeScript",
- javascript: "JavaScript",
- typescript: "TypeScript",
- php: "PHP",
- python: "Python",
- ruby: "Ruby",
- go: "Go",
-};
-
-const getPanelTitle = ({ title, language }: { title?: string; language?: string }) => {
- if (title) {
- return title;
- }
- if (language && language in languageNames) {
- return languageNames[language];
- }
- return "Code";
-};
-
-function ClipboardIcon(props: React.ComponentPropsWithoutRef<"svg">) {
- return (
-
- );
-}
-
-function CopyButton({ code }: { code: string }) {
- const [copyCount, setCopyCount] = useState(0);
- const copied = copyCount > 0;
-
- useEffect(() => {
- if (copyCount > 0) {
- const timeout = setTimeout(() => {
- setCopyCount(0);
- }, 1000);
- return () => {
- clearTimeout(timeout);
- };
- }
- }, [copyCount]);
-
- return (
-
- );
-}
-
-function CodePanelHeader({ tag, label }: { tag?: string; label?: string }): React.ReactNode | null {
- if (!tag && !label) {
- return null;
- }
-
- return (
-