From 98862a6356261713d884f4322c295cdace8e8131 Mon Sep 17 00:00:00 2001 From: Nicholas Sylke Date: Mon, 21 Aug 2023 21:41:19 -0500 Subject: [PATCH] feat: robots.txt & sitemap.xml --- apps/marketing/src/app/robots.ts | 14 +++++++++++ apps/marketing/src/app/sitemap.ts | 41 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 apps/marketing/src/app/robots.ts create mode 100644 apps/marketing/src/app/sitemap.ts diff --git a/apps/marketing/src/app/robots.ts b/apps/marketing/src/app/robots.ts new file mode 100644 index 000000000..de74ea314 --- /dev/null +++ b/apps/marketing/src/app/robots.ts @@ -0,0 +1,14 @@ +import { MetadataRoute } from 'next'; + +import { getBaseUrl } from '@documenso/lib/universal/get-base-url'; + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: '*', + allow: '/*', + disallow: ['/_next/*'], + }, + sitemap: `${getBaseUrl()}/sitemap.xml`, + }; +} diff --git a/apps/marketing/src/app/sitemap.ts b/apps/marketing/src/app/sitemap.ts new file mode 100644 index 000000000..b9becde3b --- /dev/null +++ b/apps/marketing/src/app/sitemap.ts @@ -0,0 +1,41 @@ +import { MetadataRoute } from 'next'; + +import { allBlogPosts, allGenericPages } from 'contentlayer/generated'; + +import { getBaseUrl } from '@documenso/lib/universal/get-base-url'; + +export default function sitemap(): MetadataRoute.Sitemap { + const baseUrl = getBaseUrl(); + const lastModified = new Date(); + + return [ + { + url: baseUrl, + lastModified, + }, + ...allGenericPages.map((doc) => ({ + url: `${baseUrl}/${doc._raw.flattenedPath}`, + lastModified, + })), + { + url: `${baseUrl}/blog`, + lastModified, + }, + ...allBlogPosts.map((doc) => ({ + url: `${baseUrl}/${doc._raw.flattenedPath}`, + lastModified, + })), + { + url: `${baseUrl}/open`, + lastModified, + }, + { + url: `${baseUrl}/oss-friends`, + lastModified, + }, + { + url: `${baseUrl}/pricing`, + lastModified, + }, + ]; +}