Add new documents and images to the public directory
All checks were successful
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Successful in 1m32s

- Added essays: qui-sumus-existential-dread.pdf and licencjat.pdf
- Added scripts: loop.pdf
- Added images: DSC_1283.avif, GAK00015.avif, GAK00017.avif, GAK00041.avif, GAK00042.avif, painter.avif, parasitic-god-1.avif, parasitic-god-2.avif, parasitic-god-3.avif, parasitic-god-4.avif, parasitic-god-5.avif, spanish-inq-1.avif, spanish-inq-2.avif, spanish-inq-3.avif, spanish-inq-4.avif, typing-game-1.avif, typing-game-2.avif
This commit is contained in:
2026-08-20 01:39:14 +02:00
parent 97e8260def
commit 9e95d5c544
46 changed files with 1538 additions and 3108 deletions

View File

@@ -1,4 +1,4 @@
import { Skill, Job, Project } from "@/lib/types";
import { Skill, Job, Project, FunZoneItem, Writing, Photo } from "@/lib/types";
export const skills: Skill[] = [
{
@@ -192,7 +192,15 @@ export const projects: Project[] = [
github_url: "https://git.gabrielkaszewski.dev/GKaszewski/thoughts",
visit_url: "https://thoughts.gabrielkaszewski.dev/",
download_url: null,
technologies: ["Rust", "Axum", "Next.js", "TailwindCSS", "ActivityPub", "PostgreSQL", "NATS"],
technologies: [
"Rust",
"Axum",
"Next.js",
"TailwindCSS",
"ActivityPub",
"PostgreSQL",
"NATS",
],
thumbnails: ["/images/thoughts.avif"],
},
{
@@ -232,7 +240,12 @@ export const projects: Project[] = [
visit_url: "https://gamejolt.com/games/spanish-inquisition/425125",
download_url: null,
technologies: ["C#", "Unity"],
thumbnails: [],
thumbnails: [
"/images/spanish-inq-1.avif",
"/images/spanish-inq-2.avif",
"/images/spanish-inq-3.avif",
"/images/spanish-inq-4.avif",
],
},
{
id: 3,
@@ -333,7 +346,13 @@ export const projects: Project[] = [
visit_url: "https://gabrielkaszewski.itch.io/parasitic-god",
download_url: null,
technologies: ["Godot", "C#"],
thumbnails: [],
thumbnails: [
"/images/parasitic-god-1.avif",
"/images/parasitic-god-2.avif",
"/images/parasitic-god-3.avif",
"/images/parasitic-god-4.avif",
"/images/parasitic-god-5.avif",
],
},
{
id: 11,
@@ -466,21 +485,13 @@ export const projects: Project[] = [
github_url: "https://git.gabrielkaszewski.dev/GKaszewski/pocket-chords",
visit_url: "https://chords.gabrielkaszewski.dev/",
download_url: null,
technologies: [
"Rust",
"Axum",
"React",
"TailwindCSS",
"SQLite",
"Docker",
],
technologies: ["Rust", "Axum", "React", "TailwindCSS", "SQLite", "Docker"],
thumbnails: [],
},
{
id: 24,
name: "Movies Diary",
short_description:
"Self-hosted movie logging with ActivityPub federation.",
short_description: "Self-hosted movie logging with ActivityPub federation.",
description:
"A self-hosted, server-side rendered movie logging system with a full REST API. Built entirely in Rust with no JavaScript in the HTML interface — just HTML forms and an RSS feed.\n\n**Highlights:**\n- Immutable, append-only viewing ledger (tracks re-watches)\n- ActivityPub federation — follow remote users, broadcast reviews as federated Notes, shared inbox, paginated outbox\n- Full-text search via SQLite FTS5 or PostgreSQL tsvector + GIN\n- Background poster fetching, TMDB enrichment (cast, crew, genres, box office), image conversion to AVIF/WebP\n- File importer: CSV, TSV, JSON, XLSX from Letterboxd, IMDb, etc.\n- Dual database support: SQLite and PostgreSQL\n- Terminal UI client\n- OpenAPI documentation (Swagger UI + Scalar)\n\n**Technical details:**\n- **Architecture:** Hexagonal (Ports & Adapters) with DDD\n- **Backend:** Rust, Axum, SQLx\n- **Templates:** Askama (SSR)\n- **Event bus:** SQLite/PostgreSQL queue or NATS JetStream\n- **Federation:** ActivityPub (AP)",
category: "Web",
@@ -515,3 +526,94 @@ export const projects: Project[] = [
thumbnails: [],
},
];
export const funZoneItems: FunZoneItem[] = [
{
id: "painter",
name: "Painter",
tagline: "collaborative pixel canvas",
thumbnail: "/images/painter.avif",
play_url: "https://painter.gabrielkaszewski.dev/",
},
{
id: "wordle",
name: "Wordle",
tagline: "guess the word",
thumbnail: null,
play_url: "https://wordle.gabrielkaszewski.dev/",
},
{
id: "parasitic-god",
name: "Parasitic God",
tagline: "cosmic horror game jam entry",
thumbnail: "/images/parasitic-god-1.avif",
play_url: "https://gabrielkaszewski.itch.io/parasitic-god",
},
{
id: "broberry",
name: "Broberry",
tagline: "action-packed game jam entry",
thumbnail: null,
play_url: "https://gabrielkaszewski.itch.io/broberry",
},
{
id: "spanish-inquisition",
name: "Spanish Inquisition",
tagline: "spanish vocabulary game with a twist",
thumbnail: "/images/spanish-inq-1.avif",
play_url: "https://gabrielkaszewski.itch.io/spanish-inquisition",
},
{
id: "typing-game",
name: "Typing game",
tagline: "typing game with a twist",
thumbnail: "/images/typing-game-1.avif",
play_url: "https://gabrielkaszewski.itch.io/typing-game",
},
];
export const writings: Writing[] = [
{
title: "Qui Sumus — Existential Dread",
kind: "essay",
url: "/documents/essays/qui-sumus-existential-dread.pdf",
},
{
title: "Loop",
kind: "script",
url: "/documents/scripts/loop.pdf",
},
];
export const photos: Photo[] = [
{
src: "/images/camera/DSC_1283.avif",
alt: "Sunlight filtering through a pine forest onto a grassy path",
width: 2000,
height: 1335,
},
{
src: "/images/camera/GAK00015.avif",
alt: "Glass dome greenhouse glowing at dusk against a blue sky",
width: 1333,
height: 2000,
},
{
src: "/images/camera/GAK00017.avif",
alt: "Small waterfall cascading over rocks beneath a wooden bridge in a park",
width: 2000,
height: 1333,
},
{
src: "/images/camera/GAK00041.avif",
alt: "Neptune Fountain on Długi Targ with tourists and Gdańsk townhouses",
width: 1333,
height: 2000,
},
{
src: "/images/camera/GAK00042.avif",
alt: "Neptune Fountain statue against the Artus Court and colorful facades in Gdańsk",
width: 1333,
height: 2000,
},
];

3
lib/feature-flags.ts Normal file
View File

@@ -0,0 +1,3 @@
export const featureFlags = {
funZone: process.env.NEXT_PUBLIC_SHOW_FUN_ZONE === "true",
};

View File

@@ -28,9 +28,30 @@ export interface Project {
description: string;
technologies: string[];
thumbnails: string[];
category: 'Web' | 'Mobile' | 'Desktop' | 'Api' | 'Game';
category: "Web" | "Mobile" | "Desktop" | "Api" | "Game";
github_url?: string | null;
visit_url?: string | null;
download_url?: string | null;
commercial?: boolean;
}
}
export interface FunZoneItem {
id: string;
name: string;
tagline: string;
thumbnail: string | null;
play_url: string;
}
export interface Writing {
title: string;
kind: "essay" | "script" | "other" | "novel";
url: string;
}
export interface Photo {
src: string;
alt: string;
width: number;
height: number;
}