diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index b4ace4f..0b526a6 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -13,8 +13,8 @@ const inter = Inter({ display: 'swap', }); -const SITE_URL = 'https://policyengine.org/us/keep-your-pay-act'; -const OG_IMAGE = 'https://policyengine.org/assets/logos/policyengine/og-logo.png'; +const SITE_URL = 'https://www.policyengine.org/us/keep-your-pay-act'; +const OG_IMAGE = 'https://www.policyengine.org/assets/logos/policyengine/og-logo.png'; export const metadata: Metadata = { title: { @@ -103,8 +103,8 @@ const jsonLd = { provider: { '@type': 'Organization', name: 'PolicyEngine', - url: 'https://policyengine.org', - logo: 'https://policyengine.org/assets/logos/policyengine/og-logo.png', + url: 'https://www.policyengine.org', + logo: 'https://www.policyengine.org/assets/logos/policyengine/og-logo.png', sameAs: [ 'https://twitter.com/ThePolicyEngine', 'https://www.facebook.com/PolicyEngine', diff --git a/frontend/app/robots.ts b/frontend/app/robots.ts index 49d8b0f..9469ee0 100644 --- a/frontend/app/robots.ts +++ b/frontend/app/robots.ts @@ -9,7 +9,7 @@ export default function robots(): MetadataRoute.Robots { disallow: ['/api/', '/_next/'], }, ], - sitemap: 'https://policyengine.org/us/keep-your-pay-act/sitemap.xml', - host: 'https://policyengine.org', + sitemap: 'https://www.policyengine.org/us/keep-your-pay-act/sitemap.xml', + host: 'https://www.policyengine.org', }; } diff --git a/frontend/app/sitemap.ts b/frontend/app/sitemap.ts index aa856ae..d98f5b4 100644 --- a/frontend/app/sitemap.ts +++ b/frontend/app/sitemap.ts @@ -3,14 +3,14 @@ import type { MetadataRoute } from 'next'; export default function sitemap(): MetadataRoute.Sitemap { return [ { - url: 'https://policyengine.org/us/keep-your-pay-act', - lastModified: new Date(), + url: 'https://www.policyengine.org/us/keep-your-pay-act', + lastModified: '2026-05-10', changeFrequency: 'weekly', priority: 1, }, { - url: 'https://policyengine.org/us/keep-your-pay-act/amt-chart', - lastModified: new Date(), + url: 'https://www.policyengine.org/us/keep-your-pay-act/amt-chart', + lastModified: '2026-05-10', changeFrequency: 'monthly', priority: 0.7, }, diff --git a/frontend/components/Header.tsx b/frontend/components/Header.tsx index 75b5f7f..7246cb0 100644 --- a/frontend/components/Header.tsx +++ b/frontend/components/Header.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useCallback, useState, useRef, useEffect } from 'react'; +import { useState, useRef, useEffect } from 'react'; /** * Header matching policyengine-app-v2 exactly. @@ -22,12 +22,15 @@ const FONT = "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sa const NAV_ITEMS = [ { label: 'Research', href: 'https://policyengine.org/us/research' }, { label: 'Model', href: 'https://policyengine.org/us/model' }, + { label: 'API', href: 'https://policyengine.org/us/api' }, + { label: 'Python', href: 'https://policyengine.org/us/python' }, { label: 'About', hasDropdown: true, items: [ { label: 'Team', href: 'https://policyengine.org/us/team' }, { label: 'Supporters', href: 'https://policyengine.org/us/supporters' }, + { label: 'Citations', href: 'https://policyengine.org/us/citations' }, ], }, { label: 'Donate', href: 'https://policyengine.org/us/donate' }, diff --git a/frontend/next.config.mjs b/frontend/next.config.mjs index 162e35b..772fb21 100644 --- a/frontend/next.config.mjs +++ b/frontend/next.config.mjs @@ -1,3 +1,8 @@ +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + // Use empty string for local dev (NEXT_PUBLIC_BASE_PATH=""), otherwise default to production path const basePath = process.env.NEXT_PUBLIC_BASE_PATH !== undefined ? process.env.NEXT_PUBLIC_BASE_PATH @@ -11,6 +16,9 @@ const nextConfig = { images: { formats: ['image/avif', 'image/webp'], }, + turbopack: { + root: path.join(__dirname, ".."), + }, async headers() { return [ {