2025-03-31 23:07:29 +02:00
< script lang = "ts" >
2026-01-23 14:19:20 +01:00
import Content from "$lib/viewport/content.svelte";
2025-04-03 17:31:24 +02:00
import GamedevWebring from "$lib/webrings/gamedev.svelte";
2026-01-21 22:08:09 +01:00
import Gallery, { type GalleryEntry } from "$lib/lists/gallery.svelte";
2025-04-03 10:15:04 +02:00
2026-01-29 19:27:42 +01:00
import { posts as devlogPosts } from "./projects/projectn5/devlog/posts";
import { posts as blogPosts } from "./blog/posts";
2026-02-02 20:09:18 +01:00
import { entries as changelogEntries , type ChangelogEntry } from "./changelog";
2025-07-14 12:12:30 +02:00
2026-01-31 16:45:01 +01:00
let latestDevlogDate = devlogPosts[0].post.date;
let latestBlogDate = blogPosts[0].post.date;
2026-01-05 11:20:34 +00:00
2026-02-02 20:09:18 +01:00
let changelogEntriesTrimmed = changelogEntries.slice(0, 4);
2026-01-05 11:20:34 +00:00
const galleryEntries: GalleryEntry[] = [
{
title: "Project N5 – devlog",
2026-01-21 22:08:09 +01:00
subtitle: `my active Godot game project about finding yourself in an unfamiliar future. < i > latest update: ${ latestDevlogDate } </ i > `,
2026-01-05 11:20:34 +00:00
img: "projects/projectn5/devlog/2025/0523/birds_eye.webp",
imgAlt: "Project N5 screenshot of Laura looking down at two cuboids",
2026-01-23 15:46:08 +01:00
link: "projects/projectn5",
2026-01-05 11:20:34 +00:00
},
{
title: "Projects",
subtitle: "an overview of what I do and have done",
img: "projects/project-mix.webp",
imgAlt: "A collage of multiple projects: the Unity default third-person character and CJ from GTA San Andreas in the top left; purple protagonist from Project N5 holding a massive rocket launcher in the top right; two wizards in the bottom left; a breadboard with a microcontroller and input components in the bottom right",
link: "projects",
},
2026-01-29 19:27:42 +01:00
{
title: "Blog",
subtitle: `A place where I write about random things. < i > latest post: ${ latestBlogDate } </ i > `,
img: "blog/robert.webp",
imgAlt: "View at a tram bridge rising and then curving to the left.",
link: "blog",
},
2026-01-05 11:20:34 +00:00
{
title: "Files",
2026-01-21 22:08:09 +01:00
subtitle: "find things I've put for download on my copyparty instance",
2026-01-05 11:20:34 +00:00
img: "common/hypertext.webp",
imgAlt: "Screenshot of Hypertext Unity level. Crates are strewn across the floor, Waluigi is flying in front of the camera, and text such as 'COME AND TRY OUR ALL-NEW BLENDER' and 'omg! it's the brandenburg er tor!' is displayed",
link: "//files.denizk0461.dev/",
},
];
2025-03-31 23:07:29 +02:00
< / script >
2025-04-04 10:37:25 +02:00
< svelte:head >
< title > denizk0461's website< / title >
2025-12-30 19:03:57 +00:00
< meta name = "description" content = "I'm a developer posting about my gamedev, programming, electronics, and sometimes music projects!" >
2025-04-04 10:37:25 +02:00
< / svelte:head >
2026-02-02 20:09:18 +01:00
{ # snippet changelogEntry ({ entry } : { entry : ChangelogEntry })}
< div class = "changelog-entry" >
< span class = "changelog-entry-timestamp" > { entry . date } , { entry . time } ::</ span >
< p >
{ entry . content }
{ #if entry . link }
< a class = "changelog-entry-link" href = " { entry . link } " > »</ a >
{ /if }
< / p >
< / div >
{ /snippet }
2025-04-18 11:30:21 +02:00
< Content >
< h1 class = "gradient-title" > < i > Moin!< / i > ~ welcome to my website :)< / h1 >
2025-04-03 10:15:04 +02:00
2026-01-21 20:33:40 +01:00
< hr >
2026-01-21 15:21:21 +01:00
2026-02-02 19:16:58 +01:00
< div >
< img class = "me-img pixelated-img" src = "me.webp" alt = "Pixelated mirror selfie of the website creator wearing a green shirt, fitting the website theme. The face is obscured." title = "hi." >
< p > Hi! I'm Deniz (he/him/they). I'm a hobbyist programmer based in 🇩🇪 Northern Germany who does coding, 3D modelling, and sometimes music too. I am also studying to become a secondary school teacher. Welcome to my webpage!< / p >
< p > Here I publish my projects in programming, electronics (Arduino, Raspberry Pi etc.), and gamedev specifically, but I also set up a blog to talk about random things on my mind. Feel free to explore.< / p >
< p > This place is a constant work-in-progress – while I try to keep URLs intact, a lot of stuff is being modified and moved around! If anything's < a href = "/blog/2026/0131" > broken< / a > , please do let me know.< / p >
< / div >
2026-01-21 15:21:21 +01:00
2026-02-02 20:09:18 +01:00
< div class = "changelog-container" >
< h6 class = "changelog-header" > website changelog < span class = "small-supertext" > (new!)< / span > < / h6 >
{ #each changelogEntriesTrimmed as entry }
{ @render changelogEntry ({ entry })}
{ /each }
< / div >
2026-02-02 19:16:58 +01:00
< div class = "webring-container" >
< GamedevWebring / >
< / div >
2026-01-21 15:21:21 +01:00
< Gallery entries = { galleryEntries } / >
2025-04-18 11:30:21 +02:00
< / Content >
2025-04-03 10:15:04 +02:00
< style >
.me-img {
2026-02-02 19:16:58 +01:00
width: 110px;
min-width: 110px;
float: left;
margin-right: 12px;
}
2026-02-02 20:09:18 +01:00
.changelog-container {
padding: 8px 24px;
border: 2px var(--color-highlight) dashed;
}
.changelog-header {
margin-top: 8px;
}
.changelog-entry * {
margin: 0;
}
.changelog-entry {
display: flex;
flex-direction: row;
gap: 8px;
margin: 4px 0;
}
.changelog-entry-timestamp {
font-family: var(--font-mono);
font-size: 0.9rem;
color: var(--color-highlight);
min-width: fit-content;
}
.changelog-entry-link {
font-family: var(--font-mono);
font-size: 1.3rem;
color: var(--color-highlight);
text-decoration: none;
line-height: 1rem;
}
2026-02-02 19:16:58 +01:00
.webring-container {
display: flex;
flex-direction: row;
align-items: center;
2025-04-03 10:15:04 +02:00
}
2025-04-04 19:33:17 +02:00
.gradient-title {
2026-01-21 15:21:21 +01:00
background: linear-gradient(
90deg,
var(--color-highlight) 30%,
var(--color-highlight-alt) 90%
);
2025-04-04 19:33:17 +02:00
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
2025-08-15 20:30:20 +02:00
padding-bottom: 12px;
2025-04-04 19:33:17 +02:00
}
2025-04-03 10:15:04 +02:00
< / style >