Files
Marco 9e5532be63 Add shop, cart, versand pages and Impulse & Tipps detail page
- New /shop overview, /cart (real cart state via useSyncExternalStore),
  /versand (shipping policy page with TOC) and /newsletter detail page
- Cart: quantity/removal, order summary, related-products cross-sell
  with randomized picks, VersandModal quick-reference instead of
  navigating away, MwSt. disclosure next to unit prices
- Add-to-cart UX: inline success feedback (green state) plus a
  fly-to-navbar-cart-icon animation (CartFlyProvider) with a delayed
  badge count-up; AddToCartButton no longer navigates straight to /cart
- Shared lib/products.ts catalog and lib/shipping.ts constants (cost,
  free-shipping threshold, handling/transit days) so cart, trust badges
  and the versand page can never drift apart
- Fix Navbar smooth-scroll easing (ease-out instead of ease-in-out, no
  more perceived start delay); compress newsletter modal photo
  2.4MB -> 85KB to fix first-open jank
2026-07-19 14:42:22 +00:00

50 lines
1.2 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata } from "next";
import { Hero } from "./components/Hero";
import { Divider } from "./components/Divider";
import { Tools } from "./components/Tools";
import { ProductSpotlight } from "./components/ProductSpotlight";
import { Blog } from "./components/Blog";
import { About } from "./components/About";
import { Newsletter } from "./components/Newsletter";
import { Footer } from "./components/Footer";
const title = "einfach produktiv. Produktivität darf sich leicht anfühlen";
const description =
"Werkzeuge, Impulse und die 7-Tage-Challenge für Menschen mit Familie, Verantwortung und wenig Zeit. Mehr Klarheit und Fokus im Alltag einfach produktiv.";
export const metadata: Metadata = {
title,
description,
alternates: {
canonical: "/",
},
openGraph: {
title,
description,
url: "/",
images: ["/hero.png"],
},
twitter: {
title,
description,
images: ["/hero.png"],
},
};
export default function Home() {
return (
<>
<main className="flex flex-col flex-1">
<Hero />
<Divider />
<Tools />
<ProductSpotlight />
<Blog />
<About />
<Newsletter />
</main>
<Footer />
</>
);
}