fix: browser tab title should always just say "Epicure"

Root layout used title.template ("%s | Epicure") and 38 pages set
their own title, producing "Recipes | Epicure", "Messages — Epicure",
etc. Drop the template, set a flat "Epicure" default, and clear every
page's title override so they all inherit it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Arnaud
2026-07-09 14:58:03 +02:00
parent 64f45ed74d
commit 212d6f7335
35 changed files with 35 additions and 37 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ import { getMessages } from "@/lib/i18n/server";
type Params = { params: Promise<{ id: string }> };
export const metadata: Metadata = { title: "Collection" };
export const metadata: Metadata = {};
export default async function CollectionPage({ params }: Params) {
const { id } = await params;
+1 -1
View File
@@ -4,7 +4,7 @@ import { auth } from "@/lib/auth/server";
import { db, collections, eq, desc } from "@epicure/db";
import { CollectionsPageContent } from "@/components/collections/collections-page-content";
export const metadata: Metadata = { title: "Collections" };
export const metadata: Metadata = {};
export default async function CollectionsPage() {
const session = await auth.api.getSession({ headers: await headers() });
+1 -1
View File
@@ -13,7 +13,7 @@ import {
} from "@epicure/db";
import { ExplorePageContent } from "@/components/search/explore-page-content";
export const metadata: Metadata = { title: "Explore — Epicure" };
export const metadata: Metadata = {};
export type RecipeResult = {
id: string;
+1 -1
View File
@@ -5,7 +5,7 @@ import { db, recipes, users, userFollows, eq, desc, inArray } from "@epicure/db"
import { getPublicUrl } from "@/lib/storage";
import { FeedPageContent } from "@/components/feed/feed-page-content";
export const metadata: Metadata = { title: "Feed" };
export const metadata: Metadata = {};
export default async function FeedPage() {
const session = await auth.api.getSession({ headers: await headers() });
+1 -1
View File
@@ -13,7 +13,7 @@ import { ExportMarkdownButton } from "@/components/shared/export-markdown-button
import { mealPlanToMarkdown } from "@/lib/markdown/meal-plan";
import { getMessages, formatMessage } from "@/lib/i18n/server";
export const metadata: Metadata = { title: "Meal Plan" };
export const metadata: Metadata = {};
function getMonday(dateStr?: string): Date {
const d = dateStr ? new Date(dateStr) : new Date();
@@ -9,7 +9,7 @@ import { getMessages, formatMessage } from "@/lib/i18n/server";
type Params = { params: Promise<{ mealPlanId: string }> };
export const metadata: Metadata = { title: "Shared Meal Plan" };
export const metadata: Metadata = {};
export default async function SharedMealPlanPage({ params }: Params) {
const { mealPlanId } = await params;
+1 -1
View File
@@ -5,7 +5,7 @@ import { auth } from "@/lib/auth/server";
import { ConversationsList } from "@/components/social/conversations-list";
import { getMessages } from "@/lib/i18n/server";
export const metadata: Metadata = { title: "Messages — Epicure" };
export const metadata: Metadata = {};
export default async function MessagesPage() {
const session = await auth.api.getSession({ headers: await headers() });
+1 -1
View File
@@ -5,7 +5,7 @@ import { db, pantryItems, eq, asc } from "@epicure/db";
import { PantryManager } from "@/components/meal-plan/pantry-manager";
import { PantryPageHeader } from "@/components/pantry/pantry-page-header";
export const metadata: Metadata = { title: "Pantry" };
export const metadata: Metadata = {};
export default async function PantryPage() {
const session = await auth.api.getSession({ headers: await headers() });
+1 -1
View File
@@ -4,7 +4,7 @@ import { auth } from "@/lib/auth/server";
import { PeopleSearch } from "@/components/social/people-search";
import { getMessages } from "@/lib/i18n/server";
export const metadata: Metadata = { title: "Find People — Epicure" };
export const metadata: Metadata = {};
export default async function PeoplePage() {
const session = await auth.api.getSession({ headers: await headers() });
@@ -9,7 +9,7 @@ import { getPublicUrl } from "@/lib/storage";
type Params = { params: Promise<{ id: string }> };
export const metadata: Metadata = { title: "Edit Recipe" };
export const metadata: Metadata = {};
export default async function EditRecipePage({ params }: Params) {
const { id } = await params;
+1 -1
View File
@@ -6,7 +6,7 @@ import { eq } from "@epicure/db";
import { getPublicUrl } from "@/lib/storage";
import { CanCookContent } from "@/components/recipe/can-cook-content";
export const metadata: Metadata = { title: "What can I cook?" };
export const metadata: Metadata = {};
const EXPIRING_WITHIN_DAYS = 3;
+1 -1
View File
@@ -3,7 +3,7 @@ import { RecipeForm } from "@/components/recipe/recipe-form";
import { NewRecipeHeader } from "@/components/recipe/new-recipe-header";
import { PhotoImportButton } from "@/components/recipe/photo-import-button";
export const metadata: Metadata = { title: "New Recipe" };
export const metadata: Metadata = {};
export default function NewRecipePage() {
return (
+1 -1
View File
@@ -7,7 +7,7 @@ import { RecipesHeader } from "@/components/recipe/recipes-header";
import { RecipesEmptyState } from "@/components/recipe/recipes-empty-state";
import { RecipesGrid } from "@/components/recipe/recipes-grid";
export const metadata: Metadata = { title: "Recipes" };
export const metadata: Metadata = {};
type SearchParams = Promise<{
q?: string;
+1 -1
View File
@@ -6,7 +6,7 @@ import { ByokManager } from "@/components/settings/byok-manager";
import { ModelPrefsForm } from "@/components/settings/model-prefs-form";
import { getMessages } from "@/lib/i18n/server";
export const metadata: Metadata = { title: "AI & Models Settings" };
export const metadata: Metadata = {};
export default async function AiSettingsPage() {
const session = await auth.api.getSession({ headers: await headers() });
@@ -7,7 +7,7 @@ import { db, apiKeys, eq } from "@epicure/db";
import { ApiKeysManager } from "@/components/settings/api-keys-manager";
import { getMessages } from "@/lib/i18n/server";
export const metadata: Metadata = { title: "API Keys" };
export const metadata: Metadata = {};
export default async function ApiKeysPage() {
const session = await auth.api.getSession({ headers: await headers() });
@@ -4,7 +4,7 @@ import { auth } from "@/lib/auth/server";
import { PushSubscribeButton } from "@/components/pwa/push-subscribe-button";
import { getMessages } from "@/lib/i18n/server";
export const metadata: Metadata = { title: "Notifications Settings" };
export const metadata: Metadata = {};
export default async function NotificationsPage() {
const session = await auth.api.getSession({ headers: await headers() });
@@ -5,7 +5,7 @@ import { db, userNutritionGoals, eq } from "@epicure/db";
import { NutritionGoalsForm } from "@/components/nutrition/nutrition-goals-form";
import { getMessages } from "@/lib/i18n/server";
export const metadata: Metadata = { title: "Nutrition Settings" };
export const metadata: Metadata = {};
export default async function NutritionPage() {
const session = await auth.api.getSession({ headers: await headers() });
+1 -1
View File
@@ -4,7 +4,7 @@ import { auth } from "@/lib/auth/server";
import { db, users, eq } from "@epicure/db";
import { SettingsForm } from "@/components/settings/settings-form";
export const metadata: Metadata = { title: "Profile Settings" };
export const metadata: Metadata = {};
export default async function SettingsPage() {
const session = await auth.api.getSession({ headers: await headers() });
@@ -3,7 +3,7 @@ import { headers } from "next/headers";
import { auth } from "@/lib/auth/server";
import { SecurityForm } from "@/components/settings/security-form";
export const metadata: Metadata = { title: "Security Settings" };
export const metadata: Metadata = {};
export default async function SecurityPage() {
const session = await auth.api.getSession({ headers: await headers() });
@@ -1,8 +1,6 @@
import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Webhook Docs — Epicure",
};
export const metadata: Metadata = {};
export default function WebhookDocsPage() {
return (
@@ -5,7 +5,7 @@ import { db, webhooks, eq } from "@epicure/db";
import { WebhooksManager } from "@/components/settings/webhooks-manager";
import { getMessages } from "@/lib/i18n/server";
export const metadata: Metadata = { title: "Webhooks" };
export const metadata: Metadata = {};
export default async function WebhooksPage() {
const session = await auth.api.getSession({ headers: await headers() });
@@ -17,7 +17,7 @@ import { getMessages, formatMessage } from "@/lib/i18n/server";
type Params = { params: Promise<{ id: string }> };
export const metadata: Metadata = { title: "Shopping List" };
export const metadata: Metadata = {};
export default async function ShoppingListPage({ params }: Params) {
const { id } = await params;
+1 -1
View File
@@ -4,7 +4,7 @@ import { auth } from "@/lib/auth/server";
import { db, shoppingLists, shoppingListMembers, eq, desc } from "@epicure/db";
import { ShoppingListsPageContent } from "@/components/shopping-lists/shopping-lists-page-content";
export const metadata: Metadata = { title: "Shopping Lists" };
export const metadata: Metadata = {};
export default async function ShoppingListsPage() {
const session = await auth.api.getSession({ headers: await headers() });