plans
2026-05-08
2026 05 08 Landing Reorganize by Audience

Landing Page Reorganization by Audience Segment

For agentic workers: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan.

Goal: Reorganize the (landing) pages into three audience segments: Guests, Artists, and Venue Seekers.

Architecture: Keep all content, just reorganize URLs and navigation. Guest content stays at root, Artists at /artists, Venue Seekers at /venues. The experiences/ subdirectory is flattened into the guest segment.

Tech Stack: Next.js App Router, paraglide-js i18n


File Structure After Reorganization

(landing)/
├── page.tsx                         # Guests — homepage (unchanged)
├── experiences/                     # Flattened under guests
│   ├── dinner-theater/page.tsx      # → /experiences/dinner-theater
│   ├── private-events/page.tsx      # → /experiences/private-events
│   ├── artist-performances/page.tsx # MOVED to /artists/performances
│   ├── creative-workshop/page.tsx    # → /experiences/creative-workshop
│   ├── our-evening/page.tsx         # → /experiences/our-evening
│   └── french-mentalist/page.tsx     # → /experiences/french-mentalist
├── artists/                         # NEW segment
│   ├── page.tsx                     # Artists landing (redirect or hero)
│   ├── performances/page.tsx        # FROM experiences/artist-performances
│   └── join-us/page.tsx             # FROM host-an-event/page.mdx
├── venues/                          # NEW segment
│   └── page.tsx                     # FROM venue-rental/page.tsx
├── about/page.tsx                   # Keep at root (shared info)
├── contact/page.tsx                 # Keep at root (shared info)
├── reviews/page.tsx                 # Keep at root (shared social proof)
├── schedule/page.tsx                # Keep at root (guest-facing schedule)
└── wall/page.tsx                   # Keep at root (guest gallery)

Tasks

Task 1: Create /artists/ segment directory and landing page

Files:

  • Create: apps/frontend/app/[locale]/(landing)/artists/page.tsx

  • Create: apps/frontend/components/artists/artists-client.tsx

  • Step 1: Create artists landing page

// apps/frontend/app/[locale]/(landing)/artists/page.tsx
// ipsoc checked: 2026-05-08
// SoC: Static page that delegates to client
 
import { ArtistsClient } from "~/components/artists/artists-client";
 
export default function ArtistsPage() {
  return <ArtistsClient />;
}
  • Step 2: Create artists client component
// apps/frontend/components/artists/artists-client.tsx
// ipsoc checked: 2026-05-08
// SoC: Page composition for artists segment
 
"use client";
 
import { PageHero } from "~/components/features/sections/page-hero";
import { SectionDivider } from "~/components/ui/section-divider";
import { Heading } from "~/components/ui/typography";
import { m } from "~/src/paraglide/messages";
 
export function ArtistsClient() {
  return (
    <main className="pt-[var(--header-height)]">
      <PageHero
        title={m.artists_heroTitle()}
        subtitle={m.artists_heroSubtitle()}
        backgroundImage="/images/landing-page/artist-carousel-1.jpg"
      />
      <SectionDivider />
      {/* Artist-specific sections to be added */}
    </main>
  );
}
  • Step 3: Add paraglide keys for artists segment

Add to messages/en.json and messages/vi.json:

{
  "artists_heroTitle": "Join Our Artists",
  "artists_heroSubtitle": "Perform, collaborate, and grow with House of Legends"
}
  • Step 4: Commit
git add apps/frontend/app/\[locale\]/\(landing\)/artists/
git commit -m "feat(landing): create /artists segment page structure"

Task 2: Move artist-performances to /artists/performances

Files:

  • Create: apps/frontend/app/[locale]/(landing)/artists/performances/page.tsx

  • Create: apps/frontend/components/artists/performances-client.tsx

  • Delete: apps/frontend/app/[locale]/(landing)/experiences/artist-performances/

  • Modify: apps/frontend/components/homepage-client.tsx (if it links here)

  • Step 1: Create performances page under artists

// apps/frontend/app/[locale]/(landing)/artists/performances/page.tsx
// ipsoc checked: 2026-05-08
 
import { ArtistPerformancesClient } from "~/components/artists/performances-client";
 
export default function ArtistPerformancesPage() {
  return <ArtistPerformancesClient />;
}
  • Step 2: Create performances client component (move content from existing)

Move content from apps/frontend/components/features/dinner-theater/artist-performances-client.tsx to new location, updating imports.

  • Step 3: Delete old artist-performances directory
rm -rf apps/frontend/app/\[locale\]/\(landing\)/experiences/artist-performances/
  • Step 4: Commit
git add apps/frontend/app/\[locale\]/\(landing\)/artists/performances/
git add apps/frontend/components/artists/performances-client.tsx
git rm -r apps/frontend/app/\[locale\]/\(landing\)/experiences/artist-performances/
git commit -m "feat(landing): move artist-performances to /artists/performances"

Task 3: Convert host-an-event to /artists/join-us

Files:

  • Create: apps/frontend/app/[locale]/(landing)/artists/join-us/page.tsx

  • Create: apps/frontend/components/artists/join-us-client.tsx

  • Delete: apps/frontend/app/[locale]/(landing)/host-an-event/page.mdx

  • Delete: apps/frontend/app/[locale]/(landing)/host-an-event/ directory

  • Step 1: Create join-us page

// apps/frontend/app/[locale]/(landing)/artists/join-us/page.tsx
// ipsoc checked: 2026-05-08
 
import { JoinUsClient } from "~/components/artists/join-us-client";
 
export default function JoinUsPage() {
  return <JoinUsClient />;
}
  • Step 2: Create join-us client component

Convert content from apps/frontend/app/[locale]/(landing)/host-an-event/page.mdx to TSX component.

  • Step 3: Delete host-an-event directory
rm -rf apps/frontend/app/\[locale\]/\(landing\)/host-an-event/
  • Step 4: Commit
git add apps/frontend/app/\[locale\]/\(landing\)/artists/join-us/
git rm -r apps/frontend/app/\[locale\]/\(landing\)/host-an-event/
git commit -m "feat(landing): move host-an-event to /artists/join-us"

Task 4: Create /venues/ segment with venue-rental

Files:

  • Create: apps/frontend/app/[locale]/(landing)/venues/page.tsx

  • Create: apps/frontend/components/venues/venues-client.tsx

  • Delete: apps/frontend/app/[locale]/(landing)/venue-rental/

  • Modify: Navigation components (update links)

  • Step 1: Create venues landing page

// apps/frontend/app/[locale]/(landing)/venues/page.tsx
// ipsoc checked: 2026-05-08
 
import { VenuesClient } from "~/components/venues/venues-client";
 
export default function VenuesPage() {
  return <VenuesClient />;
}
  • Step 2: Move venue-rental content to venues

Move content from apps/frontend/components/features/venue-rental/ to apps/frontend/components/venues/.

  • Step 3: Delete old venue-rental directory
rm -rf apps/frontend/app/\[locale\]/\(landing\)/venue-rental/
  • Step 4: Commit
git add apps/frontend/app/\[locale\]/\(landing\)/venues/
git rm -r apps/frontend/app/\[locale\]/\(landing\)/venue-rental/
git commit -m "feat(landing): move venue-rental to /venues"

Task 5: Update navigation links

Files:

  • Modify: apps/frontend/components/layout/header.tsx

  • Modify: apps/frontend/components/layout/mobile-nav.tsx (if exists)

  • Modify: apps/frontend/lib/data/nav-links.ts

  • Step 1: Update nav-links.ts to reflect new structure

// apps/frontend/lib/data/nav-links.ts
// Update links to point to new segments
  • Step 2: Update header navigation components

Update any hardcoded links to use new /artists/ and /venues/ paths.

  • Step 3: Commit
git add apps/frontend/components/layout/header.tsx
git add apps/frontend/lib/data/nav-links.ts
git commit -m "feat(landing): update nav links for new audience segment URLs"

Task 6: Flatten experiences subdirectory (keep structure, no URL change)

Files:

  • No file moves needed — experiences already at /experiences/* URLs

  • Just ensure homepage and navigation correctly reference them

  • Step 1: Verify homepage links to experiences correctly

Check apps/frontend/components/homepage-client.tsx and update any hardcoded experience paths.

  • Step 2: Commit
git commit -m "style(landing): verify experience links in homepage"

Navigation Structure After

Homepage (Guests)
├── /experiences/dinner-theater
├── /experiences/private-events
├── /experiences/creative-workshop
├── /experiences/our-evening
├── /experiences/french-mentalist
├── /schedule
├── /reviews
├── /about
├── /contact
└── /wall

/artists (NEW)
├── /artists/performances
└── /artists/join-us

/venues (NEW)
└── (venue content)

Notes

  • No content changes — only URL restructuring and navigation updates
  • paraglide message keys needed for new artist/venue segment pages
  • Keep experiences/ URL structure (/experiences/*) — it's a good organization for guests
  • Consider 301 redirects from old URLs to new URLs if any pages are renamed