Compare commits

...

3 Commits

Author SHA1 Message Date
7b2bb55a2b feat: update movie reviews URL to embed version
All checks were successful
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Successful in 1m33s
Co-authored-by: Copilot <copilot@github.com>
2026-06-03 10:31:22 +02:00
6a3d9afd4f refactor: remove K-Tuner and K-QR from K-Suite page
All checks were successful
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Successful in 1m7s
2026-05-17 23:56:02 +02:00
2e276b8864 thoughts
All checks were successful
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Successful in 1m13s
2026-05-17 23:40:35 +02:00
3 changed files with 15 additions and 40 deletions

View File

@@ -29,39 +29,15 @@ 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",
},
{
id: 3,
name: "K-Tuner",
shortDescription: "Instrument tuner",
description:
"Tune guitar, ukulele, and piano with this Frutiger Aero styled PWA.",
url: "https://tuner.gabrielkaszewski.dev/",
githubUrl: "https://github.com/GKaszewski/k-tuner",
icon: "/images/k-tuner.png",
technologies: ["React", "PWA"],
color: "from-emerald-400 to-teal-500",
},
{
id: 4,
name: "K-QR",
shortDescription: "QR code generator",
description:
"High-performance QR generator. Single Rust executable serving clean HTML.",
url: "https://qr.gabrielkaszewski.dev/",
githubUrl: "https://github.com/GKaszewski/k-qr",
icon: "/images/k-qr.png",
technologies: ["Rust", "HTML"],
color: "from-amber-400 to-orange-500",
},
{
id: 5,
name: "K-TV",
@@ -91,15 +67,12 @@ const kSuiteApps: KSuiteApp[] = [
// Connection definitions for the organism
const connections = [
{ from: 0, to: 1 }, // K-Notes -> Thoughts
{ from: 1, to: 2 }, // Thoughts -> K-Tuner
{ from: 2, to: 3 }, // K-Tuner -> K-QR
{ from: 3, to: 4 }, // K-QR -> K-TV
{ from: 4, to: 5 }, // K-TV -> Movies Diary
{ from: 5, to: 0 }, // Movies Diary -> K-Notes
{ from: 0, to: 2 }, // K-Notes -> K-Tuner (cross)
{ from: 1, to: 3 }, // Thoughts -> K-QR (cross)
{ from: 2, to: 4 }, // K-Tuner -> K-TV (cross)
{ from: 5, to: 1 }, // Movies Diary -> Thoughts (federation)
{ from: 1, to: 2 }, // Thoughts -> K-TV
{ from: 2, to: 3 }, // K-TV -> Movies Diary
{ from: 3, to: 0 }, // Movies Diary -> K-Notes
{ from: 0, to: 2 }, // K-Notes -> K-TV (cross)
{ from: 1, to: 3 }, // Thoughts -> Movies Diary (AP)
{ from: 3, to: 1 }, // Movies Diary -> Thoughts (federation)
];
const KSuiteOrganism = () => {

View File

@@ -8,6 +8,8 @@ export const metadata: Metadata = {
const MOVIE_REVIEWS_URL =
"https://movies.gabrielkaszewski.dev/users/5d253151-0f6a-4246-9bc5-cb0b5869731b";
const MOVIE_REVIEWS_EMBED_URL =
"https://movies.gabrielkaszewski.dev/users/5d253151-0f6a-4246-9bc5-cb0b5869731b?embed=true";
const genres = ["Sci-Fi", "Drama", "Family"];
@@ -70,7 +72,7 @@ export default function MovieCornerPage() {
>
<div className="flex-1 overflow-hidden rounded-md flex flex-col">
<iframe
src={MOVIE_REVIEWS_URL}
src={MOVIE_REVIEWS_EMBED_URL}
title="Gabriel's Movie Reviews"
allow=""
loading="lazy"

View File

@@ -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"],
},
{