Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions src/app/(home)/_components/about-contact.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import { ArrowUpRight } from "lucide-react";
import Link from "next/link";
import { links } from "@/lib/shared";

export function AboutContact() {
return (
<>
<section
id="about"
aria-labelledby="about-title"
className="km-section scroll-mt-24"
>
<div className="grid gap-8 md:grid-cols-[0.7fr_1.3fr]">
<div>
<p className="km-eyebrow">About</p>
<h2 id="about-title" className="km-heading">
Built for the next session.
</h2>
</div>
<div className="max-w-2xl">
<p className="text-lg leading-8 text-fd-muted-foreground">
Kimetsu is an open-source project created by{" "}
<span className="font-medium text-fd-foreground">
Rodrigo Córdoba
</span>
. It gives coding agents a local place to keep project decisions,
conventions, and fixes, so useful knowledge carries across
sessions.
</p>
<p className="mt-4 leading-7 text-fd-muted-foreground">
Built in Rust and backed by SQLite, Kimetsu works alongside the
tools you already use. The source, documentation, and benchmarks
are public, so you can inspect how it works and make it your own.
</p>
<div className="mt-6 flex flex-wrap gap-x-6 gap-y-3">
<a href={links.github} className="km-text-link">
Explore the source →
</a>
<Link href="/docs" className="km-text-link">
Read the documentation →
</Link>
</div>
</div>
</div>
</section>
<section
id="contact"
aria-labelledby="contact-title"
className="km-section scroll-mt-24"
>
<div className="grid items-center gap-8 rounded-2xl border border-fd-border bg-fd-card/40 p-6 sm:p-10 lg:grid-cols-[1fr_auto]">
<div>
<p className="km-eyebrow">Contact</p>
<h2 id="contact-title" className="km-heading">
Let’s talk about Kimetsu.
</h2>
<p className="mt-4 max-w-xl leading-7 text-fd-muted-foreground">
Have a question, an idea, or something you’d like to build
together? Get in touch with Rodrigo on LinkedIn.
</p>
</div>
<a
href={links.linkedin}
target="_blank"
rel="noopener noreferrer"
aria-label="Connect on LinkedIn with Rodrigo Córdoba (opens in a new tab)"
className="km-button-primary justify-self-start"
>
Connect on LinkedIn
<ArrowUpRight className="size-4 shrink-0" aria-hidden />
</a>
</div>
</section>
</>
);
}
8 changes: 8 additions & 0 deletions src/app/(home)/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { ArrowRight, Database, GitBranch, Lock, Terminal } from "lucide-react";
import Link from "next/link";
import { links } from "@/lib/shared";
import { AboutContact } from "./_components/about-contact";
import { ExploreSection } from "./_components/explore-section";
import { BrainSharing } from "./_components/home-visuals";
import { ProjectsSection } from "./_components/projects-section";
Expand Down Expand Up @@ -279,6 +280,7 @@ export default function HomePage() {
</div>
</section>
<ProjectsSection />
<AboutContact />
<footer className="mx-auto flex max-w-6xl flex-col justify-between gap-5 px-6 py-10 text-sm sm:flex-row">
<p className="text-fd-muted-foreground">
<span className="font-mono font-semibold text-fd-foreground">
Expand All @@ -287,6 +289,12 @@ export default function HomePage() {
· Knowledge that carries forward.
</p>
<nav aria-label="Footer" className="flex flex-wrap gap-5">
<a href="#about" className="km-text-link">
About
</a>
<a href="#contact" className="km-text-link">
Contact
</a>
<a href={links.github} className="km-text-link">
GitHub
</a>
Expand Down
7 changes: 4 additions & 3 deletions src/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type { Metadata } from "next";
import { IBM_Plex_Sans, JetBrains_Mono } from "next/font/google";
import { Provider } from "@/components/provider";
import { appName } from "@/lib/shared";
import "./global.css";

const sans = IBM_Plex_Sans({
Expand All @@ -18,7 +19,7 @@ const mono = JetBrains_Mono({
export const metadata: Metadata = {
metadataBase: new URL("https://kimetsu.dev"),
title: {
default: "Kimetsu — proactive memory for coding agents",
default: appName,
template: "%s | kimetsu.dev",
},
description:
Expand All @@ -27,8 +28,8 @@ export const metadata: Metadata = {
openGraph: {
type: "website",
url: "/",
siteName: "kimetsu.dev",
title: "Kimetsu — proactive memory for coding agents",
siteName: appName,
title: appName,
description:
"Carry project decisions, conventions, and fixes across coding sessions. Local memory, one Rust binary, and benchmarks you can inspect.",
},
Expand Down
8 changes: 8 additions & 0 deletions src/lib/layout.shared.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,14 @@ export function baseOptions(): BaseLayoutProps {
url: "/projects",
active: "nested-url",
},
{
text: "About",
url: "/#about",
},
{
text: "Contact",
url: "/#contact",
},
],
};
}
1 change: 1 addition & 0 deletions src/lib/shared.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export const gitConfig = {

// External project links.
export const links = {
linkedin: "https://www.linkedin.com/in/rodrigo-cordoba/",
github: "https://github.com/RodCor/kimetsu",
siteGithub: "https://github.com/RodCor/kimetsu.dev",
sidequest: "https://rodcor.github.io/sidequest-commons/",
Expand Down
Loading