page.tsx 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import type { Metadata } from "next";
  2. import { PageHero } from "@/components/marketing/page-hero";
  3. import { PlaceholderNotice } from "@/components/marketing/placeholder-notice";
  4. export const metadata: Metadata = {
  5. title: "Blog",
  6. description: "krypco news and notes — sample layout until real posts ship.",
  7. };
  8. const SAMPLES = [
  9. {
  10. tag: "Sample",
  11. title: "Why hybrid: private speed with public anchors",
  12. date: "Layout preview",
  13. excerpt:
  14. "A short note on the product thesis. This card is a placeholder — not a published article.",
  15. },
  16. {
  17. tag: "Sample",
  18. title: "Following a transaction through both layers",
  19. date: "Layout preview",
  20. excerpt:
  21. "How the portal will show private blocks and public anchors side by side. Content TBD.",
  22. },
  23. ] as const;
  24. export default function BlogPage() {
  25. return (
  26. <>
  27. <PageHero
  28. eyebrow="Blog / News"
  29. title="Notes from the hybrid network"
  30. description="Real posts will appear here. Until then, sample cards show the layout only."
  31. />
  32. <section className="section-pad">
  33. <div className="mx-auto max-w-3xl space-y-6 px-5 lg:px-8">
  34. <PlaceholderNotice>
  35. Sample entries — not live news. A CMS can replace this list later.
  36. </PlaceholderNotice>
  37. <ul className="space-y-4">
  38. {SAMPLES.map((post) => (
  39. <li
  40. key={post.title}
  41. className="rounded-2xl border border-dashed border-border bg-card/80 p-6 sm:p-8"
  42. >
  43. <div className="flex flex-wrap items-center gap-3 text-xs uppercase tracking-[0.12em] text-muted-foreground">
  44. <span className="rounded-full bg-muted px-2.5 py-0.5 text-accent-hover">
  45. {post.tag}
  46. </span>
  47. <span>{post.date}</span>
  48. </div>
  49. <h2 className="font-display mt-3 text-xl font-semibold tracking-tight">
  50. {post.title}
  51. </h2>
  52. <p className="mt-2 text-sm leading-relaxed text-muted-foreground">
  53. {post.excerpt}
  54. </p>
  55. </li>
  56. ))}
  57. </ul>
  58. </div>
  59. </section>
  60. </>
  61. );
  62. }