From 782e11f795e5c55fcb56010f22b1ce8e17a34b2b Mon Sep 17 00:00:00 2001 From: AyrisAI Date: Sat, 16 May 2026 01:17:45 +0300 Subject: [PATCH] perf: apply Vercel React best practices (async-parallel and server-serialization) --- app/services/[slug]/[location]/page.tsx | 15 +++++++++------ app/services/page.tsx | 5 +++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/services/[slug]/[location]/page.tsx b/app/services/[slug]/[location]/page.tsx index db85820..9604447 100644 --- a/app/services/[slug]/[location]/page.tsx +++ b/app/services/[slug]/[location]/page.tsx @@ -37,18 +37,21 @@ export async function generateMetadata({ params }: Props): Promise { export default async function ServiceLocationPage({ params }: Props) { const { slug, location: locationSlug } = await params; - const [service, location, settings] = await Promise.all([ - getServiceBySlug(slug), + + // Vercel Best Practice: async-parallel - Fetch independent operations in parallel + const service = await getServiceBySlug(slug); + if (!service) notFound(); + + const [location, settings, projects] = await Promise.all([ getLocationBySlug(locationSlug), - getSettings() + getSettings(), + getProjectsByService(service.title) ]); - if (!service || !location) { + if (!location) { notFound(); } - const projects = await getProjectsByService(service.title); - const breadcrumbLd = { "@context": "https://schema.org", "@type": "BreadcrumbList", diff --git a/app/services/page.tsx b/app/services/page.tsx index 0a5cd7b..f7d64f6 100644 --- a/app/services/page.tsx +++ b/app/services/page.tsx @@ -19,8 +19,9 @@ export async function generateMetadata(): Promise { export default async function ServicesPage() { const [services, locations] = await Promise.all([ - sql`SELECT * FROM services ORDER BY display_order ASC`, - sql`SELECT * FROM locations ORDER BY display_order ASC` + // Vercel Best Practice: server-serialization - Select only required fields + sql`SELECT id, title, description, slug, icon_name, sub_services FROM services ORDER BY display_order ASC`, + sql`SELECT id, name, slug FROM locations ORDER BY display_order ASC` ]); const servicesSchema = {