diff options
| author | schererleander <leander@schererleander.de> | 2025-12-25 23:33:25 +0000 |
|---|---|---|
| committer | schererleander <leander@schererleander.de> | 2025-12-25 23:33:25 +0000 |
| commit | d82fb3b552d20a279efdd9408042183cfa02fb48 (patch) | |
| tree | 4ffe818e591e54da71f7592506c873abf0d9d481 /app/page.tsx | |
| parent | d7edbf05ab0e90eedcb99e4462e3a61793b2eff9 (diff) | |
initial commit
Diffstat (limited to 'app/page.tsx')
| -rw-r--r-- | app/page.tsx | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 0000000..057842d --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,41 @@ + +import { ToolsGrid } from "@/components/tools-grid"; +import { ProjectsGrid } from "@/components/projects-grid"; +import { PostCard } from "@/components/post-card"; +import { compareDesc } from 'date-fns' +import { allPosts } from 'contentlayer/generated' +import MapWrapper from "@/components/map-wrapper"; + +export default function Home() { + const posts = allPosts.sort((a, b) => compareDesc(new Date(a.date), new Date(b.date))) + + return ( + <> + <div className="w-full relative z-0"> + <MapWrapper /> + </div> + + <section className="text-center space-y-2 -mt-8 relative z-10 pointer-events-none mb-12"> + <div className="pointer-events-auto"> + <h2 className="text-2xl font-bold mix-blend-luminosity text-foreground">Hi, I'm Leander.</h2> + <p className="text-muted-foreground/60 max-w-lg mx-auto"> + Passionate about hardware & software, pursuing computer science studies. Currently building 3D-printing projects and exploring homelabing. + </p> + </div> + </section> + + <section className="mt-8 mx-auto w-full"> + <ToolsGrid /> + </section> + <section className="mt-8 mx-auto w-full"> + <ProjectsGrid /> + </section> + + <section className="mt-8 mx-auto w-full"> + {posts.map((post, idx) => ( + <PostCard key={idx} {...post} /> + ))} + </section> + </> + ); +} |
