sitemap.ts 868 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import type { MetadataRoute } from 'next';
  2. const SITE = 'https://briven.tech';
  3. /**
  4. * Marketing-site sitemap. Dashboard routes are gated behind auth and
  5. * intentionally excluded — they shouldn't be indexed.
  6. */
  7. const MIGRATE_SOURCES = [
  8. 'convex',
  9. 'supabase',
  10. 'firebase',
  11. 'mongodb',
  12. 'drizzle',
  13. 'prisma',
  14. 'postgres',
  15. 'hasura',
  16. 'nextauth',
  17. ] as const;
  18. const PATHS: readonly string[] = [
  19. '/',
  20. '/pricing',
  21. '/compare',
  22. '/migrate',
  23. ...MIGRATE_SOURCES.map((s) => `/migrate/${s}`),
  24. '/signin',
  25. '/privacy',
  26. '/terms',
  27. '/subprocessors',
  28. '/trust',
  29. ];
  30. export default function sitemap(): MetadataRoute.Sitemap {
  31. const lastModified = new Date();
  32. return PATHS.map((p) => ({
  33. url: `${SITE}${p}`,
  34. lastModified,
  35. changeFrequency: p === '/' ? ('weekly' as const) : ('monthly' as const),
  36. priority: p === '/' ? 1 : 0.5,
  37. }));
  38. }