Complete monorepo toolchain setup (tasks 1.1-1.7)

- Turborepo + pnpm workspaces with catalog for shared dependency versions
- TypeScript strict config (base + per-package extends)
- Tailwind CSS v4 via @tailwindcss/vite plugin
- ESLint + Prettier shared config
- Planner app scaffolded with React Router 7 (port 3001)
- Journal app scaffolded with React Router 7 (port 3000)
- Both apps build and start successfully via turbo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ullrich Schäfer 2026-03-22 12:12:57 +01:00
parent 48547fdc82
commit 30d40de7cf
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9
28 changed files with 4096 additions and 13 deletions

27
apps/planner/app/root.tsx Normal file
View file

@ -0,0 +1,27 @@
import { Links, Meta, Outlet, Scripts, ScrollRestoration } from "react-router";
import type { LinksFunction } from "react-router";
import stylesheet from "@trails-cool/ui/styles.css?url";
export const links: LinksFunction = () => [{ rel: "stylesheet", href: stylesheet }];
export function Layout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<head>
<meta charSet="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<Meta />
<Links />
</head>
<body className="h-screen w-screen overflow-hidden bg-white">
{children}
<ScrollRestoration />
<Scripts />
</body>
</html>
);
}
export default function App() {
return <Outlet />;
}

View file

@ -0,0 +1,3 @@
import { type RouteConfig, index } from "@react-router/dev/routes";
export default [index("routes/home.tsx")] satisfies RouteConfig;

View file

@ -0,0 +1,19 @@
import type { Route } from "./+types/home";
export function meta({}: Route.MetaArgs) {
return [
{ title: "trails.cool Planner" },
{ name: "description", content: "Collaborative route planning" },
];
}
export default function Home() {
return (
<div className="flex h-full items-center justify-center">
<div className="text-center">
<h1 className="text-4xl font-bold text-gray-900">trails.cool Planner</h1>
<p className="mt-4 text-lg text-gray-600">Collaborative route planning</p>
</div>
</div>
);
}