diff --git a/src/app/ai-builds/page.tsx b/src/app/ai-builds/page.tsx
new file mode 100644
index 0000000..1d48ab7
--- /dev/null
+++ b/src/app/ai-builds/page.tsx
@@ -0,0 +1,11 @@
+import type { Metadata } from 'next';
+import AiBuildWall from '@/features/HomePage/components/AiBuildWall';
+
+export const metadata: Metadata = {
+ title: 'AI-Assisted Build Wall',
+ description: 'A showcase of shipped AI-assisted websites and products from J StaR Films Studios, including the AI model stacks and creative attributions behind each build.',
+};
+
+export default function AiBuildsPage() {
+ return ;
+}
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index c57ed7e..0e30d16 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -37,7 +37,19 @@ export default async function RootLayout({
}: {
children: React.ReactNode;
}) {
- const { user } = await withAuth();
+ let user = null;
+
+ try {
+ const auth = await withAuth();
+ user = auth.user;
+ } catch (error) {
+ if (typeof error === 'object' && error !== null && 'digest' in error && error.digest === 'DYNAMIC_SERVER_USAGE') {
+ throw error;
+ }
+
+ console.warn('[WorkOS] Auth is unavailable; rendering public layout without a signed-in user.', error);
+ }
+
const authButton = user ? : ;
return (
diff --git a/src/app/page.tsx b/src/app/page.tsx
index a6e0d9c..5734716 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -3,6 +3,7 @@ import HeroSection from "@/features/HomePage/components/HeroSection";
import AboutSection from "@/features/HomePage/components/AboutSection";
import ServicesSection from "@/features/HomePage/components/ServicesSection";
import PortfolioSection from "@/features/HomePage/components/PortfolioSection";
+import AiBuildWall from "@/features/HomePage/components/AiBuildWall";
import ProcessSection from "@/features/HomePage/components/ProcessSection";
import PricingSection from "@/features/HomePage/components/PricingSection";
import TestimonialsSection from "@/features/HomePage/components/TestimonialsSection";
@@ -18,6 +19,7 @@ export default function HomePage() {
+
diff --git a/src/app/portfolio/page.tsx b/src/app/portfolio/page.tsx
index 24ca943..090f3f9 100644
--- a/src/app/portfolio/page.tsx
+++ b/src/app/portfolio/page.tsx
@@ -1,5 +1,6 @@
import PortfolioHero from "@/features/PortfolioPage/components/PortfolioHero";
+import AiBuildWall from "@/features/HomePage/components/AiBuildWall";
import PortfolioFilter from "@/features/PortfolioPage/components/PortfolioFilter";
import PortfolioGrid from "@/features/PortfolioPage/components/PortfolioGrid";
import PortfolioCta from "@/features/PortfolioPage/components/PortfolioCta";
@@ -8,6 +9,7 @@ export default function PortfolioPage() {
return (
<>
+
diff --git a/src/components/auth/SignInButton.tsx b/src/components/auth/SignInButton.tsx
index fdfeba8..c048dc8 100644
--- a/src/components/auth/SignInButton.tsx
+++ b/src/components/auth/SignInButton.tsx
@@ -9,7 +9,17 @@ export async function SignInButton() {
// Encode current URL in state parameter
const state = encodeURIComponent(currentUrl);
- const signInUrl = await getSignInUrl({ state });
+ let signInUrl = '/auth/callback';
+
+ try {
+ signInUrl = await getSignInUrl({ state });
+ } catch (error) {
+ if (typeof error === 'object' && error !== null && 'digest' in error && error.digest === 'DYNAMIC_SERVER_USAGE') {
+ throw error;
+ }
+
+ console.warn('[WorkOS] Sign-in URL unavailable; auth is not configured for this environment.', error);
+ }
return (
{
Home
Services
Portfolio
+
AI Build Wall
About Us
Contact
diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx
index e74691c..6fa4de9 100644
--- a/src/components/layout/Header.tsx
+++ b/src/components/layout/Header.tsx
@@ -4,7 +4,7 @@
import { useState, useEffect, useCallback, useMemo } from 'react';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
-import { MenuIcon, CloseIcon, SunIcon, MoonIcon, UserIcon, VideoCameraIcon, FilmIcon, PenFancyIcon, GiftIcon, EnvelopeIcon } from '@/components/icons';
+import { MenuIcon, CloseIcon, SunIcon, MoonIcon, UserIcon, VideoCameraIcon, FilmIcon, CodeIcon, PenFancyIcon, GiftIcon, EnvelopeIcon } from '@/components/icons';
import { useSmartNavigation } from '@/hooks/useSmartNavigation';
import Tooltip from '@/components/ui/Tooltip';
@@ -73,6 +73,7 @@ const Header: React.FC = ({ authButton }) => {
{ href: '/about', label: 'About', icon: UserIcon },
{ href: '/services', label: 'Services', icon: VideoCameraIcon },
{ href: '/portfolio', label: 'Portfolio', icon: FilmIcon },
+ { href: '/ai-builds', label: 'AI Builds', icon: CodeIcon },
{ href: '/blog', label: 'Blog', icon: PenFancyIcon },
{ href: '/store', label: 'Store', icon: GiftIcon },
{ href: '/contact', label: 'Contact', icon: EnvelopeIcon }
diff --git a/src/content/aiBuildWall.ts b/src/content/aiBuildWall.ts
new file mode 100644
index 0000000..11a7d90
--- /dev/null
+++ b/src/content/aiBuildWall.ts
@@ -0,0 +1,76 @@
+export interface AiAssistedBuildProject {
+ name: string;
+ url: string;
+ description: string;
+ stack: string[];
+ bannerAttribution: string;
+ logoAttribution?: string;
+ proofLine: string;
+ accent: string;
+}
+
+export const aiAssistedBuildProjects: AiAssistedBuildProject[] = [
+ {
+ name: 'J StaR Studios',
+ url: 'https://jstarstudios.com',
+ description: 'Flagship creative studio website for presenting John’s production, strategy, and technology work.',
+ stack: ['Gemini 3.0 Pro', 'Claude Opus 4.5'],
+ bannerAttribution: 'Banner by Gemini 3 Pro',
+ proofLine: 'Shows how AI can accelerate a premium studio presence without flattening the brand voice.',
+ accent: 'from-jstar-blue to-faith-purple',
+ },
+ {
+ name: 'For Your Business',
+ url: 'https://fyb.jstarstudios.com',
+ description: 'Business-facing web experience built to translate creative capability into clearer client action.',
+ stack: ['Gemini 3.0 Pro', 'Claude 4.5'],
+ bannerAttribution: 'Pure SVG banner by Gemini 3.0 Pro',
+ logoAttribution: 'Logo by Nano Banana',
+ proofLine: 'Proves fast iteration can still produce custom SVG craft and polished conversion framing.',
+ accent: 'from-growth-green to-jstar-blue',
+ },
+ {
+ name: 'KageOS',
+ url: 'https://kageos.jstarstudios.com',
+ description: 'A high-concept product site for an OS-style creative and technical experience.',
+ stack: ['Gemini 3.0 Pro', 'Kimi K2.5'],
+ bannerAttribution: 'Banner by Claude Opus 4.6 SVG and Nano Banana Pro',
+ proofLine: 'Shows multi-model art direction: one stack for structure, another for cinematic visual language.',
+ accent: 'from-faith-purple to-red-500',
+ },
+ {
+ name: 'KOE Voice',
+ url: 'https://www.koevoice.xyz',
+ description: 'Voice-oriented product website with a character-led identity and advanced AI-assisted build process.',
+ stack: ['GPT 5.3 Codex', 'GPT 5.4', 'Gemini 3.1 Pro', 'Claude Opus 4.6', 'GPT 5.5'],
+ bannerAttribution: 'Banner by GPT 5.5 High',
+ logoAttribution: 'Logo uses a real character',
+ proofLine: 'Demonstrates orchestration across frontier coding, copy, and visual-direction models.',
+ accent: 'from-cyan-400 to-faith-purple',
+ },
+ {
+ name: 'Melo School',
+ url: 'https://meloschool.com',
+ description: 'Education-focused website for music learning with a friendly product and enrollment feel.',
+ stack: ['GPT 5.4', 'Gemini 3.1 Flash', 'GPT 5.5 Low'],
+ bannerAttribution: 'Banner by GPT 5.5 High and GPT Image 2',
+ proofLine: 'Shows a lighter AI stack can ship a warm, accessible education brand quickly.',
+ accent: 'from-amber-400 to-growth-green',
+ },
+ {
+ name: 'Olive Vine Dental',
+ url: 'https://www.olivevinedental.com/',
+ description: 'Dental practice website with clear service positioning and search-friendly content support.',
+ stack: ['Gemini 3.5 Flash'],
+ bannerAttribution: 'Banner not done yet',
+ logoAttribution: 'SEO support by GPT 5.5',
+ proofLine: 'Proves a constrained, practical model stack can still move a real client site forward.',
+ accent: 'from-emerald-400 to-jstar-blue',
+ },
+];
+
+export const aiBuildWallStats = [
+ { label: 'Live projects', value: '6' },
+ { label: 'AI stacks documented', value: '6' },
+ { label: 'Fake metrics', value: '0' },
+];
diff --git a/src/features/HomePage/components/AiBuildWall.tsx b/src/features/HomePage/components/AiBuildWall.tsx
new file mode 100644
index 0000000..288c511
--- /dev/null
+++ b/src/features/HomePage/components/AiBuildWall.tsx
@@ -0,0 +1,114 @@
+import Link from 'next/link';
+import { aiAssistedBuildProjects, aiBuildWallStats } from '@/content/aiBuildWall';
+
+interface AiBuildWallProps {
+ compact?: boolean;
+}
+
+const AiBuildWall = ({ compact = false }: AiBuildWallProps) => {
+ const visibleProjects = compact ? aiAssistedBuildProjects.slice(0, 3) : aiAssistedBuildProjects;
+
+ return (
+
+
+
+
+
+
+
+
+ AI-Assisted Build Wall
+
+
+ AI-accelerated websites/products shipped fast — with the stack in plain sight.
+
+
+ A public ledger of shipped sites where AI was used as a production partner: strategy,
+ code, SVG direction, image generation, SEO, and polish. Client-friendly on the surface;
+ builder-detail underneath.
+