From 2e276b886418f472f7233a7bb2f8e1eb420163f9 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Sun, 17 May 2026 23:40:35 +0200 Subject: [PATCH] thoughts --- app/k-suite/page.tsx | 6 +++--- lib/data.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/k-suite/page.tsx b/app/k-suite/page.tsx index f8c2b88..c407948 100644 --- a/app/k-suite/page.tsx +++ b/app/k-suite/page.tsx @@ -29,13 +29,13 @@ const kSuiteApps: KSuiteApp[] = [ { id: 2, name: "Thoughts", - shortDescription: "Microblogging platform", + shortDescription: "Federated microblogging platform", description: - "Nostalgic social platform with Frutiger Aero style. 128-char posts, custom CSS profiles.", + "Nostalgic social platform with Frutiger Aero style. 128-char posts, custom CSS profiles, and full ActivityPub federation — interoperable with Mastodon, Misskey, and Movies Diary.", url: "https://thoughts.gabrielkaszewski.dev/", githubUrl: "https://git.gabrielkaszewski.dev/GKaszewski/thoughts", icon: "/images/thoughts.avif", - technologies: ["Rust", "Next.js", "Axum"], + technologies: ["Rust", "Next.js", "Axum", "ActivityPub", "PostgreSQL", "NATS"], color: "from-cyan-400 to-blue-500", }, { diff --git a/lib/data.ts b/lib/data.ts index 2bc84d4..789d847 100644 --- a/lib/data.ts +++ b/lib/data.ts @@ -185,14 +185,14 @@ export const projects: Project[] = [ id: 6, name: "Thoughts", short_description: - "Nostalgic microblogging platform with a Frutiger Aero aesthetic.", + "Federated microblogging platform with a Frutiger Aero aesthetic.", description: - "Thoughts is a microblogging social website straight out of the 00s, featuring a distinctive Frutiger Aero style. Users can post short text-based thoughts (up to 128 characters), customize their entire profile page with their own CSS, and follow others in a purely chronological, algorithm-free environment. It's a return to the 'old times' of the web, focusing on genuine interaction and user expression.\n\n**Technical details:**\n- **Backend:** Rust\n- **Frontend:** Next.js", + "Thoughts is a fully federated microblogging platform built on ActivityPub, compatible with Mastodon, Misskey, Pleroma, and Movies Diary. It features a distinctive Frutiger Aero style straight out of the 00s.\n\nUsers can post short thoughts (up to 128 characters), reply, boost, and like. Profiles are fully customizable with user-supplied CSS. The feed is purely chronological — no algorithms.\n\n**Federation:**\n- WebFinger, NodeInfo, shared inbox, paginated outbox, and actor profile sync\n- Remote actor discovery by `@user@instance` handle\n- Follow/unfollow remote actors with proper `Accept`/`Follow` delivery\n- Per-domain and per-actor moderation with `Block` activity delivery\n\n**Technical details:**\n- **Architecture:** Hexagonal (Ports & Adapters)\n- **Backend:** Rust, Axum, SQLx\n- **Frontend:** Next.js, TailwindCSS\n- **Database:** PostgreSQL (full-text search via trigram indexes)\n- **Event bus:** NATS JetStream (async AP delivery and notifications)\n- **Auth:** JWT + API key\n- **Docs:** OpenAPI (Swagger UI + Scalar)", category: "Web", github_url: "https://git.gabrielkaszewski.dev/GKaszewski/thoughts", visit_url: "https://thoughts.gabrielkaszewski.dev/", download_url: null, - technologies: ["Rust", "Next.js", "TailwindCSS", "Axum"], + technologies: ["Rust", "Axum", "Next.js", "TailwindCSS", "ActivityPub", "PostgreSQL", "NATS"], thumbnails: ["/images/thoughts.avif"], }, {