diff --git a/src/content/blog/after-the-silence.md b/src/content/blog/after-the-silence.md new file mode 100644 index 0000000..4cd7bb8 --- /dev/null +++ b/src/content/blog/after-the-silence.md @@ -0,0 +1,133 @@ +--- +title: "After the Silence" +description: "Reflections on what remains after a meaningful relationship ends, and how love can transform without disappearing." +pubDate: 2026-03-04 +tags: ["love", "reflection", "healing", "relationships", "personal"] +--- + +When a relationship ends, the world does not become quiet immediately. + +At first there is noise. + +Questions that circle endlessly. +Memories that appear without warning. +Moments where the absence of someone feels louder than their presence ever was. + +But eventually something changes. + +The storm that once lived inside your mind slowly settles. + +And what remains is something different. + +A silence that is not empty - but reflective. + +--- + +## The Quiet After Love + +The silence that follows a meaningful relationship is unlike any other. + +It is not the silence of indifference. +Nor the silence of forgetting. + +It is the quiet that appears when two lives that once moved together begin to move separately. + +Routines shift. +Spaces feel different. +The future you once imagined slowly dissolves into something undefined. + +At first, that silence can feel unsettling. + +But over time it becomes something else. + +A place where reflection becomes possible. + +--- + +## Love Does Not Always Disappear + +One of the more confusing realizations after a relationship ends is that love does not always vanish with it. + +Even when distance becomes necessary, care can remain. + +This can feel contradictory at first. + +We often expect emotional closure to mean the disappearance of feeling. + +But meaningful connections rarely dissolve that neatly. + +Sometimes love simply changes form. + +It moves from something shared into something carried quietly. + +And that does not make it less real. + +--- + +## The Quiet Transformation + +Time has a way of reshaping emotional intensity. + +What once felt overwhelming slowly becomes more understandable. + +Moments that once caused pain begin to look different when viewed from a distance. + +Not because the past changes. + +But because you do. + +Perspective grows. + +The urgency fades. + +And what once felt like chaos becomes something you can hold with calm understanding. + +This transformation rarely happens suddenly. + +It arrives slowly, through reflection, distance, and the quiet work of healing. + +--- + +## Carrying Without Clinging + +There is a difference between remembering someone and remaining attached to them. + +Clinging keeps you in the past. + +Carrying allows you to move forward. + +When you carry something, you acknowledge its importance without letting it control your direction. + +You recognize the place it had in your life. + +You respect the impact it left. + +But you also accept that some chapters belong where they ended. + +In that sense, remembering can become an act of peace rather than longing. + +--- + +## What Remains + +When the emotional storm has passed, something meaningful remains. + +Not the loss. + +Not the confusion. + +But the understanding. + +You understand more about the kind of connection that matters to you. + +You understand more about your own capacity to care deeply. + +And perhaps most importantly, you understand that love itself was never the mistake. + +Even when relationships end, the love that existed still shapes who we become. + +It leaves behind lessons, perspective, and a deeper awareness of what it means to connect with another human being. + +And sometimes, what remains after the silence is not emptiness. + +But growth. diff --git a/src/content/blog/hello-world.md b/src/content/blog/hello-world.md index a0008d0..1cf92c2 100644 --- a/src/content/blog/hello-world.md +++ b/src/content/blog/hello-world.md @@ -1,7 +1,8 @@ ---- +--- title: "Welcome to the Den" -date: 2026-03-01 description: "First proper post. Why I built this site, what it runs on, and what to expect." +pubDate: 2026-03-01 +tags: ["self-hosting", "privacy", "personal-web", "infrastructure"] draft: false --- @@ -11,7 +12,7 @@ So I finally got around to setting up a proper blog. Welcome. I wanted a place to write that wasn't owned by a corporation. No Medium, no Substack, no algorithm deciding who sees what. Just markdown files on my own server, served by nginx from a Docker container I control. -That's the whole point of the den — owning your own space on the internet. +That's the whole point of the den - owning your own space on the internet. ## What It Runs On diff --git a/src/content/blog/love-without-access.md b/src/content/blog/love-without-access.md index c4c6572..6e8c234 100644 --- a/src/content/blog/love-without-access.md +++ b/src/content/blog/love-without-access.md @@ -1,7 +1,8 @@ ---- +--- title: "Love Without Access" -date: 2026-03-01 -description: "A reflection on a first love — what it meant, what it cost, and why distance was the most loving thing left." +description: "A reflection on a first love - what it meant, what it cost, and why distance was the most loving thing left." +pubDate: 2026-03-01 +tags: ["love", "reflection", "healing", "relationships", "personal"] --- *by LATTE* @@ -16,7 +17,7 @@ Power and surrender that were, underneath it all, just different shapes of trust This isn't a story about blame. And it's not a story about anger. -It's a story about something that stayed real… +It's a story about something that stayed real... even after it stopped being reachable. --- @@ -25,7 +26,7 @@ even after it stopped being reachable. We were friends first. -Maybe that's what made it so deep. It didn't explode into existence — it grew. Slowly. Safely. +Maybe that's what made it so deep. It didn't explode into existence - it grew. Slowly. Safely. From gaming together to talking for hours. From talking to tension. From tension to touch. @@ -75,7 +76,7 @@ Silence. "I don't feel it anymore." -And something in me went very quiet — and very loud — at the same time. +And something in me went very quiet - and very loud - at the same time. Because I could still feel myself holding on. And carrying someone who no longer carries back @@ -98,7 +99,7 @@ But no longer together. A body that says yes. Words that say no. -That contradiction doesn't just hurt emotionally — it destabilizes you. +That contradiction doesn't just hurt emotionally - it destabilizes you. Hope becomes a reflex. And every time hope collapses, you fracture a little with it. @@ -199,7 +200,7 @@ That's architecture. ## On Being Replaced -Yes — he found someone new quickly. +Yes - he found someone new quickly. That hurt. @@ -222,7 +223,7 @@ Something ending does not mean it was nothing. ## For You -If you ever read this — +If you ever read this - I want you to know that what we had was real to me. Not experimental. Not temporary. Not a placeholder. @@ -243,7 +244,7 @@ Trying. Failing. Adjusting. Discovering what intimacy meant. Discovering what we meant. -You weren't just someone who entered my life — +You weren't just someone who entered my life - you were part of my becoming. That matters. @@ -262,7 +263,7 @@ I was trying to hold something I didn't yet know how to let go of. But even then, I wasn't against you. -I saw you as someone struggling — not someone malicious. +I saw you as someone struggling - not someone malicious. There were moments when you softened completely with me. Moments where you rested your full weight without guarding yourself. @@ -295,7 +296,7 @@ It changes shape. It becomes quieter. It becomes something I carry instead of something I reach for. -And yes — I'm going to be a little playful about it: +And yes - I'm going to be a little playful about it: You're on my website. Do you get that? @@ -333,4 +334,4 @@ to be worthy of being held. The wolf in me was never meant to become smaller. Only to find the right pack. -— LATTE +- LATTE diff --git a/src/content/config.ts b/src/content/config.ts index a6a1b8e..8ab26a5 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -1,13 +1,14 @@ -import { z, defineCollection } from 'astro:content'; +import { z, defineCollection } from "astro:content"; const blog = defineCollection({ - type: 'content', - schema: z.object({ - title: z.string(), - date: z.coerce.date(), - description: z.string(), - draft: z.boolean().optional().default(false), - }), + type: "content", + schema: z.object({ + title: z.string(), + description: z.string(), + pubDate: z.coerce.date(), + tags: z.array(z.string()).default([]), + draft: z.boolean().optional().default(false), + }), }); export const collections = { blog }; diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro index 554d6a8..8ce849d 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...slug].astro @@ -1,16 +1,43 @@ --- import BaseLayout from "../../layouts/BaseLayout.astro"; -import { getCollection } from "astro:content"; +import { getCollection, type CollectionEntry } from "astro:content"; + +type BlogPost = CollectionEntry<"blog">; export async function getStaticPaths() { const posts = await getCollection("blog", ({ data }) => !data.draft); + return posts.map((post) => ({ params: { slug: post.slug }, - props: { post }, + props: { + post, + relatedPosts: posts + .filter((candidate) => candidate.slug !== post.slug) + .map((candidate) => ({ + post: candidate, + score: candidate.data.tags.filter((tag) => + post.data.tags.includes(tag), + ).length, + })) + .sort((a, b) => { + if (b.score !== a.score) return b.score - a.score; + return ( + b.post.data.pubDate.valueOf() - + a.post.data.pubDate.valueOf() + ); + }) + .filter((candidate) => candidate.score > 0) + .slice(0, 2) + .map((candidate) => candidate.post), + }, })); } -const { post } = Astro.props; +const { post, relatedPosts = [] } = Astro.props as { + post: BlogPost; + relatedPosts: BlogPost[]; +}; + const { Content } = await post.render(); function formatDate(date: Date) { @@ -19,7 +46,7 @@ function formatDate(date: Date) { ---