diff --git a/apps/web/src/app/app/(primary_layout)/chats/page.tsx b/apps/web/src/app/app/(primary_layout)/chats/page.tsx
index 8b646562b..0cf5c3d1f 100644
--- a/apps/web/src/app/app/(primary_layout)/chats/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/chats/page.tsx
@@ -1,6 +1,11 @@
import { AppPageLayout } from '@/components/ui/layouts/AppPageLayout';
import { ChatListContainer } from '../../../../controllers/ChatsListController';
import { ChatListHeader } from '../../../../controllers/ChatsListController/ChatListHeader';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Chats'
+};
const type = 'chats';
diff --git a/apps/web/src/app/app/(primary_layout)/collections/page.tsx b/apps/web/src/app/app/(primary_layout)/collections/page.tsx
index 6c70b09bb..08753f3be 100644
--- a/apps/web/src/app/app/(primary_layout)/collections/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/collections/page.tsx
@@ -1,4 +1,9 @@
import { CollectionListController } from '@/controllers/CollectionListController';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Collections'
+};
export default function CollectionsPage() {
return ;
diff --git a/apps/web/src/app/app/(primary_layout)/dashboards/page.tsx b/apps/web/src/app/app/(primary_layout)/dashboards/page.tsx
index 4fe130348..f53beeaa4 100644
--- a/apps/web/src/app/app/(primary_layout)/dashboards/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/dashboards/page.tsx
@@ -1,4 +1,9 @@
import { DashboardListController } from '@/controllers/DashboardListController';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Dashboards'
+};
export default function DashboardPage() {
return ;
diff --git a/apps/web/src/app/app/(primary_layout)/datasets/page.tsx b/apps/web/src/app/app/(primary_layout)/datasets/page.tsx
index b7a2477a6..362e6b7dc 100644
--- a/apps/web/src/app/app/(primary_layout)/datasets/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/datasets/page.tsx
@@ -1,4 +1,9 @@
import { DatasetsListController } from '../../../../controllers/DatasetsListController';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Datasets'
+};
export default async function DashboardPage() {
return ;
diff --git a/apps/web/src/app/app/(primary_layout)/home/page.tsx b/apps/web/src/app/app/(primary_layout)/home/page.tsx
index d1222dc5a..edca28d64 100644
--- a/apps/web/src/app/app/(primary_layout)/home/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/home/page.tsx
@@ -1,5 +1,10 @@
import { AppPageLayout } from '@/components/ui/layouts';
import { HomePageController, HomePageHeader } from '@/controllers/HomePage';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Home'
+};
export default function HomePage() {
return (
diff --git a/apps/web/src/app/app/(primary_layout)/logs/page.tsx b/apps/web/src/app/app/(primary_layout)/logs/page.tsx
index e1cd556c6..843ef5e56 100644
--- a/apps/web/src/app/app/(primary_layout)/logs/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/logs/page.tsx
@@ -1,6 +1,11 @@
import { AppPageLayout } from '@/components/ui/layouts';
import { ChatListContainer } from '../../../../controllers/ChatsListController';
import { ChatListHeader } from '../../../../controllers/ChatsListController/ChatListHeader';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Logs'
+};
const type = 'logs';
diff --git a/apps/web/src/app/app/(primary_layout)/metrics/page.tsx b/apps/web/src/app/app/(primary_layout)/metrics/page.tsx
index 806ab0032..904d92036 100644
--- a/apps/web/src/app/app/(primary_layout)/metrics/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/metrics/page.tsx
@@ -1,4 +1,9 @@
import { MetricListContainer } from '@/controllers/MetricListContainer';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Metrics'
+};
export default function MetricsPage() {
return ;
diff --git a/apps/web/src/app/app/(primary_layout)/new-user/page.tsx b/apps/web/src/app/app/(primary_layout)/new-user/page.tsx
index 748083fe1..71752816a 100644
--- a/apps/web/src/app/app/(primary_layout)/new-user/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/new-user/page.tsx
@@ -1,4 +1,9 @@
import { NewUserController } from './_NewUserController';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Welcome to Buster 👋'
+};
export default function NewUserPage() {
return ;
diff --git a/apps/web/src/app/app/(primary_layout)/terms/page.tsx b/apps/web/src/app/app/(primary_layout)/terms/page.tsx
index f239e4362..9631eadda 100644
--- a/apps/web/src/app/app/(primary_layout)/terms/page.tsx
+++ b/apps/web/src/app/app/(primary_layout)/terms/page.tsx
@@ -4,6 +4,11 @@ import { useState } from 'react';
import { AppPageLayout } from '@/components/ui/layouts';
import { TermsListController } from '@/controllers/TermsListController';
import { TermsHeader } from '@/controllers/TermsListController/TermsHeader';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Terms'
+};
export default function TermsPage() {
const [openNewTermsModal, setOpenNewTermsModal] = useState(false);
diff --git a/apps/web/src/app/app/(settings_layout)/settings/(permissions)/dataset-groups/page.tsx b/apps/web/src/app/app/(settings_layout)/settings/(permissions)/dataset-groups/page.tsx
index 82b745249..ebc3d6693 100644
--- a/apps/web/src/app/app/(settings_layout)/settings/(permissions)/dataset-groups/page.tsx
+++ b/apps/web/src/app/app/(settings_layout)/settings/(permissions)/dataset-groups/page.tsx
@@ -8,6 +8,11 @@ import { useMemoizedFn } from '@/hooks';
import { useDebounceSearch } from '@/hooks/useDebounceSearch';
import { SettingsPageHeader } from '../../_components/SettingsPageHeader';
import { ListDatasetGroupsComponent } from './ListDatasetGroupsComponent';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Dataset groups'
+};
export default function Page() {
const { data: datasetGroups, isFetched } = useListDatasetGroups();
diff --git a/apps/web/src/app/app/(settings_layout)/settings/(permissions)/permission-groups/page.tsx b/apps/web/src/app/app/(settings_layout)/settings/(permissions)/permission-groups/page.tsx
index 8e1aabb7e..32a138a4a 100644
--- a/apps/web/src/app/app/(settings_layout)/settings/(permissions)/permission-groups/page.tsx
+++ b/apps/web/src/app/app/(settings_layout)/settings/(permissions)/permission-groups/page.tsx
@@ -12,6 +12,11 @@ import { useMemoizedFn } from '@/hooks';
import { useDebounceSearch } from '@/hooks/useDebounceSearch';
import { SettingsPageHeader } from '../../_components/SettingsPageHeader';
import { ListPermissionGroupsComponent } from './ListPermissionGroupsComponent';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Permission groups'
+};
export default function Page() {
const { data: permissionGroups, isFetched, refetch } = useListAllPermissionGroups();
diff --git a/apps/web/src/app/app/(settings_layout)/settings/(permissions)/users/page.tsx b/apps/web/src/app/app/(settings_layout)/settings/(permissions)/users/page.tsx
index 0e1ec4319..7c7dbfdb4 100644
--- a/apps/web/src/app/app/(settings_layout)/settings/(permissions)/users/page.tsx
+++ b/apps/web/src/app/app/(settings_layout)/settings/(permissions)/users/page.tsx
@@ -11,6 +11,11 @@ import { useMemoizedFn } from '@/hooks';
import { useDebounceSearch } from '@/hooks/useDebounceSearch';
import { SettingsPageHeader } from '../../_components/SettingsPageHeader';
import { ListUsersComponent } from './ListUsersComponent';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'User management'
+};
export default function Page() {
const userOrganization = useUserConfigContextSelector((x) => x.userOrganizations);
diff --git a/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/api-keys/page.tsx b/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/api-keys/page.tsx
index f7af723c3..7a629d396 100644
--- a/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/api-keys/page.tsx
+++ b/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/api-keys/page.tsx
@@ -1,5 +1,10 @@
import { SettingsPageHeader } from '../../../_components/SettingsPageHeader';
import { ApiKeysController } from './ApiKeysController';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'API keys'
+};
export default function Page() {
return (
diff --git a/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/datasources/(admin-restricted-space)/[datasourceId]/page.tsx b/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/datasources/(admin-restricted-space)/[datasourceId]/page.tsx
index 921382b76..29b6e7850 100644
--- a/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/datasources/(admin-restricted-space)/[datasourceId]/page.tsx
+++ b/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/datasources/(admin-restricted-space)/[datasourceId]/page.tsx
@@ -1,6 +1,11 @@
import { BusterRoutes, createBusterRoute } from '@/routes';
import { HeaderContainer } from '../../_HeaderContainer';
import { DatasourceForm } from './_forms';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Datasources'
+};
export default async function Page(props: {
params: Promise<{
diff --git a/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/datasources/(admin-restricted-space)/add/page.tsx b/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/datasources/(admin-restricted-space)/add/page.tsx
index 01d18812b..2d3d456b4 100644
--- a/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/datasources/(admin-restricted-space)/add/page.tsx
+++ b/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/(admin-only)/datasources/(admin-restricted-space)/add/page.tsx
@@ -12,6 +12,11 @@ import { cn } from '@/lib/classMerge';
import { BusterRoutes, createBusterRoute } from '@/routes';
import { HeaderContainer } from '../../_HeaderContainer';
import { DataSourceFormContent } from '../[datasourceId]/_forms/DatasourceFormContent';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Datasources'
+};
export default function Page({
searchParams: { type }
diff --git a/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/profile/page.tsx b/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/profile/page.tsx
index fc0efeef0..646948ebd 100644
--- a/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/profile/page.tsx
+++ b/apps/web/src/app/app/(settings_layout)/settings/(restricted-width)/profile/page.tsx
@@ -5,6 +5,11 @@ import { Text, Title } from '@/components/ui/typography';
import { useUserConfigContextSelector } from '@/context/Users';
import { formatDate } from '@/lib/date';
import { SettingsPageHeader } from '../../_components/SettingsPageHeader';
+import type { Metadata } from 'next';
+
+export const metadata: Metadata = {
+ title: 'Profile'
+};
export default function ProfilePage() {
const user = useUserConfigContextSelector((state) => state.user);
diff --git a/apps/web/src/components/features/auth/LoginForm.tsx b/apps/web/src/components/features/auth/LoginForm.tsx
index 78e0a9a64..866c0f312 100644
--- a/apps/web/src/components/features/auth/LoginForm.tsx
+++ b/apps/web/src/components/features/auth/LoginForm.tsx
@@ -274,7 +274,6 @@ const LoginOptions: React.FC<{
}}
disabled={!!loading}
autoComplete="email"
- tabIndex={-3}
/>
@@ -289,7 +288,6 @@ const LoginOptions: React.FC<{
name="password"
placeholder="Password"
autoComplete="new-password"
- tabIndex={-4}
/>
{signUpFlow && (
@@ -305,7 +303,6 @@ const LoginOptions: React.FC<{
name="password2"
placeholder="Confirm password"
autoComplete="new-password"
- tabIndex={-5}
/>
{password && (
@@ -331,8 +328,7 @@ const LoginOptions: React.FC<{
type="submit"
loading={loading === 'email'}
variant="black"
- disabled={!signUpFlow ? false : disableSubmitButton}
- tabIndex={-6}>
+ disabled={!signUpFlow ? false : disableSubmitButton}>
{!signUpFlow ? 'Sign in' : 'Sign up'}
diff --git a/apps/web/src/controllers/HomePage/NewChatWarning.tsx b/apps/web/src/controllers/HomePage/NewChatWarning.tsx
index 9c4fa726c..e28d88b6c 100644
--- a/apps/web/src/controllers/HomePage/NewChatWarning.tsx
+++ b/apps/web/src/controllers/HomePage/NewChatWarning.tsx
@@ -76,7 +76,7 @@ export const NewChatWarning = React.memo(
{allCompleted
? ' Your data is ready to be explored.'
- : " Without proper setup, we can't retrieve relevant information."}
+ : " Without proper setup, we can't retrieve your data."}
diff --git a/turbo.json b/turbo.json
index 34c514970..b9217dad4 100644
--- a/turbo.json
+++ b/turbo.json
@@ -66,6 +66,8 @@
"NEXT_PUBLIC_WS_URL",
"NEXT_PUBLIC_POSTHOG_KEY",
"NEXT_PUBLIC_POSTHOG_HOST",
+ "NEXT_PUBLIC_POSTHOG_KEY",
+ "NEXT_PUBLIC_POSTHOG_HOST",
"NEXT_SLACK_APP_SUPPORT_URL",
"NEXT_PRIVATE_SUPABASE_SERVICE_ROLE_KEY",