diff --git a/.gitignore b/.gitignore
index 8b1254a5..69cdf01d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,7 @@ package-lock.json
/generator/openapi/
/generator/openapi.yml
/generator/expandOpenAPIRef
+
+# LLM documentation (generated)
+/public/llms/
+/public/llms.txt
diff --git a/package.json b/package.json
index d6527a3e..c9291b72 100644
--- a/package.json
+++ b/package.json
@@ -3,9 +3,10 @@
"version": "1.0.0",
"private": true,
"scripts": {
- "dev": "next dev",
- "build": "next build",
+ "dev": "npm run gen:llm && next dev",
+ "build": "npm run gen:llm && next build",
"gen": "swagger-codegen generate -i https://raw.githubusercontent.com/netbirdio/netbird/main/management/server/http/api/openapi.yml -l openapi -o generator/openapi && npx ts-node generator/index.ts gen --input generator/openapi/openapi.json --output src/pages/ipa/resources",
+ "gen:llm": "node scripts/generate-llm-docs.mjs",
"start": "next start",
"lint": "next lint"
},
diff --git a/public/docs-static/img/manage/access-control/endpoint-detection-and-response/edr-integrations.png b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/edr-integrations.png
index e19a4788..c35d6cbb 100644
Binary files a/public/docs-static/img/manage/access-control/endpoint-detection-and-response/edr-integrations.png and b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/edr-integrations.png differ
diff --git a/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/api-config.png b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/api-config.png
new file mode 100644
index 00000000..95ee8f32
Binary files /dev/null and b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/api-config.png differ
diff --git a/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/compliance-config.png b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/compliance-config.png
new file mode 100644
index 00000000..d74b0d87
Binary files /dev/null and b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/compliance-config.png differ
diff --git a/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/edr-approval-required.png b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/edr-approval-required.png
new file mode 100644
index 00000000..37b80a18
Binary files /dev/null and b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/edr-approval-required.png differ
diff --git a/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/getting-started.png b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/getting-started.png
new file mode 100644
index 00000000..c7eab1ed
Binary files /dev/null and b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/getting-started.png differ
diff --git a/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/group-config.png b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/group-config.png
new file mode 100644
index 00000000..d7dc108c
Binary files /dev/null and b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/group-config.png differ
diff --git a/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/sync-config.png b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/sync-config.png
new file mode 100644
index 00000000..76208c6b
Binary files /dev/null and b/public/docs-static/img/manage/access-control/endpoint-detection-and-response/huntress-edr/sync-config.png differ
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-create-interactive-login-app.png b/public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-create-interactive-login-app.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-create-interactive-login-app.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-create-interactive-login-app.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-create-machine-app.png b/public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-create-machine-app.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-create-machine-app.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-create-machine-app.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-grant-types.png b/public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-grant-types.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-grant-types.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-grant-types.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-interactive-login-settings.png b/public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-interactive-login-settings.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-interactive-login-settings.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-interactive-login-settings.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-machine-authorization.png b/public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-machine-authorization.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-machine-authorization.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-machine-authorization.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-machine-settings.png b/public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-machine-settings.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/auth0-machine-settings.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/auth0/auth0-machine-settings.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-assign-role.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-assign-role.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-assign-role.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-assign-role.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-consent-screen-scopes.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-consent-screen-scopes.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-consent-screen-scopes.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-consent-screen-scopes.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-consent-screen-summary.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-consent-screen-summary.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-consent-screen-summary.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-consent-screen-summary.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-consent-screen-type.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-consent-screen-type.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-consent-screen-type.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-consent-screen-type.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-edit-service-account.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-edit-service-account.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-edit-service-account.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-edit-service-account.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-new-role-info.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-new-role-info.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-new-role-info.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-new-role-info.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-oauth-client-created.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-oauth-client-created.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-oauth-client-created.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-oauth-client-created.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-oauth-client.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-oauth-client.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-oauth-client.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-oauth-client.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-privileges-review.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-privileges-review.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-privileges-review.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-privileges-review.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-service-account-create.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-service-account-create.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-service-account-create.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-service-account-create.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/google-service-account-privileges.png b/public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-service-account-privileges.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/google-service-account-privileges.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/google-workspace/google-service-account-privileges.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-add-admin-user.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-add-admin-user.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-add-admin-user.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-add-admin-user.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-api-key-generation.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-api-key-generation.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-api-key-generation.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-api-key-generation.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app-confirm-selection.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app-confirm-selection.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app-confirm-selection.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app-confirm-selection.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app-confirmation.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app-confirmation.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app-confirmation.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app-confirmation.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app-features.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app-features.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app-features.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app-features.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app-general-info.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app-general-info.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app-general-info.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app-general-info.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-new-sso-app.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-new-sso-app.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-oidc-app.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-oidc-app.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-oidc-app.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-oidc-app.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-profile.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-profile.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-profile.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-profile.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-sso-atributes-configuration.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-sso-atributes-configuration.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-sso-atributes-configuration.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-sso-atributes-configuration.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-sso-configuration.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-sso-configuration.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-sso-configuration.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-sso-configuration.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-user-groups.png b/public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-user-groups.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/jumpcloud-user-groups.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/jumpcloud/jumpcloud-user-groups.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-add-application-scope.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-add-application-scope.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-add-application-scope.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-add-application-scope.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-add-scope.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-add-scope.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-add-scope.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-add-scope.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-client-secret.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-client-secret.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-client-secret.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-client-secret.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-desktop-uri-setup.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-desktop-uri-setup.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-desktop-uri-setup.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-desktop-uri-setup.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-flows-setup.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-flows-setup.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-flows-setup.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-flows-setup.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-grant-admin-conset.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-grant-admin-conset.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-grant-admin-conset.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-grant-admin-conset.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-netbird-api-permisssions.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-netbird-api-permisssions.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-netbird-api-permisssions.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-netbird-api-permisssions.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-new-application.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-new-application.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-new-application.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-new-application.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-openid-permissions.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-openid-permissions.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-openid-permissions.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-openid-permissions.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-spa-uri-setup.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-spa-uri-setup.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure-spa-uri-setup.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure-spa-uri-setup.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/azure_api_scope.png b/public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure_api_scope.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/azure_api_scope.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/microsoft-entra-id/azure_api_scope.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-generate-token.png b/public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-generate-token.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-generate-token.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-generate-token.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-native-application.png b/public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-native-application.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-native-application.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-native-application.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-native-sign-on-configuration.png b/public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-native-sign-on-configuration.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-native-sign-on-configuration.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-native-sign-on-configuration.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-new-native-application.png b/public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-new-native-application.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-new-native-application.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-new-native-application.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-new-single-page-application.png b/public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-new-single-page-application.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-new-single-page-application.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-new-single-page-application.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-single-page-application.png b/public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-single-page-application.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-single-page-application.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-single-page-application.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-single-sign-on-configuration.png b/public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-single-sign-on-configuration.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/okta-single-sign-on-configuration.png
rename to public/docs-static/img/selfhosted/identity-providers/managed/okta/okta-single-sign-on-configuration.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-add-user-group.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-add-user-group.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-add-user-group.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-add-user-group.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-brand-device-flow.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-brand-device-flow.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-brand-device-flow.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-brand-device-flow.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-application.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-application.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-application.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-application.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-device-flow.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-device-flow.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-device-flow.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-device-flow.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-provider-config.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-provider-config.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-provider-config.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-provider-config.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-provider-type.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-provider-type.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-provider-type.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-provider-type.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-service-account.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-service-account.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-new-service-account.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-new-service-account.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-service-account-details.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-service-account-details.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik-service-account-details.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/authentik/authentik-service-account-details.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-add-client-scope.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-add-client-scope.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-add-client-scope.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-add-client-scope.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-domain-token-claim-mapper-domain-category.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-domain-token-claim-mapper-domain-category.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-domain-token-claim-mapper-domain-category.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-domain-token-claim-mapper-domain-category.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-domain-token-claim-mapper-domain.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-domain-token-claim-mapper-domain.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-domain-token-claim-mapper-domain.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-domain-token-claim-mapper-domain.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-domain-token-claim-mapper.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-domain-token-claim-mapper.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-domain-token-claim-mapper.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-domain-token-claim-mapper.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-domain-token-claims-client.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-domain-token-claims-client.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloack-domain-token-claims-client.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloack-domain-token-claims-client.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-access-settings.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-access-settings.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-access-settings.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-access-settings.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-add-role.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-add-role.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-add-role.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-add-role.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-auth-grant.gif b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-auth-grant.gif
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-auth-grant.gif
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-auth-grant.gif
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-backend-client-auth.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-backend-client-auth.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-backend-client-auth.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-backend-client-auth.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-backend-client-credentials.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-backend-client-credentials.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-backend-client-credentials.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-backend-client-credentials.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-configure-audience-mapper-2.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-configure-audience-mapper-2.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-configure-audience-mapper-2.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-configure-audience-mapper-2.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-configure-audience-mapper.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-configure-audience-mapper.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-configure-audience-mapper.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-configure-audience-mapper.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-backend-client.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-backend-client.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-backend-client.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-backend-client.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-client-scope.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-client-scope.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-client-scope.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-client-scope.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-client.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-client.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-client.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-client.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-realm.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-realm.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-realm.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-realm.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-user.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-user.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-create-user.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-create-user.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-domain-token-claim-scope.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-domain-token-claim-scope.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-domain-token-claim-scope.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-domain-token-claim-scope.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-enable-auth.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-enable-auth.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-enable-auth.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-enable-auth.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-service-account-role.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-service-account-role.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-service-account-role.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-service-account-role.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-set-password.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-set-password.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak-set-password.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/keycloak/keycloak-set-password.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/pocketid-create-api-token.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/pocketid/pocketid-create-api-token.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/pocketid-create-api-token.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/pocketid/pocketid-create-api-token.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/pocketid-create-oidc-client.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/pocketid/pocketid-create-oidc-client.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/pocketid-create-oidc-client.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/pocketid/pocketid-create-oidc-client.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-create-user.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-create-user.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-create-user.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-create-user.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-application-auth.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-application-auth.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-application-auth.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-application-auth.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-application-overview.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-application-overview.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-application-overview.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-application-overview.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-application-uri.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-application-uri.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-application-uri.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-application-uri.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-application.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-application.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-application.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-application.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-project.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-project.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-new-project.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-new-project.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-redirect-settings.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-redirect-settings.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-redirect-settings.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-redirect-settings.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-service-account-role.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-service-account-role.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-service-account-role.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-service-account-role.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-service-user-secret.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-service-user-secret.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-service-user-secret.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-service-user-secret.png
diff --git a/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-token-settings.png b/public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-token-settings.png
similarity index 100%
rename from public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel-token-settings.png
rename to public/docs-static/img/selfhosted/identity-providers/self-hosted/zitadel/zitadel-token-settings.png
diff --git a/scripts/generate-llm-docs.mjs b/scripts/generate-llm-docs.mjs
new file mode 100644
index 00000000..5d13416c
--- /dev/null
+++ b/scripts/generate-llm-docs.mjs
@@ -0,0 +1,238 @@
+#!/usr/bin/env node
+/**
+ * LLM Documentation Generator
+ *
+ * Generates clean markdown files from MDX pages for LLM indexing.
+ * Creates:
+ * - public/llms/*.md - Clean markdown versions of each page
+ * - public/llms.txt - Index file linking to all pages
+ */
+
+import fs from 'fs';
+import path from 'path';
+import { fileURLToPath } from 'url';
+
+const __dirname = path.dirname(fileURLToPath(import.meta.url));
+const ROOT_DIR = path.join(__dirname, '..');
+const PAGES_DIR = path.join(ROOT_DIR, 'src/pages');
+const OUTPUT_DIR = path.join(ROOT_DIR, 'public/llms');
+const LLMS_TXT_PATH = path.join(ROOT_DIR, 'public/llms.txt');
+
+// Base URL for the docs site
+const BASE_URL = 'https://docs.netbird.io';
+
+/**
+ * Strip JSX/React components from MDX content, keeping clean markdown
+ */
+function stripJsx(content) {
+ let result = content;
+
+ // Remove import statements
+ result = result.replace(/^import\s+.*?[;\n]/gm, '');
+
+ // Remove export statements (but keep the content if it's a description)
+ result = result.replace(/^export\s+const\s+description\s*=\s*(['"`])(.+?)\1;?\s*$/gm, '');
+ result = result.replace(/^export\s+.*?[;\n]/gm, '');
+
+ // Remove JSX self-closing tags like , , etc.
+ result = result.replace(/<[A-Z][a-zA-Z]*\s*\/>/g, '');
+
+ // Remove JSX components with children like ...
+ // Handle multi-line JSX blocks
+ result = result.replace(/<([A-Z][a-zA-Z]*)[^>]*>[\s\S]*?<\/\1>/g, (match, tagName) => {
+ // For Note components, try to extract the text content
+ if (tagName === 'Note' || tagName === 'Warning' || tagName === 'Info') {
+ const innerContent = match.replace(/<[^>]+>/g, '').trim();
+ if (innerContent) {
+ return `> **Note:** ${innerContent}\n`;
+ }
+ }
+ return '';
+ });
+
+ // Remove remaining JSX tags but keep inner text for simple cases
+ result = result.replace(/<([a-z][a-zA-Z]*)[^>]*>([\s\S]*?)<\/\1>/g, '$2');
+
+ // Remove self-closing HTML/JSX tags with attributes
+ result = result.replace(/<[a-zA-Z]+[^>]*\/>/g, '');
+
+ // Remove div tags with className (common in MDX)
+ result = result.replace(/