From 1059553fd50755a3ae23cbfeb2a6eaa99ac55325 Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Fri, 17 Jan 2025 16:06:52 +0100 Subject: [PATCH] migrate astro to latest --- .astro/content-assets.mjs | 1 + .astro/content-modules.mjs | 1 + .astro/content.d.ts | 166 ++++++++++++++++++ .astro/data-store.json | 1 + .astro/settings.json | 5 + .astro/types.d.ts | 2 + package.json | 22 +-- .../images => public/cli}/or-cli-status.png | Bin .../error-tracking/errors_session_view.gif | Bin .../error-tracking/errors_sessions_view.gif | Bin .../send-metadata/filter_metatdata.gif | Bin .../send-metadata/send_metadata.gif | Bin ..._de_pantalla_2022-06-17_a_las_10.40.45.png | Bin ..._de_pantalla_2022-06-17_a_las_12.16.42.png | Bin .../tutorials}/build-plugins/1.png | Bin .../tutorials}/build-plugins/2.png | Bin .../tutorials}/create-custom-metric.png | Bin .../tutorials}/create-dashboard.png | Bin .../custom-dashboard/dashboard_overview.gif | Bin .../custom-dashboard/dashboard_visibility.png | Bin .../custom-dashboard/organize_cards.gif | Bin .../custom-dashboard/remove_card.png | Bin .../custom-dashboard/rename_delete.png | Bin .../custom-dashboard/time_filter.png | Bin .../tutorials}/event-details.png | Bin .../tutorials}/events-section.png | Bin .../tutorials}/fetch/network-tab-details.png | Bin .../tutorials}/fetch/network-tab-imbored.png | Bin .../tutorials}/fetch/network-tab-requests.png | Bin .../fetch/network-tab-sanitized-data.png | Bin .../tutorials}/folder-structure.png | Bin .../tutorials}/funnels/add-metric-button.png | Bin .../funnels/adding-metric-to-dashboard.png | Bin .../tutorials}/funnels/funnel-details.png | Bin .../tutorials}/funnels/funnel-errors.png | Bin .../tutorials}/funnels/funnel-filters.png | Bin .../tutorials}/funnels/funnel-visual.png | Bin .../tutorials}/funnels/getting-to-metrics.png | Bin .../images => public/tutorials}/gatsby-ss.png | Bin .../tutorials}/graphql-ui.png | Bin .../tutorials}/heuristics/custom-events.png | Bin .../tutorials}/heuristics/devtools.png | Bin .../invite-users/add-user-warning.png | Bin .../tutorials}/invite-users/add_user.gif | Bin .../invite-users/click-config-cog.png | Bin .../tutorials}/invite-users/click-plus.png | Bin .../tutorials}/invite-users/click-teams.png | Bin .../tutorials}/invite-users/remove_user.gif | Bin .../js-error-dashboard/click-rage-filter.png | Bin .../js-error-dashboard/create-dashboard.png | Bin .../js-error-dashboard/dashboard-ready.png | Bin .../js-error-dashboard/filter-by-path.png | Bin .../js-error-dashboard/js-error-details.png | Bin .../js-error-dashboard/js-errors-tab.png | Bin .../js-error-dashboard/metric-type.png | Bin .../tutorials}/list-of-events.png | Bin .../tutorials}/logos/gatsby-logo.png | Bin .../tutorials}/logos/next-logo.png | Bin .../tutorials}/logos/nuxt-logo.png | Bin .../tutorials}/logos/react-logo.png | Bin .../tutorials}/logos/remix-logo.png | Bin .../tutorials}/logos/svelte-logo.png | Bin .../tutorials}/metadata/metadata1.png | Bin .../tutorials}/metadata/metadata2.png | Bin .../tutorials}/metadata/metadata3.png | Bin .../tutorials}/metadata/metadata4.png | Bin .../tutorials}/metadata/metadata5.png | Bin .../tutorials}/metadata/metadata6.png | Bin .../tutorials}/metadata/metadata7.png | Bin .../tutorials}/metadata/metadata8.png | Bin .../tutorials}/metadata/metadata9.png | Bin .../tutorials}/new-custom-metric.png | Bin .../tutorials}/omnisearch/drag_drop.png | Bin .../tutorials}/omnisearch/events.png | Bin .../tutorials}/omnisearch/filters.png | Bin .../tutorials}/omnisearch/logic_control.png | Bin .../tutorials}/omnisearch/operators.png | Bin .../tutorials}/omnisearch/saved_search.png | Bin .../tutorials}/pinia/new-tab.png | Bin .../tutorials}/pinia/state-changes.png | Bin .../tutorials}/product-events-section.png | Bin .../tutorials}/product-ui.png | Bin .../tutorials}/redux-outcome.png | Bin .../tutorials}/roles-and-access/add_role.gif | Bin .../roles-and-access/delete_role.gif | Bin .../tutorials}/sanitized-vs-not-sanitized.png | Bin .../images => public/tutorials}/sanitized.png | Bin .../tutorials}/snippet-code-screenshot.jpg | Bin .../tutorials}/spot/add_to_chrome.gif | Bin .../tutorials}/spot/create_account.gif | Bin .../tutorials}/spot/devtools_spot.png | Bin .../tutorials}/spot/record_tab.gif | Bin .../tutorials}/spot/share_spot.gif | Bin .../tutorials}/spot/spot_devtools.gif | Bin .../tutorials}/spot/spot_settings.gif | Bin .../tutorials}/spot/spots_menu.gif | Bin .../tutorials}/svelte-session.png | Bin .../tutorials}/the-final-dashboard.png | Bin .../images => public/tutorials}/vuex-ss.png | Bin .../tutorials}/zustand/state-replay.png | Bin .../tutorials}/zustand/zustand-tab.png | Bin ..._de_pantalla_2022-06-17_a_las_10.40.45.png | Bin ..._de_pantalla_2022-06-17_a_las_12.16.42.png | Bin .../using-or}/build-plugins/1.png | Bin .../using-or}/build-plugins/2.png | Bin .../using-or}/create-custom-metric.png | Bin .../using-or}/create-dashboard.png | Bin .../using-or}/event-details.png | Bin .../using-or}/events-section.png | Bin .../using-or}/folder-structure.png | Bin .../using-or}/funnels/add-metric-button.png | Bin .../funnels/adding-metric-to-dashboard.png | Bin .../using-or}/funnels/funnel-details.png | Bin .../using-or}/funnels/funnel-errors.png | Bin .../using-or}/funnels/funnel-filters.png | Bin .../using-or}/funnels/funnel-visual.png | Bin .../using-or}/funnels/getting-to-metrics.png | Bin .../images => public/using-or}/gatsby-ss.png | Bin .../images => public/using-or}/graphql-ui.png | Bin .../using-or}/heuristics/custom-events.png | Bin .../using-or}/heuristics/devtools.png | Bin .../invite-users/add-user-warning.png | Bin .../invite-users/click-config-cog.png | Bin .../using-or}/invite-users/click-plus.png | Bin .../using-or}/invite-users/click-teams.png | Bin .../js-error-dashboard/click-rage-filter.png | Bin .../js-error-dashboard/create-dashboard.png | Bin .../js-error-dashboard/dashboard-ready.png | Bin .../js-error-dashboard/filter-by-path.png | Bin .../js-error-dashboard/js-error-details.png | Bin .../js-error-dashboard/js-errors-tab.png | Bin .../js-error-dashboard/metric-type.png | Bin .../using-or}/list-of-events.png | Bin .../using-or}/logos/gatsby-logo.png | Bin .../using-or}/logos/next-logo.png | Bin .../using-or}/logos/nuxt-logo.png | Bin .../using-or}/logos/react-logo.png | Bin .../using-or}/logos/remix-logo.png | Bin .../using-or}/logos/svelte-logo.png | Bin .../using-or}/metadata/metadata1.png | Bin .../using-or}/metadata/metadata2.png | Bin .../using-or}/metadata/metadata3.png | Bin .../using-or}/metadata/metadata4.png | Bin .../using-or}/metadata/metadata5.png | Bin .../using-or}/metadata/metadata6.png | Bin .../using-or}/metadata/metadata7.png | Bin .../using-or}/metadata/metadata8.png | Bin .../using-or}/metadata/metadata9.png | Bin .../using-or}/new-custom-metric.png | Bin .../using-or}/pinia/new-tab.png | Bin .../using-or}/pinia/state-changes.png | Bin .../using-or}/product-events-section.png | Bin .../images => public/using-or}/product-ui.png | Bin .../using-or}/redux-outcome.png | Bin .../using-or}/sanitized-vs-not-sanitized.png | Bin .../images => public/using-or}/sanitized.png | Bin .../using-or}/snippet-code-screenshot.jpg | Bin .../using-or}/snippet/getting-snippet.png | Bin .../using-or}/snippet/new-project-ready.png | Bin .../using-or}/snippet/snippet-visible.png | Bin .../using-or}/svelte-session.png | Bin .../using-or}/the-final-dashboard.png | Bin .../images => public/using-or}/vuex-ss.png | Bin .../using-or}/zustand/state-replay.png | Bin .../using-or}/zustand/zustand-tab.png | Bin src/i18n/util.ts | 6 +- src/pages/en/cli.mdx | 2 +- src/pages/en/installation/error-reporting.mdx | 8 +- src/pages/en/installation/metadata.mdx | 5 +- src/pages/en/tutorials/build-plugins.mdx | 6 +- src/pages/en/tutorials/capture-request.mdx | 10 +- src/pages/en/tutorials/custom-dashboard.mdx | 14 +- src/pages/en/tutorials/custom-events.mdx | 8 +- src/pages/en/tutorials/custom-heuristics.mdx | 6 +- src/pages/en/tutorials/funnels.mdx | 16 +- src/pages/en/tutorials/graphql.mdx | 8 +- .../en/tutorials/invite-team-members.mdx | 4 +- .../en/tutorials/js-errors-dashboard.mdx | 16 +- src/pages/en/tutorials/metadata.mdx | 20 +-- src/pages/en/tutorials/omnisearch.mdx | 14 +- src/pages/en/tutorials/pinia.mdx | 6 +- src/pages/en/tutorials/redux.mdx | 6 +- src/pages/en/tutorials/roles-and-access.mdx | 4 +- src/pages/en/tutorials/spot.mdx | 16 +- src/pages/en/tutorials/vuex.mdx | 4 +- src/pages/en/tutorials/zustand.mdx | 6 +- src/pages/en/using-or/angular.mdx | 5 +- src/pages/en/using-or/gatsby.mdx | 4 +- src/pages/en/using-or/remix.mdx | 4 +- src/pages/en/using-or/snippet.mdx | 7 +- src/pages/en/using-or/svelte.mdx | 2 +- src/pages/en/v1.10.0/cli.mdx | 2 +- .../en/v1.10.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.11.0/cli.mdx | 2 +- .../en/v1.11.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.12.0/cli.mdx | 2 +- .../en/v1.12.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.13.0/cli.mdx | 2 +- .../en/v1.13.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.14.0/cli.mdx | 2 +- .../en/v1.14.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.15.0/cli.mdx | 2 +- .../en/v1.15.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.16.0/cli.mdx | 2 +- .../en/v1.16.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.17.0/cli.mdx | 2 +- .../en/v1.17.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.18.0/cli.mdx | 2 +- .../en/v1.18.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.19.0/cli.mdx | 2 +- .../en/v1.19.0/tutorials/build-plugins.mdx | 6 +- src/pages/en/v1.20.0/cli.mdx | 2 +- .../en/v1.20.0/tutorials/build-plugins.mdx | 6 +- .../en/v1.9.0/tutorials/build-plugins.mdx | 6 +- 214 files changed, 336 insertions(+), 163 deletions(-) create mode 100644 .astro/content-assets.mjs create mode 100644 .astro/content-modules.mjs create mode 100644 .astro/content.d.ts create mode 100644 .astro/data-store.json create mode 100644 .astro/settings.json create mode 100644 .astro/types.d.ts rename {src/pages/en/cli/images => public/cli}/or-cli-status.png (100%) rename {src/pages/en/installation/images => public/installation}/error-tracking/errors_session_view.gif (100%) rename {src/pages/en/installation/images => public/installation}/error-tracking/errors_sessions_view.gif (100%) rename {src/pages/en/installation/images => public/installation}/send-metadata/filter_metatdata.gif (100%) rename {src/pages/en/installation/images => public/installation}/send-metadata/send_metadata.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/build-plugins/1.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/build-plugins/2.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/create-custom-metric.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/create-dashboard.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/custom-dashboard/dashboard_overview.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/custom-dashboard/dashboard_visibility.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/custom-dashboard/organize_cards.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/custom-dashboard/remove_card.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/custom-dashboard/rename_delete.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/custom-dashboard/time_filter.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/event-details.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/events-section.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/fetch/network-tab-details.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/fetch/network-tab-imbored.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/fetch/network-tab-requests.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/fetch/network-tab-sanitized-data.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/folder-structure.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/funnels/add-metric-button.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/funnels/adding-metric-to-dashboard.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/funnels/funnel-details.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/funnels/funnel-errors.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/funnels/funnel-filters.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/funnels/funnel-visual.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/funnels/getting-to-metrics.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/gatsby-ss.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/graphql-ui.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/heuristics/custom-events.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/heuristics/devtools.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/invite-users/add-user-warning.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/invite-users/add_user.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/invite-users/click-config-cog.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/invite-users/click-plus.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/invite-users/click-teams.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/invite-users/remove_user.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/js-error-dashboard/click-rage-filter.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/js-error-dashboard/create-dashboard.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/js-error-dashboard/dashboard-ready.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/js-error-dashboard/filter-by-path.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/js-error-dashboard/js-error-details.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/js-error-dashboard/js-errors-tab.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/js-error-dashboard/metric-type.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/list-of-events.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/logos/gatsby-logo.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/logos/next-logo.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/logos/nuxt-logo.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/logos/react-logo.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/logos/remix-logo.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/logos/svelte-logo.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata1.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata2.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata3.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata4.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata5.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata6.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata7.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata8.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/metadata/metadata9.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/new-custom-metric.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/omnisearch/drag_drop.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/omnisearch/events.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/omnisearch/filters.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/omnisearch/logic_control.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/omnisearch/operators.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/omnisearch/saved_search.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/pinia/new-tab.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/pinia/state-changes.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/product-events-section.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/product-ui.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/redux-outcome.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/roles-and-access/add_role.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/roles-and-access/delete_role.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/sanitized-vs-not-sanitized.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/sanitized.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/snippet-code-screenshot.jpg (100%) rename {src/pages/en/tutorials/images => public/tutorials}/spot/add_to_chrome.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/spot/create_account.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/spot/devtools_spot.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/spot/record_tab.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/spot/share_spot.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/spot/spot_devtools.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/spot/spot_settings.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/spot/spots_menu.gif (100%) rename {src/pages/en/tutorials/images => public/tutorials}/svelte-session.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/the-final-dashboard.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/vuex-ss.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/zustand/state-replay.png (100%) rename {src/pages/en/tutorials/images => public/tutorials}/zustand/zustand-tab.png (100%) rename {src/pages/en/using-or/images => public/using-or}/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png (100%) rename {src/pages/en/using-or/images => public/using-or}/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png (100%) rename {src/pages/en/using-or/images => public/using-or}/build-plugins/1.png (100%) rename {src/pages/en/using-or/images => public/using-or}/build-plugins/2.png (100%) rename {src/pages/en/using-or/images => public/using-or}/create-custom-metric.png (100%) rename {src/pages/en/using-or/images => public/using-or}/create-dashboard.png (100%) rename {src/pages/en/using-or/images => public/using-or}/event-details.png (100%) rename {src/pages/en/using-or/images => public/using-or}/events-section.png (100%) rename {src/pages/en/using-or/images => public/using-or}/folder-structure.png (100%) rename {src/pages/en/using-or/images => public/using-or}/funnels/add-metric-button.png (100%) rename {src/pages/en/using-or/images => public/using-or}/funnels/adding-metric-to-dashboard.png (100%) rename {src/pages/en/using-or/images => public/using-or}/funnels/funnel-details.png (100%) rename {src/pages/en/using-or/images => public/using-or}/funnels/funnel-errors.png (100%) rename {src/pages/en/using-or/images => public/using-or}/funnels/funnel-filters.png (100%) rename {src/pages/en/using-or/images => public/using-or}/funnels/funnel-visual.png (100%) rename {src/pages/en/using-or/images => public/using-or}/funnels/getting-to-metrics.png (100%) rename {src/pages/en/using-or/images => public/using-or}/gatsby-ss.png (100%) rename {src/pages/en/using-or/images => public/using-or}/graphql-ui.png (100%) rename {src/pages/en/using-or/images => public/using-or}/heuristics/custom-events.png (100%) rename {src/pages/en/using-or/images => public/using-or}/heuristics/devtools.png (100%) rename {src/pages/en/using-or/images => public/using-or}/invite-users/add-user-warning.png (100%) rename {src/pages/en/using-or/images => public/using-or}/invite-users/click-config-cog.png (100%) rename {src/pages/en/using-or/images => public/using-or}/invite-users/click-plus.png (100%) rename {src/pages/en/using-or/images => public/using-or}/invite-users/click-teams.png (100%) rename {src/pages/en/using-or/images => public/using-or}/js-error-dashboard/click-rage-filter.png (100%) rename {src/pages/en/using-or/images => public/using-or}/js-error-dashboard/create-dashboard.png (100%) rename {src/pages/en/using-or/images => public/using-or}/js-error-dashboard/dashboard-ready.png (100%) rename {src/pages/en/using-or/images => public/using-or}/js-error-dashboard/filter-by-path.png (100%) rename {src/pages/en/using-or/images => public/using-or}/js-error-dashboard/js-error-details.png (100%) rename {src/pages/en/using-or/images => public/using-or}/js-error-dashboard/js-errors-tab.png (100%) rename {src/pages/en/using-or/images => public/using-or}/js-error-dashboard/metric-type.png (100%) rename {src/pages/en/using-or/images => public/using-or}/list-of-events.png (100%) rename {src/pages/en/using-or/images => public/using-or}/logos/gatsby-logo.png (100%) rename {src/pages/en/using-or/images => public/using-or}/logos/next-logo.png (100%) rename {src/pages/en/using-or/images => public/using-or}/logos/nuxt-logo.png (100%) rename {src/pages/en/using-or/images => public/using-or}/logos/react-logo.png (100%) rename {src/pages/en/using-or/images => public/using-or}/logos/remix-logo.png (100%) rename {src/pages/en/using-or/images => public/using-or}/logos/svelte-logo.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata1.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata2.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata3.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata4.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata5.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata6.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata7.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata8.png (100%) rename {src/pages/en/using-or/images => public/using-or}/metadata/metadata9.png (100%) rename {src/pages/en/using-or/images => public/using-or}/new-custom-metric.png (100%) rename {src/pages/en/using-or/images => public/using-or}/pinia/new-tab.png (100%) rename {src/pages/en/using-or/images => public/using-or}/pinia/state-changes.png (100%) rename {src/pages/en/using-or/images => public/using-or}/product-events-section.png (100%) rename {src/pages/en/using-or/images => public/using-or}/product-ui.png (100%) rename {src/pages/en/using-or/images => public/using-or}/redux-outcome.png (100%) rename {src/pages/en/using-or/images => public/using-or}/sanitized-vs-not-sanitized.png (100%) rename {src/pages/en/using-or/images => public/using-or}/sanitized.png (100%) rename {src/pages/en/using-or/images => public/using-or}/snippet-code-screenshot.jpg (100%) rename {src/pages/en/using-or/images => public/using-or}/snippet/getting-snippet.png (100%) rename {src/pages/en/using-or/images => public/using-or}/snippet/new-project-ready.png (100%) rename {src/pages/en/using-or/images => public/using-or}/snippet/snippet-visible.png (100%) rename {src/pages/en/using-or/images => public/using-or}/svelte-session.png (100%) rename {src/pages/en/using-or/images => public/using-or}/the-final-dashboard.png (100%) rename {src/pages/en/using-or/images => public/using-or}/vuex-ss.png (100%) rename {src/pages/en/using-or/images => public/using-or}/zustand/state-replay.png (100%) rename {src/pages/en/using-or/images => public/using-or}/zustand/zustand-tab.png (100%) diff --git a/.astro/content-assets.mjs b/.astro/content-assets.mjs new file mode 100644 index 00000000..2b8b8234 --- /dev/null +++ b/.astro/content-assets.mjs @@ -0,0 +1 @@ +export default new Map(); \ No newline at end of file diff --git a/.astro/content-modules.mjs b/.astro/content-modules.mjs new file mode 100644 index 00000000..2b8b8234 --- /dev/null +++ b/.astro/content-modules.mjs @@ -0,0 +1 @@ +export default new Map(); \ No newline at end of file diff --git a/.astro/content.d.ts b/.astro/content.d.ts new file mode 100644 index 00000000..72e51f56 --- /dev/null +++ b/.astro/content.d.ts @@ -0,0 +1,166 @@ +declare module 'astro:content' { + interface Render { + '.mdx': Promise<{ + Content: import('astro').MarkdownInstance<{}>['Content']; + headings: import('astro').MarkdownHeading[]; + remarkPluginFrontmatter: Record; + components: import('astro').MDXInstance<{}>['components']; + }>; + } +} + +declare module 'astro:content' { + export interface RenderResult { + Content: import('astro/runtime/server/index.js').AstroComponentFactory; + headings: import('astro').MarkdownHeading[]; + remarkPluginFrontmatter: Record; + } + interface Render { + '.md': Promise; + } + + export interface RenderedContent { + html: string; + metadata?: { + imagePaths: Array; + [key: string]: unknown; + }; + } +} + +declare module 'astro:content' { + type Flatten = T extends { [K: string]: infer U } ? U : never; + + export type CollectionKey = keyof AnyEntryMap; + export type CollectionEntry = Flatten; + + export type ContentCollectionKey = keyof ContentEntryMap; + export type DataCollectionKey = keyof DataEntryMap; + + type AllValuesOf = T extends any ? T[keyof T] : never; + type ValidContentEntrySlug = AllValuesOf< + ContentEntryMap[C] + >['slug']; + + /** @deprecated Use `getEntry` instead. */ + export function getEntryBySlug< + C extends keyof ContentEntryMap, + E extends ValidContentEntrySlug | (string & {}), + >( + collection: C, + // Note that this has to accept a regular string too, for SSR + entrySlug: E, + ): E extends ValidContentEntrySlug + ? Promise> + : Promise | undefined>; + + /** @deprecated Use `getEntry` instead. */ + export function getDataEntryById( + collection: C, + entryId: E, + ): Promise>; + + export function getCollection>( + collection: C, + filter?: (entry: CollectionEntry) => entry is E, + ): Promise; + export function getCollection( + collection: C, + filter?: (entry: CollectionEntry) => unknown, + ): Promise[]>; + + export function getEntry< + C extends keyof ContentEntryMap, + E extends ValidContentEntrySlug | (string & {}), + >(entry: { + collection: C; + slug: E; + }): E extends ValidContentEntrySlug + ? Promise> + : Promise | undefined>; + export function getEntry< + C extends keyof DataEntryMap, + E extends keyof DataEntryMap[C] | (string & {}), + >(entry: { + collection: C; + id: E; + }): E extends keyof DataEntryMap[C] + ? Promise + : Promise | undefined>; + export function getEntry< + C extends keyof ContentEntryMap, + E extends ValidContentEntrySlug | (string & {}), + >( + collection: C, + slug: E, + ): E extends ValidContentEntrySlug + ? Promise> + : Promise | undefined>; + export function getEntry< + C extends keyof DataEntryMap, + E extends keyof DataEntryMap[C] | (string & {}), + >( + collection: C, + id: E, + ): E extends keyof DataEntryMap[C] + ? string extends keyof DataEntryMap[C] + ? Promise | undefined + : Promise + : Promise | undefined>; + + /** Resolve an array of entry references from the same collection */ + export function getEntries( + entries: { + collection: C; + slug: ValidContentEntrySlug; + }[], + ): Promise[]>; + export function getEntries( + entries: { + collection: C; + id: keyof DataEntryMap[C]; + }[], + ): Promise[]>; + + export function render( + entry: AnyEntryMap[C][string], + ): Promise; + + export function reference( + collection: C, + ): import('astro/zod').ZodEffects< + import('astro/zod').ZodString, + C extends keyof ContentEntryMap + ? { + collection: C; + slug: ValidContentEntrySlug; + } + : { + collection: C; + id: keyof DataEntryMap[C]; + } + >; + // Allow generic `string` to avoid excessive type errors in the config + // if `dev` is not running to update as you edit. + // Invalid collection names will be caught at build time. + export function reference( + collection: C, + ): import('astro/zod').ZodEffects; + + type ReturnTypeOrOriginal = T extends (...args: any[]) => infer R ? R : T; + type InferEntrySchema = import('astro/zod').infer< + ReturnTypeOrOriginal['schema']> + >; + + type ContentEntryMap = { + + }; + + type DataEntryMap = { + + }; + + type AnyEntryMap = ContentEntryMap & DataEntryMap; + + export type ContentConfig = typeof import("../src/content.config.mjs"); +} diff --git a/.astro/data-store.json b/.astro/data-store.json new file mode 100644 index 00000000..3f2b6301 --- /dev/null +++ b/.astro/data-store.json @@ -0,0 +1 @@ +[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.1.7","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://docs.openreplay.com/\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[]},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":\"shiki\",\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"slack-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[null,null],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"responsiveImages\":false},\"legacy\":{\"collections\":false}}"] \ No newline at end of file diff --git a/.astro/settings.json b/.astro/settings.json new file mode 100644 index 00000000..bba74b97 --- /dev/null +++ b/.astro/settings.json @@ -0,0 +1,5 @@ +{ + "_variables": { + "lastUpdateCheck": 1737124929637 + } +} \ No newline at end of file diff --git a/.astro/types.d.ts b/.astro/types.d.ts new file mode 100644 index 00000000..03d7cc43 --- /dev/null +++ b/.astro/types.d.ts @@ -0,0 +1,2 @@ +/// +/// \ No newline at end of file diff --git a/package.json b/package.json index 9c1c82e4..6c815d0d 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,8 @@ "@11ty/eleventy-fetch": "^3.0.0", "@actions/core": "^1.9.1", "@algolia/client-search": "^4.14.2", - "@astrojs/preact": "^2.0.2", - "@astrojs/sitemap": "1.0.0", + "@astrojs/preact": "^4.0.2", + "@astrojs/sitemap": "3.2.1", "@babel/core": "^7.23.2", "@docsearch/css": "^3.2.2", "@docsearch/react": "^3.2.0", @@ -39,15 +39,15 @@ "@types/node": "^18.6.4", "@typescript-eslint/eslint-plugin": "^5.32.0", "@typescript-eslint/parser": "^5.32.0", - "astro": "^1.6.1", - "astro-eslint-parser": "^0.4.5", - "astro-og-canvas": "^0.1.5", + "astro": "^5.1.7", + "astro-eslint-parser": "^1.1.0", + "astro-og-canvas": "^0.5.6", "bcp-47-normalize": "^2.1.0", "canvaskit-wasm": "^0.37.0", "chroma-js": "^2.4.2", "dedent-js": "^1.0.1", "eslint": "^8.21.0", - "eslint-plugin-astro": "^0.14.0", + "eslint-plugin-astro": "^1.3.1", "fast-glob": "^3.2.11", "github-slugger": "^1.5.0", "gray-matter": "^4.0.3", @@ -77,9 +77,9 @@ "unist-util-visit": "^4.1.0" }, "dependencies": { - "@astrojs/mdx": "^0.11.6", - "@astrojs/react": "^1.2.2", - "@astrojs/tailwind": "^2.1.3", + "@astrojs/mdx": "^4.0.6", + "@astrojs/react": "^4.1.5", + "@astrojs/tailwind": "^5.1.4", "@fontsource/figtree": "^4.5.2", "@fontsource/fira-code": "^4.5.13", "@fontsource/ibm-plex-mono": "^4.5.10", @@ -87,7 +87,7 @@ "@nanostores/preact": "^0.1.3", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.9", - "astro-embed": "^0.2.0", + "astro-embed": "^0.9.0", "astro-tooltips": "^0.6.2", "dotenv": "^16.0.3", "algoliasearch": "^4.24.0", @@ -101,7 +101,7 @@ "rehype-autolink-headings": "^6.1.1", "rehype-slug": "^5.0.1", "remark-copy-linked-files": "^1.5.0", - "remark-gfm": "^3.0.1", + "remark-gfm": "^4.0.0", "remark-smartypants": "^2.0.0", "sass": "^1.54.3", "tailwindcss": "^3.2.4" diff --git a/src/pages/en/cli/images/or-cli-status.png b/public/cli/or-cli-status.png similarity index 100% rename from src/pages/en/cli/images/or-cli-status.png rename to public/cli/or-cli-status.png diff --git a/src/pages/en/installation/images/error-tracking/errors_session_view.gif b/public/installation/error-tracking/errors_session_view.gif similarity index 100% rename from src/pages/en/installation/images/error-tracking/errors_session_view.gif rename to public/installation/error-tracking/errors_session_view.gif diff --git a/src/pages/en/installation/images/error-tracking/errors_sessions_view.gif b/public/installation/error-tracking/errors_sessions_view.gif similarity index 100% rename from src/pages/en/installation/images/error-tracking/errors_sessions_view.gif rename to public/installation/error-tracking/errors_sessions_view.gif diff --git a/src/pages/en/installation/images/send-metadata/filter_metatdata.gif b/public/installation/send-metadata/filter_metatdata.gif similarity index 100% rename from src/pages/en/installation/images/send-metadata/filter_metatdata.gif rename to public/installation/send-metadata/filter_metatdata.gif diff --git a/src/pages/en/installation/images/send-metadata/send_metadata.gif b/public/installation/send-metadata/send_metadata.gif similarity index 100% rename from src/pages/en/installation/images/send-metadata/send_metadata.gif rename to public/installation/send-metadata/send_metadata.gif diff --git a/src/pages/en/tutorials/images/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png b/public/tutorials/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png similarity index 100% rename from src/pages/en/tutorials/images/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png rename to public/tutorials/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png diff --git a/src/pages/en/tutorials/images/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png b/public/tutorials/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png similarity index 100% rename from src/pages/en/tutorials/images/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png rename to public/tutorials/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png diff --git a/src/pages/en/tutorials/images/build-plugins/1.png b/public/tutorials/build-plugins/1.png similarity index 100% rename from src/pages/en/tutorials/images/build-plugins/1.png rename to public/tutorials/build-plugins/1.png diff --git a/src/pages/en/tutorials/images/build-plugins/2.png b/public/tutorials/build-plugins/2.png similarity index 100% rename from src/pages/en/tutorials/images/build-plugins/2.png rename to public/tutorials/build-plugins/2.png diff --git a/src/pages/en/tutorials/images/create-custom-metric.png b/public/tutorials/create-custom-metric.png similarity index 100% rename from src/pages/en/tutorials/images/create-custom-metric.png rename to public/tutorials/create-custom-metric.png diff --git a/src/pages/en/tutorials/images/create-dashboard.png b/public/tutorials/create-dashboard.png similarity index 100% rename from src/pages/en/tutorials/images/create-dashboard.png rename to public/tutorials/create-dashboard.png diff --git a/src/pages/en/tutorials/images/custom-dashboard/dashboard_overview.gif b/public/tutorials/custom-dashboard/dashboard_overview.gif similarity index 100% rename from src/pages/en/tutorials/images/custom-dashboard/dashboard_overview.gif rename to public/tutorials/custom-dashboard/dashboard_overview.gif diff --git a/src/pages/en/tutorials/images/custom-dashboard/dashboard_visibility.png b/public/tutorials/custom-dashboard/dashboard_visibility.png similarity index 100% rename from src/pages/en/tutorials/images/custom-dashboard/dashboard_visibility.png rename to public/tutorials/custom-dashboard/dashboard_visibility.png diff --git a/src/pages/en/tutorials/images/custom-dashboard/organize_cards.gif b/public/tutorials/custom-dashboard/organize_cards.gif similarity index 100% rename from src/pages/en/tutorials/images/custom-dashboard/organize_cards.gif rename to public/tutorials/custom-dashboard/organize_cards.gif diff --git a/src/pages/en/tutorials/images/custom-dashboard/remove_card.png b/public/tutorials/custom-dashboard/remove_card.png similarity index 100% rename from src/pages/en/tutorials/images/custom-dashboard/remove_card.png rename to public/tutorials/custom-dashboard/remove_card.png diff --git a/src/pages/en/tutorials/images/custom-dashboard/rename_delete.png b/public/tutorials/custom-dashboard/rename_delete.png similarity index 100% rename from src/pages/en/tutorials/images/custom-dashboard/rename_delete.png rename to public/tutorials/custom-dashboard/rename_delete.png diff --git a/src/pages/en/tutorials/images/custom-dashboard/time_filter.png b/public/tutorials/custom-dashboard/time_filter.png similarity index 100% rename from src/pages/en/tutorials/images/custom-dashboard/time_filter.png rename to public/tutorials/custom-dashboard/time_filter.png diff --git a/src/pages/en/tutorials/images/event-details.png b/public/tutorials/event-details.png similarity index 100% rename from src/pages/en/tutorials/images/event-details.png rename to public/tutorials/event-details.png diff --git a/src/pages/en/tutorials/images/events-section.png b/public/tutorials/events-section.png similarity index 100% rename from src/pages/en/tutorials/images/events-section.png rename to public/tutorials/events-section.png diff --git a/src/pages/en/tutorials/images/fetch/network-tab-details.png b/public/tutorials/fetch/network-tab-details.png similarity index 100% rename from src/pages/en/tutorials/images/fetch/network-tab-details.png rename to public/tutorials/fetch/network-tab-details.png diff --git a/src/pages/en/tutorials/images/fetch/network-tab-imbored.png b/public/tutorials/fetch/network-tab-imbored.png similarity index 100% rename from src/pages/en/tutorials/images/fetch/network-tab-imbored.png rename to public/tutorials/fetch/network-tab-imbored.png diff --git a/src/pages/en/tutorials/images/fetch/network-tab-requests.png b/public/tutorials/fetch/network-tab-requests.png similarity index 100% rename from src/pages/en/tutorials/images/fetch/network-tab-requests.png rename to public/tutorials/fetch/network-tab-requests.png diff --git a/src/pages/en/tutorials/images/fetch/network-tab-sanitized-data.png b/public/tutorials/fetch/network-tab-sanitized-data.png similarity index 100% rename from src/pages/en/tutorials/images/fetch/network-tab-sanitized-data.png rename to public/tutorials/fetch/network-tab-sanitized-data.png diff --git a/src/pages/en/tutorials/images/folder-structure.png b/public/tutorials/folder-structure.png similarity index 100% rename from src/pages/en/tutorials/images/folder-structure.png rename to public/tutorials/folder-structure.png diff --git a/src/pages/en/tutorials/images/funnels/add-metric-button.png b/public/tutorials/funnels/add-metric-button.png similarity index 100% rename from src/pages/en/tutorials/images/funnels/add-metric-button.png rename to public/tutorials/funnels/add-metric-button.png diff --git a/src/pages/en/tutorials/images/funnels/adding-metric-to-dashboard.png b/public/tutorials/funnels/adding-metric-to-dashboard.png similarity index 100% rename from src/pages/en/tutorials/images/funnels/adding-metric-to-dashboard.png rename to public/tutorials/funnels/adding-metric-to-dashboard.png diff --git a/src/pages/en/tutorials/images/funnels/funnel-details.png b/public/tutorials/funnels/funnel-details.png similarity index 100% rename from src/pages/en/tutorials/images/funnels/funnel-details.png rename to public/tutorials/funnels/funnel-details.png diff --git a/src/pages/en/tutorials/images/funnels/funnel-errors.png b/public/tutorials/funnels/funnel-errors.png similarity index 100% rename from src/pages/en/tutorials/images/funnels/funnel-errors.png rename to public/tutorials/funnels/funnel-errors.png diff --git a/src/pages/en/tutorials/images/funnels/funnel-filters.png b/public/tutorials/funnels/funnel-filters.png similarity index 100% rename from src/pages/en/tutorials/images/funnels/funnel-filters.png rename to public/tutorials/funnels/funnel-filters.png diff --git a/src/pages/en/tutorials/images/funnels/funnel-visual.png b/public/tutorials/funnels/funnel-visual.png similarity index 100% rename from src/pages/en/tutorials/images/funnels/funnel-visual.png rename to public/tutorials/funnels/funnel-visual.png diff --git a/src/pages/en/tutorials/images/funnels/getting-to-metrics.png b/public/tutorials/funnels/getting-to-metrics.png similarity index 100% rename from src/pages/en/tutorials/images/funnels/getting-to-metrics.png rename to public/tutorials/funnels/getting-to-metrics.png diff --git a/src/pages/en/tutorials/images/gatsby-ss.png b/public/tutorials/gatsby-ss.png similarity index 100% rename from src/pages/en/tutorials/images/gatsby-ss.png rename to public/tutorials/gatsby-ss.png diff --git a/src/pages/en/tutorials/images/graphql-ui.png b/public/tutorials/graphql-ui.png similarity index 100% rename from src/pages/en/tutorials/images/graphql-ui.png rename to public/tutorials/graphql-ui.png diff --git a/src/pages/en/tutorials/images/heuristics/custom-events.png b/public/tutorials/heuristics/custom-events.png similarity index 100% rename from src/pages/en/tutorials/images/heuristics/custom-events.png rename to public/tutorials/heuristics/custom-events.png diff --git a/src/pages/en/tutorials/images/heuristics/devtools.png b/public/tutorials/heuristics/devtools.png similarity index 100% rename from src/pages/en/tutorials/images/heuristics/devtools.png rename to public/tutorials/heuristics/devtools.png diff --git a/src/pages/en/tutorials/images/invite-users/add-user-warning.png b/public/tutorials/invite-users/add-user-warning.png similarity index 100% rename from src/pages/en/tutorials/images/invite-users/add-user-warning.png rename to public/tutorials/invite-users/add-user-warning.png diff --git a/src/pages/en/tutorials/images/invite-users/add_user.gif b/public/tutorials/invite-users/add_user.gif similarity index 100% rename from src/pages/en/tutorials/images/invite-users/add_user.gif rename to public/tutorials/invite-users/add_user.gif diff --git a/src/pages/en/tutorials/images/invite-users/click-config-cog.png b/public/tutorials/invite-users/click-config-cog.png similarity index 100% rename from src/pages/en/tutorials/images/invite-users/click-config-cog.png rename to public/tutorials/invite-users/click-config-cog.png diff --git a/src/pages/en/tutorials/images/invite-users/click-plus.png b/public/tutorials/invite-users/click-plus.png similarity index 100% rename from src/pages/en/tutorials/images/invite-users/click-plus.png rename to public/tutorials/invite-users/click-plus.png diff --git a/src/pages/en/tutorials/images/invite-users/click-teams.png b/public/tutorials/invite-users/click-teams.png similarity index 100% rename from src/pages/en/tutorials/images/invite-users/click-teams.png rename to public/tutorials/invite-users/click-teams.png diff --git a/src/pages/en/tutorials/images/invite-users/remove_user.gif b/public/tutorials/invite-users/remove_user.gif similarity index 100% rename from src/pages/en/tutorials/images/invite-users/remove_user.gif rename to public/tutorials/invite-users/remove_user.gif diff --git a/src/pages/en/tutorials/images/js-error-dashboard/click-rage-filter.png b/public/tutorials/js-error-dashboard/click-rage-filter.png similarity index 100% rename from src/pages/en/tutorials/images/js-error-dashboard/click-rage-filter.png rename to public/tutorials/js-error-dashboard/click-rage-filter.png diff --git a/src/pages/en/tutorials/images/js-error-dashboard/create-dashboard.png b/public/tutorials/js-error-dashboard/create-dashboard.png similarity index 100% rename from src/pages/en/tutorials/images/js-error-dashboard/create-dashboard.png rename to public/tutorials/js-error-dashboard/create-dashboard.png diff --git a/src/pages/en/tutorials/images/js-error-dashboard/dashboard-ready.png b/public/tutorials/js-error-dashboard/dashboard-ready.png similarity index 100% rename from src/pages/en/tutorials/images/js-error-dashboard/dashboard-ready.png rename to public/tutorials/js-error-dashboard/dashboard-ready.png diff --git a/src/pages/en/tutorials/images/js-error-dashboard/filter-by-path.png b/public/tutorials/js-error-dashboard/filter-by-path.png similarity index 100% rename from src/pages/en/tutorials/images/js-error-dashboard/filter-by-path.png rename to public/tutorials/js-error-dashboard/filter-by-path.png diff --git a/src/pages/en/tutorials/images/js-error-dashboard/js-error-details.png b/public/tutorials/js-error-dashboard/js-error-details.png similarity index 100% rename from src/pages/en/tutorials/images/js-error-dashboard/js-error-details.png rename to public/tutorials/js-error-dashboard/js-error-details.png diff --git a/src/pages/en/tutorials/images/js-error-dashboard/js-errors-tab.png b/public/tutorials/js-error-dashboard/js-errors-tab.png similarity index 100% rename from src/pages/en/tutorials/images/js-error-dashboard/js-errors-tab.png rename to public/tutorials/js-error-dashboard/js-errors-tab.png diff --git a/src/pages/en/tutorials/images/js-error-dashboard/metric-type.png b/public/tutorials/js-error-dashboard/metric-type.png similarity index 100% rename from src/pages/en/tutorials/images/js-error-dashboard/metric-type.png rename to public/tutorials/js-error-dashboard/metric-type.png diff --git a/src/pages/en/tutorials/images/list-of-events.png b/public/tutorials/list-of-events.png similarity index 100% rename from src/pages/en/tutorials/images/list-of-events.png rename to public/tutorials/list-of-events.png diff --git a/src/pages/en/tutorials/images/logos/gatsby-logo.png b/public/tutorials/logos/gatsby-logo.png similarity index 100% rename from src/pages/en/tutorials/images/logos/gatsby-logo.png rename to public/tutorials/logos/gatsby-logo.png diff --git a/src/pages/en/tutorials/images/logos/next-logo.png b/public/tutorials/logos/next-logo.png similarity index 100% rename from src/pages/en/tutorials/images/logos/next-logo.png rename to public/tutorials/logos/next-logo.png diff --git a/src/pages/en/tutorials/images/logos/nuxt-logo.png b/public/tutorials/logos/nuxt-logo.png similarity index 100% rename from src/pages/en/tutorials/images/logos/nuxt-logo.png rename to public/tutorials/logos/nuxt-logo.png diff --git a/src/pages/en/tutorials/images/logos/react-logo.png b/public/tutorials/logos/react-logo.png similarity index 100% rename from src/pages/en/tutorials/images/logos/react-logo.png rename to public/tutorials/logos/react-logo.png diff --git a/src/pages/en/tutorials/images/logos/remix-logo.png b/public/tutorials/logos/remix-logo.png similarity index 100% rename from src/pages/en/tutorials/images/logos/remix-logo.png rename to public/tutorials/logos/remix-logo.png diff --git a/src/pages/en/tutorials/images/logos/svelte-logo.png b/public/tutorials/logos/svelte-logo.png similarity index 100% rename from src/pages/en/tutorials/images/logos/svelte-logo.png rename to public/tutorials/logos/svelte-logo.png diff --git a/src/pages/en/tutorials/images/metadata/metadata1.png b/public/tutorials/metadata/metadata1.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata1.png rename to public/tutorials/metadata/metadata1.png diff --git a/src/pages/en/tutorials/images/metadata/metadata2.png b/public/tutorials/metadata/metadata2.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata2.png rename to public/tutorials/metadata/metadata2.png diff --git a/src/pages/en/tutorials/images/metadata/metadata3.png b/public/tutorials/metadata/metadata3.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata3.png rename to public/tutorials/metadata/metadata3.png diff --git a/src/pages/en/tutorials/images/metadata/metadata4.png b/public/tutorials/metadata/metadata4.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata4.png rename to public/tutorials/metadata/metadata4.png diff --git a/src/pages/en/tutorials/images/metadata/metadata5.png b/public/tutorials/metadata/metadata5.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata5.png rename to public/tutorials/metadata/metadata5.png diff --git a/src/pages/en/tutorials/images/metadata/metadata6.png b/public/tutorials/metadata/metadata6.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata6.png rename to public/tutorials/metadata/metadata6.png diff --git a/src/pages/en/tutorials/images/metadata/metadata7.png b/public/tutorials/metadata/metadata7.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata7.png rename to public/tutorials/metadata/metadata7.png diff --git a/src/pages/en/tutorials/images/metadata/metadata8.png b/public/tutorials/metadata/metadata8.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata8.png rename to public/tutorials/metadata/metadata8.png diff --git a/src/pages/en/tutorials/images/metadata/metadata9.png b/public/tutorials/metadata/metadata9.png similarity index 100% rename from src/pages/en/tutorials/images/metadata/metadata9.png rename to public/tutorials/metadata/metadata9.png diff --git a/src/pages/en/tutorials/images/new-custom-metric.png b/public/tutorials/new-custom-metric.png similarity index 100% rename from src/pages/en/tutorials/images/new-custom-metric.png rename to public/tutorials/new-custom-metric.png diff --git a/src/pages/en/tutorials/images/omnisearch/drag_drop.png b/public/tutorials/omnisearch/drag_drop.png similarity index 100% rename from src/pages/en/tutorials/images/omnisearch/drag_drop.png rename to public/tutorials/omnisearch/drag_drop.png diff --git a/src/pages/en/tutorials/images/omnisearch/events.png b/public/tutorials/omnisearch/events.png similarity index 100% rename from src/pages/en/tutorials/images/omnisearch/events.png rename to public/tutorials/omnisearch/events.png diff --git a/src/pages/en/tutorials/images/omnisearch/filters.png b/public/tutorials/omnisearch/filters.png similarity index 100% rename from src/pages/en/tutorials/images/omnisearch/filters.png rename to public/tutorials/omnisearch/filters.png diff --git a/src/pages/en/tutorials/images/omnisearch/logic_control.png b/public/tutorials/omnisearch/logic_control.png similarity index 100% rename from src/pages/en/tutorials/images/omnisearch/logic_control.png rename to public/tutorials/omnisearch/logic_control.png diff --git a/src/pages/en/tutorials/images/omnisearch/operators.png b/public/tutorials/omnisearch/operators.png similarity index 100% rename from src/pages/en/tutorials/images/omnisearch/operators.png rename to public/tutorials/omnisearch/operators.png diff --git a/src/pages/en/tutorials/images/omnisearch/saved_search.png b/public/tutorials/omnisearch/saved_search.png similarity index 100% rename from src/pages/en/tutorials/images/omnisearch/saved_search.png rename to public/tutorials/omnisearch/saved_search.png diff --git a/src/pages/en/tutorials/images/pinia/new-tab.png b/public/tutorials/pinia/new-tab.png similarity index 100% rename from src/pages/en/tutorials/images/pinia/new-tab.png rename to public/tutorials/pinia/new-tab.png diff --git a/src/pages/en/tutorials/images/pinia/state-changes.png b/public/tutorials/pinia/state-changes.png similarity index 100% rename from src/pages/en/tutorials/images/pinia/state-changes.png rename to public/tutorials/pinia/state-changes.png diff --git a/src/pages/en/tutorials/images/product-events-section.png b/public/tutorials/product-events-section.png similarity index 100% rename from src/pages/en/tutorials/images/product-events-section.png rename to public/tutorials/product-events-section.png diff --git a/src/pages/en/tutorials/images/product-ui.png b/public/tutorials/product-ui.png similarity index 100% rename from src/pages/en/tutorials/images/product-ui.png rename to public/tutorials/product-ui.png diff --git a/src/pages/en/tutorials/images/redux-outcome.png b/public/tutorials/redux-outcome.png similarity index 100% rename from src/pages/en/tutorials/images/redux-outcome.png rename to public/tutorials/redux-outcome.png diff --git a/src/pages/en/tutorials/images/roles-and-access/add_role.gif b/public/tutorials/roles-and-access/add_role.gif similarity index 100% rename from src/pages/en/tutorials/images/roles-and-access/add_role.gif rename to public/tutorials/roles-and-access/add_role.gif diff --git a/src/pages/en/tutorials/images/roles-and-access/delete_role.gif b/public/tutorials/roles-and-access/delete_role.gif similarity index 100% rename from src/pages/en/tutorials/images/roles-and-access/delete_role.gif rename to public/tutorials/roles-and-access/delete_role.gif diff --git a/src/pages/en/tutorials/images/sanitized-vs-not-sanitized.png b/public/tutorials/sanitized-vs-not-sanitized.png similarity index 100% rename from src/pages/en/tutorials/images/sanitized-vs-not-sanitized.png rename to public/tutorials/sanitized-vs-not-sanitized.png diff --git a/src/pages/en/tutorials/images/sanitized.png b/public/tutorials/sanitized.png similarity index 100% rename from src/pages/en/tutorials/images/sanitized.png rename to public/tutorials/sanitized.png diff --git a/src/pages/en/tutorials/images/snippet-code-screenshot.jpg b/public/tutorials/snippet-code-screenshot.jpg similarity index 100% rename from src/pages/en/tutorials/images/snippet-code-screenshot.jpg rename to public/tutorials/snippet-code-screenshot.jpg diff --git a/src/pages/en/tutorials/images/spot/add_to_chrome.gif b/public/tutorials/spot/add_to_chrome.gif similarity index 100% rename from src/pages/en/tutorials/images/spot/add_to_chrome.gif rename to public/tutorials/spot/add_to_chrome.gif diff --git a/src/pages/en/tutorials/images/spot/create_account.gif b/public/tutorials/spot/create_account.gif similarity index 100% rename from src/pages/en/tutorials/images/spot/create_account.gif rename to public/tutorials/spot/create_account.gif diff --git a/src/pages/en/tutorials/images/spot/devtools_spot.png b/public/tutorials/spot/devtools_spot.png similarity index 100% rename from src/pages/en/tutorials/images/spot/devtools_spot.png rename to public/tutorials/spot/devtools_spot.png diff --git a/src/pages/en/tutorials/images/spot/record_tab.gif b/public/tutorials/spot/record_tab.gif similarity index 100% rename from src/pages/en/tutorials/images/spot/record_tab.gif rename to public/tutorials/spot/record_tab.gif diff --git a/src/pages/en/tutorials/images/spot/share_spot.gif b/public/tutorials/spot/share_spot.gif similarity index 100% rename from src/pages/en/tutorials/images/spot/share_spot.gif rename to public/tutorials/spot/share_spot.gif diff --git a/src/pages/en/tutorials/images/spot/spot_devtools.gif b/public/tutorials/spot/spot_devtools.gif similarity index 100% rename from src/pages/en/tutorials/images/spot/spot_devtools.gif rename to public/tutorials/spot/spot_devtools.gif diff --git a/src/pages/en/tutorials/images/spot/spot_settings.gif b/public/tutorials/spot/spot_settings.gif similarity index 100% rename from src/pages/en/tutorials/images/spot/spot_settings.gif rename to public/tutorials/spot/spot_settings.gif diff --git a/src/pages/en/tutorials/images/spot/spots_menu.gif b/public/tutorials/spot/spots_menu.gif similarity index 100% rename from src/pages/en/tutorials/images/spot/spots_menu.gif rename to public/tutorials/spot/spots_menu.gif diff --git a/src/pages/en/tutorials/images/svelte-session.png b/public/tutorials/svelte-session.png similarity index 100% rename from src/pages/en/tutorials/images/svelte-session.png rename to public/tutorials/svelte-session.png diff --git a/src/pages/en/tutorials/images/the-final-dashboard.png b/public/tutorials/the-final-dashboard.png similarity index 100% rename from src/pages/en/tutorials/images/the-final-dashboard.png rename to public/tutorials/the-final-dashboard.png diff --git a/src/pages/en/tutorials/images/vuex-ss.png b/public/tutorials/vuex-ss.png similarity index 100% rename from src/pages/en/tutorials/images/vuex-ss.png rename to public/tutorials/vuex-ss.png diff --git a/src/pages/en/tutorials/images/zustand/state-replay.png b/public/tutorials/zustand/state-replay.png similarity index 100% rename from src/pages/en/tutorials/images/zustand/state-replay.png rename to public/tutorials/zustand/state-replay.png diff --git a/src/pages/en/tutorials/images/zustand/zustand-tab.png b/public/tutorials/zustand/zustand-tab.png similarity index 100% rename from src/pages/en/tutorials/images/zustand/zustand-tab.png rename to public/tutorials/zustand/zustand-tab.png diff --git a/src/pages/en/using-or/images/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png b/public/using-or/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png similarity index 100% rename from src/pages/en/using-or/images/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png rename to public/using-or/Captura_de_pantalla_2022-06-17_a_las_10.40.45.png diff --git a/src/pages/en/using-or/images/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png b/public/using-or/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png similarity index 100% rename from src/pages/en/using-or/images/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png rename to public/using-or/Captura_de_pantalla_2022-06-17_a_las_12.16.42.png diff --git a/src/pages/en/using-or/images/build-plugins/1.png b/public/using-or/build-plugins/1.png similarity index 100% rename from src/pages/en/using-or/images/build-plugins/1.png rename to public/using-or/build-plugins/1.png diff --git a/src/pages/en/using-or/images/build-plugins/2.png b/public/using-or/build-plugins/2.png similarity index 100% rename from src/pages/en/using-or/images/build-plugins/2.png rename to public/using-or/build-plugins/2.png diff --git a/src/pages/en/using-or/images/create-custom-metric.png b/public/using-or/create-custom-metric.png similarity index 100% rename from src/pages/en/using-or/images/create-custom-metric.png rename to public/using-or/create-custom-metric.png diff --git a/src/pages/en/using-or/images/create-dashboard.png b/public/using-or/create-dashboard.png similarity index 100% rename from src/pages/en/using-or/images/create-dashboard.png rename to public/using-or/create-dashboard.png diff --git a/src/pages/en/using-or/images/event-details.png b/public/using-or/event-details.png similarity index 100% rename from src/pages/en/using-or/images/event-details.png rename to public/using-or/event-details.png diff --git a/src/pages/en/using-or/images/events-section.png b/public/using-or/events-section.png similarity index 100% rename from src/pages/en/using-or/images/events-section.png rename to public/using-or/events-section.png diff --git a/src/pages/en/using-or/images/folder-structure.png b/public/using-or/folder-structure.png similarity index 100% rename from src/pages/en/using-or/images/folder-structure.png rename to public/using-or/folder-structure.png diff --git a/src/pages/en/using-or/images/funnels/add-metric-button.png b/public/using-or/funnels/add-metric-button.png similarity index 100% rename from src/pages/en/using-or/images/funnels/add-metric-button.png rename to public/using-or/funnels/add-metric-button.png diff --git a/src/pages/en/using-or/images/funnels/adding-metric-to-dashboard.png b/public/using-or/funnels/adding-metric-to-dashboard.png similarity index 100% rename from src/pages/en/using-or/images/funnels/adding-metric-to-dashboard.png rename to public/using-or/funnels/adding-metric-to-dashboard.png diff --git a/src/pages/en/using-or/images/funnels/funnel-details.png b/public/using-or/funnels/funnel-details.png similarity index 100% rename from src/pages/en/using-or/images/funnels/funnel-details.png rename to public/using-or/funnels/funnel-details.png diff --git a/src/pages/en/using-or/images/funnels/funnel-errors.png b/public/using-or/funnels/funnel-errors.png similarity index 100% rename from src/pages/en/using-or/images/funnels/funnel-errors.png rename to public/using-or/funnels/funnel-errors.png diff --git a/src/pages/en/using-or/images/funnels/funnel-filters.png b/public/using-or/funnels/funnel-filters.png similarity index 100% rename from src/pages/en/using-or/images/funnels/funnel-filters.png rename to public/using-or/funnels/funnel-filters.png diff --git a/src/pages/en/using-or/images/funnels/funnel-visual.png b/public/using-or/funnels/funnel-visual.png similarity index 100% rename from src/pages/en/using-or/images/funnels/funnel-visual.png rename to public/using-or/funnels/funnel-visual.png diff --git a/src/pages/en/using-or/images/funnels/getting-to-metrics.png b/public/using-or/funnels/getting-to-metrics.png similarity index 100% rename from src/pages/en/using-or/images/funnels/getting-to-metrics.png rename to public/using-or/funnels/getting-to-metrics.png diff --git a/src/pages/en/using-or/images/gatsby-ss.png b/public/using-or/gatsby-ss.png similarity index 100% rename from src/pages/en/using-or/images/gatsby-ss.png rename to public/using-or/gatsby-ss.png diff --git a/src/pages/en/using-or/images/graphql-ui.png b/public/using-or/graphql-ui.png similarity index 100% rename from src/pages/en/using-or/images/graphql-ui.png rename to public/using-or/graphql-ui.png diff --git a/src/pages/en/using-or/images/heuristics/custom-events.png b/public/using-or/heuristics/custom-events.png similarity index 100% rename from src/pages/en/using-or/images/heuristics/custom-events.png rename to public/using-or/heuristics/custom-events.png diff --git a/src/pages/en/using-or/images/heuristics/devtools.png b/public/using-or/heuristics/devtools.png similarity index 100% rename from src/pages/en/using-or/images/heuristics/devtools.png rename to public/using-or/heuristics/devtools.png diff --git a/src/pages/en/using-or/images/invite-users/add-user-warning.png b/public/using-or/invite-users/add-user-warning.png similarity index 100% rename from src/pages/en/using-or/images/invite-users/add-user-warning.png rename to public/using-or/invite-users/add-user-warning.png diff --git a/src/pages/en/using-or/images/invite-users/click-config-cog.png b/public/using-or/invite-users/click-config-cog.png similarity index 100% rename from src/pages/en/using-or/images/invite-users/click-config-cog.png rename to public/using-or/invite-users/click-config-cog.png diff --git a/src/pages/en/using-or/images/invite-users/click-plus.png b/public/using-or/invite-users/click-plus.png similarity index 100% rename from src/pages/en/using-or/images/invite-users/click-plus.png rename to public/using-or/invite-users/click-plus.png diff --git a/src/pages/en/using-or/images/invite-users/click-teams.png b/public/using-or/invite-users/click-teams.png similarity index 100% rename from src/pages/en/using-or/images/invite-users/click-teams.png rename to public/using-or/invite-users/click-teams.png diff --git a/src/pages/en/using-or/images/js-error-dashboard/click-rage-filter.png b/public/using-or/js-error-dashboard/click-rage-filter.png similarity index 100% rename from src/pages/en/using-or/images/js-error-dashboard/click-rage-filter.png rename to public/using-or/js-error-dashboard/click-rage-filter.png diff --git a/src/pages/en/using-or/images/js-error-dashboard/create-dashboard.png b/public/using-or/js-error-dashboard/create-dashboard.png similarity index 100% rename from src/pages/en/using-or/images/js-error-dashboard/create-dashboard.png rename to public/using-or/js-error-dashboard/create-dashboard.png diff --git a/src/pages/en/using-or/images/js-error-dashboard/dashboard-ready.png b/public/using-or/js-error-dashboard/dashboard-ready.png similarity index 100% rename from src/pages/en/using-or/images/js-error-dashboard/dashboard-ready.png rename to public/using-or/js-error-dashboard/dashboard-ready.png diff --git a/src/pages/en/using-or/images/js-error-dashboard/filter-by-path.png b/public/using-or/js-error-dashboard/filter-by-path.png similarity index 100% rename from src/pages/en/using-or/images/js-error-dashboard/filter-by-path.png rename to public/using-or/js-error-dashboard/filter-by-path.png diff --git a/src/pages/en/using-or/images/js-error-dashboard/js-error-details.png b/public/using-or/js-error-dashboard/js-error-details.png similarity index 100% rename from src/pages/en/using-or/images/js-error-dashboard/js-error-details.png rename to public/using-or/js-error-dashboard/js-error-details.png diff --git a/src/pages/en/using-or/images/js-error-dashboard/js-errors-tab.png b/public/using-or/js-error-dashboard/js-errors-tab.png similarity index 100% rename from src/pages/en/using-or/images/js-error-dashboard/js-errors-tab.png rename to public/using-or/js-error-dashboard/js-errors-tab.png diff --git a/src/pages/en/using-or/images/js-error-dashboard/metric-type.png b/public/using-or/js-error-dashboard/metric-type.png similarity index 100% rename from src/pages/en/using-or/images/js-error-dashboard/metric-type.png rename to public/using-or/js-error-dashboard/metric-type.png diff --git a/src/pages/en/using-or/images/list-of-events.png b/public/using-or/list-of-events.png similarity index 100% rename from src/pages/en/using-or/images/list-of-events.png rename to public/using-or/list-of-events.png diff --git a/src/pages/en/using-or/images/logos/gatsby-logo.png b/public/using-or/logos/gatsby-logo.png similarity index 100% rename from src/pages/en/using-or/images/logos/gatsby-logo.png rename to public/using-or/logos/gatsby-logo.png diff --git a/src/pages/en/using-or/images/logos/next-logo.png b/public/using-or/logos/next-logo.png similarity index 100% rename from src/pages/en/using-or/images/logos/next-logo.png rename to public/using-or/logos/next-logo.png diff --git a/src/pages/en/using-or/images/logos/nuxt-logo.png b/public/using-or/logos/nuxt-logo.png similarity index 100% rename from src/pages/en/using-or/images/logos/nuxt-logo.png rename to public/using-or/logos/nuxt-logo.png diff --git a/src/pages/en/using-or/images/logos/react-logo.png b/public/using-or/logos/react-logo.png similarity index 100% rename from src/pages/en/using-or/images/logos/react-logo.png rename to public/using-or/logos/react-logo.png diff --git a/src/pages/en/using-or/images/logos/remix-logo.png b/public/using-or/logos/remix-logo.png similarity index 100% rename from src/pages/en/using-or/images/logos/remix-logo.png rename to public/using-or/logos/remix-logo.png diff --git a/src/pages/en/using-or/images/logos/svelte-logo.png b/public/using-or/logos/svelte-logo.png similarity index 100% rename from src/pages/en/using-or/images/logos/svelte-logo.png rename to public/using-or/logos/svelte-logo.png diff --git a/src/pages/en/using-or/images/metadata/metadata1.png b/public/using-or/metadata/metadata1.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata1.png rename to public/using-or/metadata/metadata1.png diff --git a/src/pages/en/using-or/images/metadata/metadata2.png b/public/using-or/metadata/metadata2.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata2.png rename to public/using-or/metadata/metadata2.png diff --git a/src/pages/en/using-or/images/metadata/metadata3.png b/public/using-or/metadata/metadata3.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata3.png rename to public/using-or/metadata/metadata3.png diff --git a/src/pages/en/using-or/images/metadata/metadata4.png b/public/using-or/metadata/metadata4.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata4.png rename to public/using-or/metadata/metadata4.png diff --git a/src/pages/en/using-or/images/metadata/metadata5.png b/public/using-or/metadata/metadata5.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata5.png rename to public/using-or/metadata/metadata5.png diff --git a/src/pages/en/using-or/images/metadata/metadata6.png b/public/using-or/metadata/metadata6.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata6.png rename to public/using-or/metadata/metadata6.png diff --git a/src/pages/en/using-or/images/metadata/metadata7.png b/public/using-or/metadata/metadata7.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata7.png rename to public/using-or/metadata/metadata7.png diff --git a/src/pages/en/using-or/images/metadata/metadata8.png b/public/using-or/metadata/metadata8.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata8.png rename to public/using-or/metadata/metadata8.png diff --git a/src/pages/en/using-or/images/metadata/metadata9.png b/public/using-or/metadata/metadata9.png similarity index 100% rename from src/pages/en/using-or/images/metadata/metadata9.png rename to public/using-or/metadata/metadata9.png diff --git a/src/pages/en/using-or/images/new-custom-metric.png b/public/using-or/new-custom-metric.png similarity index 100% rename from src/pages/en/using-or/images/new-custom-metric.png rename to public/using-or/new-custom-metric.png diff --git a/src/pages/en/using-or/images/pinia/new-tab.png b/public/using-or/pinia/new-tab.png similarity index 100% rename from src/pages/en/using-or/images/pinia/new-tab.png rename to public/using-or/pinia/new-tab.png diff --git a/src/pages/en/using-or/images/pinia/state-changes.png b/public/using-or/pinia/state-changes.png similarity index 100% rename from src/pages/en/using-or/images/pinia/state-changes.png rename to public/using-or/pinia/state-changes.png diff --git a/src/pages/en/using-or/images/product-events-section.png b/public/using-or/product-events-section.png similarity index 100% rename from src/pages/en/using-or/images/product-events-section.png rename to public/using-or/product-events-section.png diff --git a/src/pages/en/using-or/images/product-ui.png b/public/using-or/product-ui.png similarity index 100% rename from src/pages/en/using-or/images/product-ui.png rename to public/using-or/product-ui.png diff --git a/src/pages/en/using-or/images/redux-outcome.png b/public/using-or/redux-outcome.png similarity index 100% rename from src/pages/en/using-or/images/redux-outcome.png rename to public/using-or/redux-outcome.png diff --git a/src/pages/en/using-or/images/sanitized-vs-not-sanitized.png b/public/using-or/sanitized-vs-not-sanitized.png similarity index 100% rename from src/pages/en/using-or/images/sanitized-vs-not-sanitized.png rename to public/using-or/sanitized-vs-not-sanitized.png diff --git a/src/pages/en/using-or/images/sanitized.png b/public/using-or/sanitized.png similarity index 100% rename from src/pages/en/using-or/images/sanitized.png rename to public/using-or/sanitized.png diff --git a/src/pages/en/using-or/images/snippet-code-screenshot.jpg b/public/using-or/snippet-code-screenshot.jpg similarity index 100% rename from src/pages/en/using-or/images/snippet-code-screenshot.jpg rename to public/using-or/snippet-code-screenshot.jpg diff --git a/src/pages/en/using-or/images/snippet/getting-snippet.png b/public/using-or/snippet/getting-snippet.png similarity index 100% rename from src/pages/en/using-or/images/snippet/getting-snippet.png rename to public/using-or/snippet/getting-snippet.png diff --git a/src/pages/en/using-or/images/snippet/new-project-ready.png b/public/using-or/snippet/new-project-ready.png similarity index 100% rename from src/pages/en/using-or/images/snippet/new-project-ready.png rename to public/using-or/snippet/new-project-ready.png diff --git a/src/pages/en/using-or/images/snippet/snippet-visible.png b/public/using-or/snippet/snippet-visible.png similarity index 100% rename from src/pages/en/using-or/images/snippet/snippet-visible.png rename to public/using-or/snippet/snippet-visible.png diff --git a/src/pages/en/using-or/images/svelte-session.png b/public/using-or/svelte-session.png similarity index 100% rename from src/pages/en/using-or/images/svelte-session.png rename to public/using-or/svelte-session.png diff --git a/src/pages/en/using-or/images/the-final-dashboard.png b/public/using-or/the-final-dashboard.png similarity index 100% rename from src/pages/en/using-or/images/the-final-dashboard.png rename to public/using-or/the-final-dashboard.png diff --git a/src/pages/en/using-or/images/vuex-ss.png b/public/using-or/vuex-ss.png similarity index 100% rename from src/pages/en/using-or/images/vuex-ss.png rename to public/using-or/vuex-ss.png diff --git a/src/pages/en/using-or/images/zustand/state-replay.png b/public/using-or/zustand/state-replay.png similarity index 100% rename from src/pages/en/using-or/images/zustand/state-replay.png rename to public/using-or/zustand/state-replay.png diff --git a/src/pages/en/using-or/images/zustand/zustand-tab.png b/public/using-or/zustand/zustand-tab.png similarity index 100% rename from src/pages/en/using-or/images/zustand/zustand-tab.png rename to public/using-or/zustand/zustand-tab.png diff --git a/src/i18n/util.ts b/src/i18n/util.ts index c7c00ba8..2daa222e 100644 --- a/src/i18n/util.ts +++ b/src/i18n/util.ts @@ -57,11 +57,11 @@ async function markFallbackNavEntries(lang: string, nav: NavDict) { return nav; } -const translations = mapDefaultExports(import.meta.globEager('./*/ui.ts')); +const translations = mapDefaultExports(import.meta.glob('./*/ui.ts', { eager: true })); const docsearchTranslations = mapDefaultExports( - import.meta.globEager('./*/docsearch.ts') + import.meta.glob('./*/docsearch.ts', { eager: true }) ); -const navTranslations = mapDefaultExports(import.meta.globEager('./*/nav.ts')); +const navTranslations = mapDefaultExports(import.meta.glob('./*/nav.ts', { eager: true })); const fallbackLang = 'en'; diff --git a/src/pages/en/cli.mdx b/src/pages/en/cli.mdx index 5b60d4c3..ee0d2e0f 100644 --- a/src/pages/en/cli.mdx +++ b/src/pages/en/cli.mdx @@ -63,7 +63,7 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) ## Have questions? diff --git a/src/pages/en/installation/error-reporting.mdx b/src/pages/en/installation/error-reporting.mdx index 319c9e3f..57b81b37 100644 --- a/src/pages/en/installation/error-reporting.mdx +++ b/src/pages/en/installation/error-reporting.mdx @@ -14,7 +14,7 @@ Gain high-level and granular visibility into errors within your web applications 2. **Use Omnisearch**: select the event **“Error Message”** and enter the specific error message.
- Errors in sessions + Errors in sessions
### Inside a single Session @@ -24,7 +24,7 @@ Gain high-level and granular visibility into errors within your web applications 3. Click on **"Find all sessions with this error"** to see the list of sessions where the error occurred.
- Session error + Session error
### From the Cards view @@ -33,7 +33,7 @@ Gain high-level and granular visibility into errors within your web applications 2. Select **Table of Errors** card {/*
- Table of errors + Table of errors
*/} ## Manually logging exceptions @@ -101,4 +101,4 @@ function myFunction(errorEvent) { ``` ## Have questions? -If you have any questions about this process, feel free to reach out to us on our [Slack](https://slack.openreplay.com) or check out our [Forum](https://forum.openreplay.com). \ No newline at end of file +If you have any questions about this process, feel free to reach out to us on our [Slack](https://slack.openreplay.com) or check out our [Forum](https://forum.openreplay.com). diff --git a/src/pages/en/installation/metadata.mdx b/src/pages/en/installation/metadata.mdx index af818953..1501027d 100644 --- a/src/pages/en/installation/metadata.mdx +++ b/src/pages/en/installation/metadata.mdx @@ -24,7 +24,7 @@ To set up metadata keys: 5. Click **Add** to save the metadata key.
- Send Metadata + Send Metadata
@@ -109,11 +109,10 @@ Metadata keys allow you to filter and search sessions in OpenReplay: 3. Enter the metadata value (e.g., `free`) to filter session recordings.
- Filter Metadata + Filter Metadata
This feature enables quick and precise identification of sessions based on user-specific details. ## Have questions? If you have any questions about this process, feel free to reach out to us on our [Slack](https://slack.openreplay.com) or check out our [Forum](https://forum.openreplay.com). - diff --git a/src/pages/en/tutorials/build-plugins.mdx b/src/pages/en/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/tutorials/build-plugins.mdx +++ b/src/pages/en/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/capture-request.mdx b/src/pages/en/tutorials/capture-request.mdx index d63d1399..28e920ec 100644 --- a/src/pages/en/tutorials/capture-request.mdx +++ b/src/pages/en/tutorials/capture-request.mdx @@ -104,13 +104,13 @@ Now that you've seen the code, let's take a look at what you'd get if you were t ## Regular data capture with OpenReplay For this example, I'm going to be using the NPM version of the package, if you don't know how to do that, check out [the docs](https://docs.openreplay.com/installation/setup-or) and then get back here. -![](./images/fetch/network-tab-imbored.png) +![](/tutorials/fetch/network-tab-imbored.png) This is the UI for the session replay by default. Notice how on the bottom half I've already selected the "Network" tab, but while it does show the requests being made, there are no details about them. Even if you click on one of them, you'll get the minimum details available: -![](./images/fetch/network-tab-details.png) +![](/tutorials/fetch/network-tab-details.png) So what can we do? You can enable capturing of the request information with the [Network options object](installation/network-options). Let's look at that. @@ -146,7 +146,7 @@ Notice the warning box I get in this case: As the dev who coded this I know what to do to test it and understand where the bug is. However, as a user the error is not really telling me much, and I might not be able to communicate this in a way the dev team can understand. So instead, as a user, I can simply complain to the company about their app not working, and you, as the developer responsible for the application can take a look at my session and inspect the request the client sent and the response from the server. -![](./images/fetch/network-tab-requests.png) +![](/tutorials/fetch/network-tab-requests.png) Look at the session replay UI now. Inside the Network tab you can see the requests we've been doing to the external API. @@ -226,10 +226,10 @@ const tracker = new Tracker({ As you can see, the change is simple, we replace only the numbers on this attribute so now the request looks like this in our UI: -![](./images/fetch/network-tab-sanitized-data.png) +![](/tutorials/fetch/network-tab-sanitized-data.png) Now your user's data is secured once again. ## Have questions? -If you'd like to check out the code to look at this example in detail, you can find it [here on GitHub](https://github.com/deleteman/im-bored-app/tree/v1.10). If you have any issues setting up the Fetch plugin or the Tracker itself, please reach out to us on our  [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you'd like to check out the code to look at this example in detail, you can find it [here on GitHub](https://github.com/deleteman/im-bored-app/tree/v1.10). If you have any issues setting up the Fetch plugin or the Tracker itself, please reach out to us on our  [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/custom-dashboard.mdx b/src/pages/en/tutorials/custom-dashboard.mdx index 97e55177..7f8fcdd7 100644 --- a/src/pages/en/tutorials/custom-dashboard.mdx +++ b/src/pages/en/tutorials/custom-dashboard.mdx @@ -17,7 +17,7 @@ OpenReplay dashboards bring together critical insights for every member of your When you create a dashboard, it starts as a blank slate, ready for you to customize. Dashboards are made up of **cards**, with each card displaying a specific metric or set of data. You can add, remove, or move cards around to organize your dashboard as needed.
- Dashboard Overview + Dashboard Overview
Cards fall into three main categories: @@ -77,23 +77,23 @@ Once your dashboard is set up, you can: - **Rename or delete:** Update the dashboard name or delete it if no longer needed.
- Rename or delete Dashboard + Rename or delete Dashboard
- **Change Visibility:** Set the dashboard to **Team** or **Private** based on who should access it.
- Rename or delete Dashboard + Rename or delete Dashboard
- **Reorganize cards:** Drag and drop cards to rearrange them.
- Rename or delete Dashboard + Rename or delete Dashboard
- **Remove cards:** Use the "Remove from Dashboard" button to delete a card.
- Rename or delete Dashboard + Rename or delete Dashboard
- **Filtering:** Apply time-based filters (24 hours, 7 days, etc.)
- Rename or delete Dashboard + Rename or delete Dashboard
- **Download as report:** Share dashboard offline (Only for Enterprise Edition) @@ -111,4 +111,4 @@ Create separate dashboards for specific goals, such as monitoring marketing camp ## Have questions? -If you have any issues setting up a custom dashboard in your project, please reach out to us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues setting up a custom dashboard in your project, please reach out to us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/custom-events.mdx b/src/pages/en/tutorials/custom-events.mdx index 98c1b112..9337ec49 100644 --- a/src/pages/en/tutorials/custom-events.mdx +++ b/src/pages/en/tutorials/custom-events.mdx @@ -155,7 +155,7 @@ With that out of the way, we can now move on to trigger the events. For this, we’ll take advantage of our UI: -![The product page](images/product-ui.png) +![The product page](/images/product-ui.png) We’ll record a new event every time the user adds a product to our cart (essentially when they hit the “ADD TO CART” button). @@ -212,11 +212,11 @@ logEvent({ That’s all we need, we can then go to OpenReplay, find our session recording, and inspect the Events section: -![Custom events panel](images/product-events-section.png) +![Custom events panel](/images/product-events-section.png) And if we want the details, we can click on the “DETAILS” link that appears when you hover over one of the rows: -![Details of a custom event](images/event-details.png) +![Details of a custom event](/images/event-details.png) Those are the details we recorded when adding a product. @@ -226,4 +226,4 @@ And if you’d like to review the full source code of this example, [you can fin ## Have questions? -If you have any issues with custom events in you project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with custom events in you project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/custom-heuristics.mdx b/src/pages/en/tutorials/custom-heuristics.mdx index d82d3129..4dfda0bb 100644 --- a/src/pages/en/tutorials/custom-heuristics.mdx +++ b/src/pages/en/tutorials/custom-heuristics.mdx @@ -208,7 +208,7 @@ With the example from before, you have two options: To filter sessions by your new custom event, simply use the [Omnisearch](/tutorials/omnisearch) feature, clicking on the search bar, and selecting "Custom Events" as the filter type. Once done, you'll be able to enter the name of the event, it should autocomplete the name once you start typing, as you can see in the image below: -![Custom event filter](./images/heuristics/custom-events.png) +![Custom event filter](/tutorials/heuristics/custom-events.png) **Note** that if the autocomplete doesn't work or it doesn't return the event name you're looking for, then there is no event named like that in the database. In this case, you should double check your logic to make sure you're correctly triggering the sending of the custom event. @@ -218,10 +218,10 @@ If you want to understand exactly when the custom event is triggered, then you'l You'll find it located on the lower right corner of the screen. Once clicked, it'll open and you'll see the list of events, including your custom one, as seen in the image below: -![Events listed in devTools](./images/heuristics/devtools.png) +![Events listed in devTools](/tutorials/heuristics/devtools.png) In this simple process we have created a new detector. Of course, your algorithm can be more sophisticated and include a combination of different type of events. ## Have questions? -If you encounter any issues, connect to our [Slack](https://slack.openreplay.com) or check out our [Forum](https://forum.openreplay.com) and get help from our community. \ No newline at end of file +If you encounter any issues, connect to our [Slack](https://slack.openreplay.com) or check out our [Forum](https://forum.openreplay.com) and get help from our community. diff --git a/src/pages/en/tutorials/funnels.mdx b/src/pages/en/tutorials/funnels.mdx index 95ebc6da..3379c1b9 100644 --- a/src/pages/en/tutorials/funnels.mdx +++ b/src/pages/en/tutorials/funnels.mdx @@ -17,13 +17,13 @@ In this tutorial we’ll see how to set up a funnel to understand how many users Funnels are a type of metric you can create inside the Dashboards section of the top navigation: -![Finding the metrics section](./images/funnels/getting-to-metrics.png) +![Finding the metrics section](/tutorials/funnels/getting-to-metrics.png) Once inside this section, click “Create Metric” and choose the “Funnel” metric type. Then start adding steps using the filters below. Here is how our funnel tracks users going from other homes all the way to adding a product to their cart: -![Filters for creating a funnel](./images/funnels/funnel-filters.png) +![Filters for creating a funnel](/tutorials/funnels/funnel-filters.png) Notice the events inside the “Series 1” filter: @@ -35,13 +35,13 @@ Since we’re defining a funnel, every new filter will be more restrictive. Underneath the filters, you’ll see the results of each step, like this: -![The funnel visually represented](./images/funnels/funnel-visual.png) +![The funnel visually represented](/tutorials/funnels/funnel-visual.png) You can see that we’re losing 5 users going from step 2 to 3. And out of all those getting into step 3, only 50% of them do click the button. Now, what could be causing this sudden drop on convertion? We have some clues underneath the funnel. -![Errors inside the funnel](./images/funnels/funnel-errors.png) +![Errors inside the funnel](/tutorials/funnels/funnel-errors.png) We have High CPU issues, dead clicks and even some custom events that might give us some clues as to what is happening. @@ -49,7 +49,7 @@ The issues provide some insight into their effect inside the funnel, so you can If you click on one of these errors, you’ll get a list of replays affected by it inside the funnel, so you can analyze the right replays: -![Details inside a funnel error](./images/funnels/funnel-details.png) +![Details inside a funnel error](/tutorials/funnels/funnel-details.png) You can now add the metric to one or more dashboards to use it. @@ -58,11 +58,11 @@ You can now add the metric to one or more dashboards to use it. To add your brand new metric to a dashboard, go to the Dashboards section, pick the one you want to work on, and click “Add Metric”. -![Adding a metric](./images/funnels/add-metric-button.png) +![Adding a metric](/tutorials/funnels/add-metric-button.png) Select the new metric from the Custom section and then click on “Add Selected to Dashboard”: -![Adding the metric to the dashboard](./images/funnels/adding-metric-to-dashboard.png) +![Adding the metric to the dashboard](/tutorials/funnels/adding-metric-to-dashboard.png) ## Have questions? -If you have any issues creating funnels in you project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues creating funnels in you project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/graphql.mdx b/src/pages/en/tutorials/graphql.mdx index 20c384fa..5c26ae0c 100644 --- a/src/pages/en/tutorials/graphql.mdx +++ b/src/pages/en/tutorials/graphql.mdx @@ -115,11 +115,11 @@ The above code is taken from the Apollo documentation, at this point the tracker Once done, your replays will show a new section listing all GraphQL operations. -![The GraphQL UI inside the Session Replay](images/graphql-ui.png) +![The GraphQL UI inside the Session Replay](/images/graphql-ui.png) That said, the sensitive information that is automatically sanitized by the tracker (like email addresses) will not be sanitized by the plugin. So you’ll have situations like the following where the DOM has the sanitized data, but the operation details show the actual data. -![Sanitized vs Not Sanitized data](images/sanitized-vs-not-sanitized.png) +![Sanitized vs Not Sanitized data](/images/sanitized-vs-not-sanitized.png) While the plugin itself doesn’t provide any sanitization function, we can still add code that will hide personal and private information from the replay to help keep your user’s privacy. @@ -185,10 +185,10 @@ Key aspects of this code are: 2. Inside the `map` callback (from the link function), we’re now not returning the output from graphqlTracker, because that function will return the result value it received untouched. 1. But that result will be returned to the client app, and if we’re sanitizing the result, the user will see the sanitized version of the dataset. Instead, we need to clone the result to modify the one being tracked and return the original. 3. The `sanitizeResult` function deep clones the object because modifying otherwise will change the result itself. -![Sanitized data everywhere](images/sanitized.png) +![Sanitized data everywhere](/images/sanitized.png) ## Have questions? You can [check out this repository](https://github.com/deleteman/openreplay-graphql-example) for the **complete source code** of a working GraphQL-based application with the Tracker. -If you have any issues setting up the Tracker on your GraphQL project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues setting up the Tracker on your GraphQL project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/invite-team-members.mdx b/src/pages/en/tutorials/invite-team-members.mdx index eba9fe46..00f7da31 100644 --- a/src/pages/en/tutorials/invite-team-members.mdx +++ b/src/pages/en/tutorials/invite-team-members.mdx @@ -20,7 +20,7 @@ To invite team members: 6. Click **Invite**.
- Add Spot to Chrome + Add Spot to Chrome
@@ -42,7 +42,7 @@ To remove a team member: 4. Click the **Delete** icon.
- Add Spot to Chrome + Add Spot to Chrome
> **Note:** Admin Privileges are required to remove users. diff --git a/src/pages/en/tutorials/js-errors-dashboard.mdx b/src/pages/en/tutorials/js-errors-dashboard.mdx index 12b5207e..3631dbf1 100644 --- a/src/pages/en/tutorials/js-errors-dashboard.mdx +++ b/src/pages/en/tutorials/js-errors-dashboard.mdx @@ -15,7 +15,7 @@ JavaScript errors are catched automatically by our tracker, so you don’t reall All exceptions that show up on the dev console during a real session, will be tracked inside the “Exceptions” tab of the replay. -![JavaScript errors tab](./images/js-error-dashboard/js-errors-tab.png) +![JavaScript errors tab](/tutorials/js-error-dashboard/js-errors-tab.png) We can use that information to create a metric around it, so let’s check that out. @@ -29,11 +29,11 @@ Follow these steps to create your custom metric. Once the metric is ready, we’ 4. Give your Metric a name, let’s say “JavaScript errors”. 5. On Metric Type, select “Table”, and then “JS Errors” -![List of errors](./images/js-error-dashboard/metric-type.png) +![List of errors](/tutorials/js-error-dashboard/metric-type.png) Alternatively, you can also filter the sessions that have JS Errors. For example, we could make this metric the “**List of JS Errors for the Product Page**”. So you could add a filter based on the Path, like this: -![Filter by path](./images/js-error-dashboard/filter-by-path.png) +![Filter by path](/tutorials/js-error-dashboard/filter-by-path.png) For our sample application, product pages are under the path `/es/product/[SLUG]` so making the filter to “**start with**” `/es/product` we’ll only take into account JS errors that happen inside this page. @@ -41,7 +41,7 @@ Additionally, and to keep the dashboard interesting, you could create another me A metric set up like this would do the trick: -![Click rage filter](./images/js-error-dashboard/click-rage-filter.png) +![Click rage filter](/tutorials/js-error-dashboard/click-rage-filter.png) Counting sessions, filtered by URL and making sure they have the “Click Rage” type of issue detected inside them. @@ -51,7 +51,7 @@ After you’ve set up the filters and the metric itself, you can simply click on With the metric ready, you can click on the “**+Create**” link on the left menu (inside the Dashboards section). -![Create dashboard modal](./images/js-error-dashboard/create-dashboard.png) +![Create dashboard modal](/tutorials/js-error-dashboard/create-dashboard.png) Once the “Create Dashboard” modal appears, give it a name, then: @@ -61,13 +61,13 @@ Once the “Create Dashboard” modal appears, give it a name, then: That should create a dashboard that shows you the issues found on the product page: -![Dashboard ready](./images/js-error-dashboard/dashboard-ready.png) +![Dashboard ready](/tutorials/js-error-dashboard/dashboard-ready.png) And if you need more details, you can click on the “**Click rage on products**” chart to see the list of sessions that have this problem. And if you click on one of the rows of the “**JS Errors on product”** listing, you’ll get extra details about the problem: -![JavaScript error details](./images/js-error-dashboard/js-error-details.png) +![JavaScript error details](/tutorials/js-error-dashboard/js-error-details.png) You get the stacktrace of the error, along with extra information about the last sessions affected by it. In this case, we’re dealing with a typo in the name of a variable, but it could be any JS exception. @@ -77,4 +77,4 @@ If you’d like to read more details about the built-in metrics provided by Open ## Have questions? -If you have any issues with creating a custom dashboard in you project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with creating a custom dashboard in you project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/metadata.mdx b/src/pages/en/tutorials/metadata.mdx index d3f7c953..a48a7af7 100644 --- a/src/pages/en/tutorials/metadata.mdx +++ b/src/pages/en/tutorials/metadata.mdx @@ -36,15 +36,15 @@ If you skip this step, you won’t be able to record any information, so don’t To do that, you’ll go to your project’s configuration page by clicking on the top right cog on the top menu: -![The project setttings icon](./images/metadata/metadata1.png) +![The project setttings icon](/tutorials/metadata/metadata1.png) Once in there, click on the Metadata menu item on the far left of your screen: -![The Metadata option on the left menu](./images/metadata/metadata2.png) +![The Metadata option on the left menu](/tutorials/metadata/metadata2.png) That’ll take you to the metadata configuration screen. Make sure you select the right project from the dropdown and create as many fields as you need. -![Adding new metadata](./images/metadata/metadata3.png) +![Adding new metadata](/tutorials/metadata/metadata3.png) For this example, we’ve created 3 fields for the “e-commerce test” project: @@ -65,7 +65,7 @@ To add the metadata to the session we’ll use the `setMetadata` method from the For this example, we’re using the e-commerce site built with Next.js we used for the tutorial on NextJs, make sure to [check that one out to](https://docs.openreplay.com/tutorials/next) understand the underlying architecture of the context provider shown in the following screenshot: -![Added code](./images/metadata/metadata4.png) +![Added code](/tutorials/metadata/metadata4.png) The red arrows show where the relevant updates were made. This context provider exports a function called `setMetadata` which in turn, calls the `setMetadata` method from the tracker. @@ -119,7 +119,7 @@ Now that you have the metadata being saved inside all session replays, what can Well, to start with, you can visualize it directly from the replay: -![Reviewing the metadata in the player](./images/metadata/metadata5.png) +![Reviewing the metadata in the player](/tutorials/metadata/metadata5.png) You should start seeing the metadata fields on the top right corner of your player screen. In this example, we see the user has an Enterprise Edition plan, they’re is coming from Reddit, and they have9 only one item added to the cart. @@ -127,21 +127,21 @@ You should start seeing the metadata fields on the top right corner of your play The other powerful thing you can do with metadata is to use it as a search parameter. Using the omnisearch bar, you can select the custom metadata fields you created as search parameters: -![Search using your metadata fields](./images/metadata/metadata6.png) +![Search using your metadata fields](/tutorials/metadata/metadata6.png) So if you want to look at only Enterprise Edition replays, you can simply select the Plan field and filter it by “ee”, like so: -![Search by user plan](./images/metadata/metadata7.png) +![Search by user plan](/tutorials/metadata/metadata7.png) You can also use the same omnisearch bar when creating a widget for your dashboard. So to continue with the EE example, if you wanted to create a dashboard only for Enterprise customers, you could filter each custom widget using the “Plan” attribute. For example, the following widget shows how many Enterprise customers are clicking on the “Add to cart” button: -![Create a timeseries using metadata](./images/metadata/metadata8.png) +![Create a timeseries using metadata](/tutorials/metadata/metadata8.png) Resulting in a widget that looks like this: -![The results](./images/metadata/metadata9.png) +![The results](/tutorials/metadata/metadata9.png) With metadata fields you can customize and extend the insights you get from your session replays as much as you want. @@ -153,4 +153,4 @@ Remember that whatever information you want to save, it always has to be in the The full source code for the [sample project using metadata can be seen here](https://github.com/deleteman/nextjs-commerce-example/tree/redux_metadata/site). -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/omnisearch.mdx b/src/pages/en/tutorials/omnisearch.mdx index bf5da7e5..61d176cc 100644 --- a/src/pages/en/tutorials/omnisearch.mdx +++ b/src/pages/en/tutorials/omnisearch.mdx @@ -13,27 +13,27 @@ The OmniSearch component is available across various views in OpenReplay. Here, 1. **Events dropdown:** Choose from auto-captured user interactions and devTools events
- Events dropdown + Events dropdown
2. **Filters dropdown:** Apply filters to narrow down results by user data, session properties, issues, and metadata
- Filters dropdown + Filters dropdown
3. **Logic controls:** Switch between sequential ("Then") and parallel ("And"/"OR") events occurrence.
- Logic control options + Logic control options
4. **Search operators:** Refine searches with "is," "contains," "starts with," and more
- operators + operators
5. **Drag-and-drop events**: Rearrange events order to refine your search.
- drag and drop events + drag and drop events
6. **Save frequently used searches for quick access:** Use the Save Search button to store event and filters groups and access them easily for similar future queries.
- saved search + saved search
## Understanding events @@ -113,4 +113,4 @@ Filters are organized into four main categories: ## Have questions? -If you still have questions, make sure to reach out to our devs on our  [Slack community](https://slack.openreplay.com/). \ No newline at end of file +If you still have questions, make sure to reach out to our devs on our  [Slack community](https://slack.openreplay.com/). diff --git a/src/pages/en/tutorials/pinia.mdx b/src/pages/en/tutorials/pinia.mdx index da2b4406..05cc54d7 100644 --- a/src/pages/en/tutorials/pinia.mdx +++ b/src/pages/en/tutorials/pinia.mdx @@ -162,14 +162,14 @@ export default defineComponent({ To review the state changes during the replay, click on the new VueX tab in the lower right corner: -![The new VueX tab](./images/pinia/new-tab.png) +![The new VueX tab](/tutorials/pinia/new-tab.png) When clicking on it, you’ll see the content of the store, and you’ll be able to understand how it changes and the data saved within it: -![State mutations](./images/pinia/state-changes.png) +![State mutations](/tutorials/pinia/state-changes.png) Notice the name of the store, it’s the name we used when calling the Pinia plugin the first time around. ## Have questions? -You can [check out this repository](https://github.com/deleteman/openreplay-vue-pinia-example) for the **complete source code** of a working Pinia/Vue application with the Pinia plugin. If you have any issues setting up the Pinia plugin on your project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +You can [check out this repository](https://github.com/deleteman/openreplay-vue-pinia-example) for the **complete source code** of a working Pinia/Vue application with the Pinia plugin. If you have any issues setting up the Pinia plugin on your project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/redux.mdx b/src/pages/en/tutorials/redux.mdx index 803fda31..90e4ffae 100644 --- a/src/pages/en/tutorials/redux.mdx +++ b/src/pages/en/tutorials/redux.mdx @@ -17,7 +17,7 @@ In the case of Redux, OpenReplay [provides a plugin](https://docs.openreplay.com Once set up, you should be able to watch changes in the store as seen in the following screenshot: -![Expected Outcome](images/redux-outcome.png) +![Expected Outcome](/images/redux-outcome.png) ## Setting up the Redux on a Next.js project @@ -39,7 +39,7 @@ npm i next-redux-wrapper redux react-redux redux-thunk redux-devtools-extension With that out of the way, create a folder called `store` in your project’s root directory and reproduce the following structure: -![Folder structure](images/folder-structure.png) +![Folder structure](/images/folder-structure.png) The `types.js` file will contain the type definition for the two actions we’re going to be defining: @@ -360,4 +360,4 @@ And with that, you should be able to deploy your application (provided you’ve You can [check out this repository](https://github.com/deleteman/nextjs-commerce-example/tree/redux-store) for the **complete source code** of a working Next.js-based application with a Redux store. -If you have any issues setting up the Redux plugin, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues setting up the Redux plugin, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/roles-and-access.mdx b/src/pages/en/tutorials/roles-and-access.mdx index b91caf1d..4de31162 100644 --- a/src/pages/en/tutorials/roles-and-access.mdx +++ b/src/pages/en/tutorials/roles-and-access.mdx @@ -19,7 +19,7 @@ Roles and access allows administrators to define specific permissions for projec 4. Click **Add**
- Add Role + Add Role
### Edit a Role @@ -39,7 +39,7 @@ Roles and access allows administrators to define specific permissions for projec 5. Click **Proceed** to confirm deletion
- Delete Role + Delete Role
## Have Questions? diff --git a/src/pages/en/tutorials/spot.mdx b/src/pages/en/tutorials/spot.mdx index 426fb7f7..4206b5cf 100644 --- a/src/pages/en/tutorials/spot.mdx +++ b/src/pages/en/tutorials/spot.mdx @@ -33,7 +33,7 @@ Installing the Spot Chrome extension is quick and easy: 2. Pin Spot to your Chrome toolbar for easy future access.
- Add Spot to Chrome + Add Spot to Chrome
@@ -48,14 +48,14 @@ Before you start using Spot, you need to either log in to your existing OpenRepl 3. Choose your **primary use-case** for OpenReplay. - If you select "report bugs via Spot" as your primary use-case, you can later access the full OpenReplay features by clicking on **Setup Tracker**.
- Create account through Spot + Create account through Spot
- **Existing users:** 1. Click on the pinned Spot extension in your toolbar. 2. Select **Log in** and enter your OpenReplay credentials. - You can find your Spots in the Spot menu in the left sidebar.
- Spots Menu + Spots Menu
- #### OpenReplay self-host - **New and existing users:** @@ -81,7 +81,7 @@ Here’s how to use the Spot Chrome extension’s key features: - **Save Spot:** After stopping the recording, it will automatically save with all the relevant technical details, like console logs and network data.
- Use Record Tab feature + Use Record Tab feature
### Record desktop @@ -106,7 +106,7 @@ GraphQL typically returns a 200 OK status code for all responses, even when erro In Spot, we detect when a GraphQL response contains an `errors` object in the body. When such an error is found, we mark the request with a `400` status code instead of `200`. This adjustment makes it easier for developers to identify and debug problematic GraphQL requests.
- Spot DevTools + Spot DevTools
### Spot settings @@ -116,7 +116,7 @@ In Spot, we detect when a GraphQL response contains an `errors` object in the bo - **Include DevTools:** Toggle this on to include console logs, network calls, and other debugging information in your recording.
- Spot Settings + Spot Settings
### Invite teammates @@ -133,9 +133,9 @@ In Spot, we detect when a GraphQL response contains an `errors` object in the bo - **Integration with tools:** Include these links in bug tracking or collaboration tools like Slack, Teams, Jira, or Linear for easy access and teamwork.
- Share Spot + Share Spot
## Have questions? -Having trouble setting up this plugin? Please connect to our [Slack](https://slack.openreplay.com) or check out our [Forum](https://forum.openreplay.com) and get help from our community. \ No newline at end of file +Having trouble setting up this plugin? Please connect to our [Slack](https://slack.openreplay.com) or check out our [Forum](https://forum.openreplay.com) and get help from our community. diff --git a/src/pages/en/tutorials/vuex.mdx b/src/pages/en/tutorials/vuex.mdx index d2ecca08..571ccfe0 100644 --- a/src/pages/en/tutorials/vuex.mdx +++ b/src/pages/en/tutorials/vuex.mdx @@ -159,10 +159,10 @@ The above snippet is your standard code for setting up a store, we just added th Once this is ready, you should see a new VueX option inside the session replays, like this: -![Tracking state changes with VueX](images/vuex-ss.png) +![Tracking state changes with VueX](/images/vuex-ss.png) ## Have questions? You can [check out this repository](https://github.com/deleteman/openreplay-vuex-example) for the **complete source code** of a working application using VueX with the Tracker. -If you have any issues setting up the Tracker or the VueX plugin on you project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues setting up the Tracker or the VueX plugin on you project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/tutorials/zustand.mdx b/src/pages/en/tutorials/zustand.mdx index 5f69a1c7..74da3774 100644 --- a/src/pages/en/tutorials/zustand.mdx +++ b/src/pages/en/tutorials/zustand.mdx @@ -168,11 +168,11 @@ The above code iterates over the list of products and renders them on screen. Wh To review the state changes during the replay, simply click on the new Zustand tab on the lower right corner: -![New tab for the Zustand tracked data](./images/zustand/zustand-tab.png) +![New tab for the Zustand tracked data](/tutorials/zustand/zustand-tab.png) When clicking on it, you’ll see the content of the store, and you’ll be able to understand how it changes and the data saved within it: -![State data shown during the replay](./images/zustand/state-replay.png) +![State data shown during the replay](/tutorials/zustand/state-replay.png) Notice the name of the store, it’s actually the name we used when calling the zustand method the first time around. @@ -182,4 +182,4 @@ If you’re not using Next.js but other framework, the way of using it should be You can [check out this repository](https://github.com/deleteman/nextjs-commerce-example/tree/zustand-store) for the **complete source code** of a working Next.js application with the Zustand plugin. -If you have any issues setting up the Zustand plugin on your project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues setting up the Zustand plugin on your project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/using-or/angular.mdx b/src/pages/en/using-or/angular.mdx index f98bad5f..3cd24aa8 100644 --- a/src/pages/en/using-or/angular.mdx +++ b/src/pages/en/using-or/angular.mdx @@ -225,11 +225,11 @@ Then I create the payloads for each event saving only the information I want to With this working, here is what you get to see inside the Events tab in your replay: -![List of events](images/list-of-events.png) +![List of events](/images/list-of-events.png) And if you click on the details of one of these rows, you get the payload we saved: -![Event details](images/event-details.png) +![Event details](/images/event-details.png) In fact, you can even take that code and sanitize any field from the request or the response you don’t want visible inside the replay before calling the `event` method. @@ -238,4 +238,3 @@ You can [check out this repository](https://github.com/deleteman/openreplay-angu ## Have questions? If you have any issues setting up the Tracker on your Angular project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! - diff --git a/src/pages/en/using-or/gatsby.mdx b/src/pages/en/using-or/gatsby.mdx index 914dced3..76310bf4 100644 --- a/src/pages/en/using-or/gatsby.mdx +++ b/src/pages/en/using-or/gatsby.mdx @@ -5,7 +5,7 @@ metaDescription: "Learn how to get the tracker working on your Gatsby applicatio --- Installing the OpenReplay tracker into a Gatsby-based project is relatively straightforward. -![Sesion replay of a Gatsby site](images/gatsby-ss.png) +![Sesion replay of a Gatsby site](/images/gatsby-ss.png) Considering that Gatsby is using React underneath, all we have to do, is to add the tracker code inside the main page and call the `start` method using the `useEffect` hook. @@ -55,4 +55,4 @@ Notice how the name is prefixed with `GATSBY_` that will tell Gatsby to make su You can [check out this repository](https://github.com/deleteman/openreplay-gatsby-example) for the **complete source code** of a working Gatsby-based application with the Tracker. -If you have any issues setting up the Tracker on your Gatsby project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues setting up the Tracker on your Gatsby project, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/using-or/remix.mdx b/src/pages/en/using-or/remix.mdx index 51b8aebb..2626794d 100644 --- a/src/pages/en/using-or/remix.mdx +++ b/src/pages/en/using-or/remix.mdx @@ -11,7 +11,7 @@ With your Remix project ready, look for the `root.jsx` file inside the `app` fo You can definitely use the code presented by the platform, that would represent the bare minimum you need to get started. If you do, make sure you select the “Server-Side-Rendered (SSR)” option like shown below. -![snippet-code-screenshot.jpg](./images/snippet-code-screenshot.jpg) +![snippet-code-screenshot.jpg](/using-or/snippet-code-screenshot.jpg) But for this example, we’re going to create a sample module which we’ll save as `tracker.ts` inside the `app` folder. This module will export a function called `startTracker` which will instantiate the tracker, and get it going. @@ -200,4 +200,4 @@ Once you start testing it, you’ll see the replays listed a few minutes after t For the **full code** of a working Remix-based application, you can check out [this repository](https://github.com/deleteman/openreplay-remix-example). -If you have any issues setting up the tracker on your Remix-based project, please reach out to us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues setting up the tracker on your Remix-based project, please reach out to us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/using-or/snippet.mdx b/src/pages/en/using-or/snippet.mdx index 8e1c863f..c2038a36 100644 --- a/src/pages/en/using-or/snippet.mdx +++ b/src/pages/en/using-or/snippet.mdx @@ -13,17 +13,17 @@ using VanillaJS, you can directly add our JavaScript snippet. The JavaScript snippet that you'll need to get the job done is provided to you when you setup the project on the OpenReplay portal. Once you've added your new project, you'll see something like this: -![New project ready](./images/snippet/new-project-ready.png) +![New project ready](/using-or/snippet/new-project-ready.png) Once you see that, click on the "Complete Project Setup" button. That should take you to a page where you're presented with the JS Snippet: -![Getting the JS Snippet](./images/snippet/getting-snippet.png) +![Getting the JS Snippet](/using-or/snippet/getting-snippet.png) Now, simply click on the "Script" tab and you'll see the actual JavaScript snippet: -![The snippet is visible](./images/snippet/snippet-visible.png) +![The snippet is visible](/using-or/snippet/snippet-visible.png) Get the script and add it directly inside your `` tag and the tracker will start working automatically. @@ -35,4 +35,3 @@ So make sure you first configure your recording options and then copy the actual ## Have questions? If you have any issues setting up the tracker using the JavaScript snippet, please reach out to us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! - diff --git a/src/pages/en/using-or/svelte.mdx b/src/pages/en/using-or/svelte.mdx index b60ffae9..64e9d8e2 100644 --- a/src/pages/en/using-or/svelte.mdx +++ b/src/pages/en/using-or/svelte.mdx @@ -37,7 +37,7 @@ It is a sample SvelteKit application that you can clone and test yourself by fol Once deployed and configured, you should be able to capture session replays as seen in the screenshot below: -![Svelte session replay](images/svelte-session.png) +![Svelte session replay](/images/svelte-session.png) ## Using Context to share data diff --git a/src/pages/en/v1.10.0/cli.mdx b/src/pages/en/v1.10.0/cli.mdx index 748bcdfd..23b3c9b5 100644 --- a/src/pages/en/v1.10.0/cli.mdx +++ b/src/pages/en/v1.10.0/cli.mdx @@ -58,4 +58,4 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) diff --git a/src/pages/en/v1.10.0/tutorials/build-plugins.mdx b/src/pages/en/v1.10.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.10.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.10.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.11.0/cli.mdx b/src/pages/en/v1.11.0/cli.mdx index d9dbffcb..627e5937 100644 --- a/src/pages/en/v1.11.0/cli.mdx +++ b/src/pages/en/v1.11.0/cli.mdx @@ -60,4 +60,4 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) diff --git a/src/pages/en/v1.11.0/tutorials/build-plugins.mdx b/src/pages/en/v1.11.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.11.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.11.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.12.0/cli.mdx b/src/pages/en/v1.12.0/cli.mdx index d9dbffcb..627e5937 100644 --- a/src/pages/en/v1.12.0/cli.mdx +++ b/src/pages/en/v1.12.0/cli.mdx @@ -60,4 +60,4 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) diff --git a/src/pages/en/v1.12.0/tutorials/build-plugins.mdx b/src/pages/en/v1.12.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.12.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.12.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.13.0/cli.mdx b/src/pages/en/v1.13.0/cli.mdx index d9dbffcb..627e5937 100644 --- a/src/pages/en/v1.13.0/cli.mdx +++ b/src/pages/en/v1.13.0/cli.mdx @@ -60,4 +60,4 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) diff --git a/src/pages/en/v1.13.0/tutorials/build-plugins.mdx b/src/pages/en/v1.13.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.13.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.13.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.14.0/cli.mdx b/src/pages/en/v1.14.0/cli.mdx index d9dbffcb..627e5937 100644 --- a/src/pages/en/v1.14.0/cli.mdx +++ b/src/pages/en/v1.14.0/cli.mdx @@ -60,4 +60,4 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) diff --git a/src/pages/en/v1.14.0/tutorials/build-plugins.mdx b/src/pages/en/v1.14.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.14.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.14.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.15.0/cli.mdx b/src/pages/en/v1.15.0/cli.mdx index 5b60d4c3..ee0d2e0f 100644 --- a/src/pages/en/v1.15.0/cli.mdx +++ b/src/pages/en/v1.15.0/cli.mdx @@ -63,7 +63,7 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) ## Have questions? diff --git a/src/pages/en/v1.15.0/tutorials/build-plugins.mdx b/src/pages/en/v1.15.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.15.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.15.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.16.0/cli.mdx b/src/pages/en/v1.16.0/cli.mdx index 5b60d4c3..ee0d2e0f 100644 --- a/src/pages/en/v1.16.0/cli.mdx +++ b/src/pages/en/v1.16.0/cli.mdx @@ -63,7 +63,7 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) ## Have questions? diff --git a/src/pages/en/v1.16.0/tutorials/build-plugins.mdx b/src/pages/en/v1.16.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.16.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.16.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.17.0/cli.mdx b/src/pages/en/v1.17.0/cli.mdx index 5b60d4c3..ee0d2e0f 100644 --- a/src/pages/en/v1.17.0/cli.mdx +++ b/src/pages/en/v1.17.0/cli.mdx @@ -63,7 +63,7 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) ## Have questions? diff --git a/src/pages/en/v1.17.0/tutorials/build-plugins.mdx b/src/pages/en/v1.17.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.17.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.17.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.18.0/cli.mdx b/src/pages/en/v1.18.0/cli.mdx index 5b60d4c3..ee0d2e0f 100644 --- a/src/pages/en/v1.18.0/cli.mdx +++ b/src/pages/en/v1.18.0/cli.mdx @@ -63,7 +63,7 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) ## Have questions? diff --git a/src/pages/en/v1.18.0/tutorials/build-plugins.mdx b/src/pages/en/v1.18.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.18.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.18.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.19.0/cli.mdx b/src/pages/en/v1.19.0/cli.mdx index 5b60d4c3..ee0d2e0f 100644 --- a/src/pages/en/v1.19.0/cli.mdx +++ b/src/pages/en/v1.19.0/cli.mdx @@ -63,7 +63,7 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) ## Have questions? diff --git a/src/pages/en/v1.19.0/tutorials/build-plugins.mdx b/src/pages/en/v1.19.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.19.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.19.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.20.0/cli.mdx b/src/pages/en/v1.20.0/cli.mdx index 5b60d4c3..ee0d2e0f 100644 --- a/src/pages/en/v1.20.0/cli.mdx +++ b/src/pages/en/v1.20.0/cli.mdx @@ -63,7 +63,7 @@ openreplay -s The result would be something similar to this: -![OpenReplay status](./cli/images/or-cli-status.png) +![OpenReplay status](/cli/or-cli-status.png) ## Have questions? diff --git a/src/pages/en/v1.20.0/tutorials/build-plugins.mdx b/src/pages/en/v1.20.0/tutorials/build-plugins.mdx index b926d43a..d64fed61 100644 --- a/src/pages/en/v1.20.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.20.0/tutorials/build-plugins.mdx @@ -109,7 +109,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -320,10 +320,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! diff --git a/src/pages/en/v1.9.0/tutorials/build-plugins.mdx b/src/pages/en/v1.9.0/tutorials/build-plugins.mdx index d5eded41..c97e3025 100644 --- a/src/pages/en/v1.9.0/tutorials/build-plugins.mdx +++ b/src/pages/en/v1.9.0/tutorials/build-plugins.mdx @@ -110,7 +110,7 @@ Now, there are a few things we have to do to make this work: With that done, we'll create the actual component showcasing the data inside the player. Something like this: -![The end result](./images/build-plugins/1.png) +![The end result](/tutorials/build-plugins/1.png) To do so, we’ll rely on an existing component, and we’ll copy&paste the Fetch component. To do that, we’ll duplicate the folder `frontend/app/components/Session_/Fetch` and name it “JQuery”. @@ -321,10 +321,10 @@ The code is performing a GET request using Jquery’s `get` method once the page Here is what the end result should look like for you: -![Displaying JQuery requests](./images/build-plugins/2.png) +![Displaying JQuery requests](/tutorials/build-plugins/2.png) --- You can [check out this repository](https://github.com/deleteman/openreplay) for the **complete source code** of this tutorial. -If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly! \ No newline at end of file +If you have any issues with any of the steps of this process, please contact us on our [Slack community](https://slack.openreplay.com/) and ask our devs directly!