diff --git a/app/(app)/dashboard/page.tsx b/app/(app)/dashboard/page.tsx new file mode 100644 index 0000000..62f46e3 --- /dev/null +++ b/app/(app)/dashboard/page.tsx @@ -0,0 +1,12 @@ +export default function DashboardPage() { + return ( + + + Dashboard + + Project management area. + + + + ); +} diff --git a/app/(marketing)/docs/page.tsx b/app/(marketing)/docs/page.tsx new file mode 100644 index 0000000..5d8dd7a --- /dev/null +++ b/app/(marketing)/docs/page.tsx @@ -0,0 +1,12 @@ +export default function DocsPage() { + return ( + + + Docs + + Documentation. + + + + ); +} diff --git a/app/(marketing)/landing/page.tsx b/app/(marketing)/landing/page.tsx new file mode 100644 index 0000000..db4f685 --- /dev/null +++ b/app/(marketing)/landing/page.tsx @@ -0,0 +1,12 @@ +export default function LandingPage() { + return ( + + + Draftly + + Marketing landing page. + + + + ); +} diff --git a/app/page.tsx b/app/page.tsx index 99e95bd..399c194 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -8,5 +8,5 @@ export default async function Home() { redirect("/editor"); } - redirect("/sign-in"); + redirect("/landing"); } diff --git a/context/progress-tracker.md b/context/progress-tracker.md index 46a3b20..d38f095 100644 --- a/context/progress-tracker.md +++ b/context/progress-tracker.md @@ -416,6 +416,18 @@ Update this file whenever the current phase, active feature, or implementation s - Updated `app/editor/[projectId]/page.tsx`: - Passes project `isOwner` into workspace shell for autosave coordination. +- Added three route shells (structure only, no feature logic): + - `app/(app)/dashboard/page.tsx` -> `/dashboard`: authenticated landing, placeholder for the + future project management area. + - `app/(marketing)/landing/page.tsx` -> `/landing`: public marketing landing page. + - `app/(marketing)/docs/page.tsx` -> `/docs`: public (non-private) docs page. + - All three are server components with placeholder markup only. No auth checks, no route + protection, and no navigation wiring were added; `app/page.tsx` still redirects signed-in + users to `/editor` and everyone else to `/sign-in`. + - Route groups `(app)` and `(marketing)` carry no layout files yet, so they do not affect URLs. + - Validation checks: `pnpm typecheck` and `pnpm lint` passed. + + ## Next Up - Select and implement the next available feature spec unit after `22-design-agent-api.md`. diff --git a/proxy.ts b/proxy.ts index deb752e..c474238 100644 --- a/proxy.ts +++ b/proxy.ts @@ -15,7 +15,16 @@ function getRoutePath(envValue: string | undefined, fallback: string) { const signInPath = getRoutePath(process.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL, "/sign-in"); const signUpPath = getRoutePath(process.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL, "/sign-up"); -const isPublicRoute = createRouteMatcher([signInPath, `${signInPath}(.*)`, signUpPath, `${signUpPath}(.*)`]); +const isPublicRoute = createRouteMatcher([ + "/", + signInPath, + `${signInPath}(.*)`, + signUpPath, + `${signUpPath}(.*)`, + "/landing", + "/docs", + "/docs(.*)", +]); export default clerkMiddleware( async (auth, req) => {
+ Project management area. +
+ Documentation. +
+ Marketing landing page. +