2026-01-05 12:35:16 +00:00
export interface BlogPostDetails {
date : string ;
2026-01-28 23:10:36 +01:00
// Format: HH:mm
time : string ;
2026-04-02 15:50:30 +02:00
dateUpdated? : string ;
2026-01-29 16:42:08 +01:00
// Banner image title. If empty, defaults to banner.webp
banner : string ;
2026-02-03 16:38:38 +01:00
bannerAlt : string ;
2026-01-29 16:42:08 +01:00
title : string ;
2026-01-05 12:35:16 +00:00
/ * *
* Description to be used in page ' s metadata .
* /
description : string ;
2026-03-31 12:36:43 +02:00
tags : BlogPostTag [ ] ;
2026-01-05 12:35:16 +00:00
}
2026-01-31 16:35:17 +01:00
export interface BlogPostLink {
key : string ;
post : BlogPostDetails ;
}
2026-03-31 12:36:43 +02:00
export enum BlogPostTag {
2026-03-31 15:43:16 +02:00
NULL = "all" , // placeholder when a 'no tag' is needed. if in doubt, do not use this
2026-03-31 12:56:57 +02:00
ART = "art-stuff" , // ramblings to do with art
DRAWING = "drawing" , // self-explanatory
2026-03-31 16:07:17 +02:00
IMADETHIS = "i-made-this" , // stuff i made
2026-03-31 12:56:57 +02:00
META = "natconf-meta" , // about the website itself
2026-03-31 14:48:38 +02:00
TECH_TIP = "tech-tip" , // tech guides
2026-03-31 12:36:43 +02:00
}
2026-01-31 16:35:17 +01:00
export const posts : BlogPostLink [ ] = [
2026-03-26 20:51:13 +01:00
{
key : "2026/0326" ,
post : {
date : "2026-03-26" ,
time : "20:50" ,
banner : "banner.webp" ,
bannerAlt : "White light blurs on a darker background." ,
title : "Moving On" ,
description : "It's time to switch domains." ,
2026-03-31 12:36:43 +02:00
tags : [
BlogPostTag . META ,
] ,
2026-03-26 20:51:13 +01:00
}
} ,
2026-03-25 22:18:57 +01:00
{
key : "2026/0325" ,
post : {
date : "2026-03-25" ,
time : "22:22" ,
banner : "banner.webp" ,
bannerAlt : "A sunset captured from an Autobahn exit." ,
title : "I made a LIGHTYEARS font" ,
description : "I feel electric and it's only getting brighter!" ,
2026-03-31 12:36:43 +02:00
tags : [
2026-03-31 16:07:17 +02:00
BlogPostTag . IMADETHIS ,
2026-03-31 12:36:43 +02:00
] ,
2026-03-25 22:18:57 +01:00
}
} ,
2026-03-17 17:03:47 +01:00
{
key : "2026/0317" ,
post : {
date : "2026-03-17" ,
time : "17:00" ,
2026-04-02 15:50:30 +02:00
dateUpdated : "2026-03-25" ,
2026-03-17 17:03:47 +01:00
banner : "banner.webp" ,
bannerAlt : "A Microsoft Surface Pro 8 displaying a Blue Screen of Death." ,
title : "How To: Set Up SvelteKit Frontend + PostgreSQL Backend" ,
description : "How to set up a web application with a backend on a remote server without getting error 403." ,
2026-03-31 12:36:43 +02:00
tags : [
BlogPostTag . TECH_TIP ,
] ,
2026-03-17 17:03:47 +01:00
}
} ,
2026-02-14 19:52:00 +01:00
{
key : "2026/0214" ,
post : {
date : "2026-02-14" ,
time : "19:46" ,
banner : "logins.webp" ,
2026-03-31 12:36:43 +02:00
bannerAlt : "A screenshot of a terminal emulator logged onto a remote server displaying log messages. The messages all display different IP addresses unsuccessfully attempting to log in with different usernames. There are over a dozen requests within a single minute on February 14, 2026." ,
2026-02-14 19:52:00 +01:00
title : "SSH Woes" ,
description : "About how I was shocked to learn that my server was open for attacks for well over a year." ,
2026-03-31 12:36:43 +02:00
tags : [
BlogPostTag . META ,
BlogPostTag . TECH_TIP ,
] ,
2026-02-14 19:52:00 +01:00
}
} ,
2026-02-08 17:45:30 +01:00
{
key : "2026/0208" ,
post : {
date : "2026-02-08" ,
time : "17:45" ,
banner : "sadstick.webp" ,
bannerAlt : "A curved stick from a tree with some dry leaves attached. Its form resembles an entity with two legs, a spine, and no arms, leaning over and looking sad." ,
title : "Am I doing too much?" ,
description : "I'm trying to pursue too many hobbies all at once and it's a struggle." ,
2026-03-31 12:36:43 +02:00
tags : [
BlogPostTag . ART ,
] ,
2026-02-08 17:45:30 +01:00
}
} ,
2026-02-05 22:56:53 +01:00
{
key : "2026/0205" ,
post : {
date : "2026-02-05" ,
time : "22:55" ,
2026-04-02 15:50:30 +02:00
dateUpdated : "2026-03-05" ,
2026-02-10 19:01:00 +01:00
banner : "banner.webp" ,
bannerAlt : "A Leuchtturm-branded notebook with a copper-coloured cover. An eraser, a pencil sharpener, and a Faber-Castell pencil are lying on top." ,
2026-02-05 22:56:53 +01:00
title : "Drawing Challenge" ,
description : "Challenging myself to draw something every day for 4 weeks." ,
2026-03-31 12:36:43 +02:00
tags : [
BlogPostTag . ART ,
BlogPostTag . DRAWING ,
2026-03-31 16:10:26 +02:00
BlogPostTag . IMADETHIS ,
2026-03-31 12:36:43 +02:00
] ,
2026-02-05 22:56:53 +01:00
}
} ,
2026-01-31 20:24:26 +01:00
{
key : "2026/0131" ,
post : {
date : "2026-01-31" ,
time : "20:24" ,
banner : "colossus.webp" ,
2026-02-03 16:38:38 +01:00
bannerAlt : "Colossus standing in the National Museum of Computing in Bletchley, UK" ,
2026-01-31 20:24:26 +01:00
title : "Lessons Learned" ,
2026-02-03 16:38:38 +01:00
description : "A small note about how you should always check whether your finished work works as intended." ,
2026-03-31 12:36:43 +02:00
tags : [
BlogPostTag . META ,
] ,
2026-01-31 20:24:26 +01:00
}
} ,
2026-01-31 16:35:17 +01:00
{
key : "2026/0129" ,
post : {
date : "2026-01-29" ,
time : "16:42" ,
banner : "girl.webp" ,
2026-02-03 16:38:38 +01:00
bannerAlt : "A small drawing of an anime-style girl's head." ,
2026-01-31 16:35:17 +01:00
title : "Limitations" ,
description : "Something about how boundaries can foster creativity." ,
2026-03-31 12:36:43 +02:00
tags : [
BlogPostTag . ART ,
BlogPostTag . DRAWING ,
2026-03-31 16:10:26 +02:00
BlogPostTag . IMADETHIS ,
2026-03-31 12:36:43 +02:00
] ,
2026-01-31 16:35:17 +01:00
}
} ,
2026-03-07 14:15:54 +01:00
] ;