diff --git a/src/content/badges/badges.yml b/src/content/badges/badges.yml
new file mode 100644
index 0000000..4e50cfe
--- /dev/null
+++ b/src/content/badges/badges.yml
@@ -0,0 +1,62 @@
+- path: /88x31.gif
+ alt: CLI prompt displaying 'reidlab'
+ title: my button! feel free to use or hotlink
+ href: /
+- path: ./img/blinchik.gif
+ alt: blinchik
+ title: best site on the internet!
+ href: https://yugoslavia.best
+- path: ./img/poweredbybob.gif
+ alt: powered by bob
+- path: ./img/miku.gif
+ alt: this site is miku approved
+- path: ./img/paws.gif
+ alt: made with my own two paws
+- path: ./img/nixos.png
+ alt: powered by nixos
+ title: free me from this prison
+ href: https://nixos.org
+- path: ./img/notitg.png
+ alt: notitg
+ title: play notitg!
+ href: https://noti.tg
+- path: ./img/kriswheretfarewe.png
+ alt: kris where tf are we
+- path: ./img/showmeyourheart.gif
+ alt: final fantasy geometry dash
+ title: ▼▼ ▼▼ » ▲▲▲▲ ▲▲▲▲ ‹ ▼▼ ▼▼ › ▲▲▲ ▲▲▲
+ href: https://gdbrowser.com/76767195
+- path: ./img/acab.gif
+ alt: all cops are bastards
+- path: ./img/w3cbad.gif
+ alt: w3c approved bad html markup
+- path: ./img/internetarchive.gif
+ alt: internet archive
+ href: https://archive.org
+- path: ./img/animeisgay.gif
+ alt: anime is gay as hell but i approve
+- path: ./img/halflife.gif
+ alt: half life
+ title: gorgon freeman....
+- path: ./img/vscode.png
+ alt: made with with vscode
+ href: https://code.visualstudio.com/
+- path: ./img/oat100.gif
+ alt: i got 100% on.zone
+ href: https://oat.zone
+- path: ./img/oat.gif
+ alt: oat.zone
+ title: cool person!
+ href: https://oat.zone
+- path: ./img/tidalwave.gif
+ alt: tidal wave geometry dash
+ title: <<>>>>>>WAVE>>>
+ href: https://gdbrowser.com/86407629
+- path: ./img/singasongaboutlife.gif
+ alt: sing a song about life
+ title: sing a song about life
+ href: https://vyletpony.com/music
+- path: ./img/slugcat.png
+ alt: slug cat
+ title: Slug ca
+ href: https://rainworldgame.com/
\ No newline at end of file
diff --git a/src/assets/badges/acab.gif b/src/content/badges/img/acab.gif
similarity index 100%
rename from src/assets/badges/acab.gif
rename to src/content/badges/img/acab.gif
diff --git a/src/assets/badges/animeisgay.gif b/src/content/badges/img/animeisgay.gif
similarity index 100%
rename from src/assets/badges/animeisgay.gif
rename to src/content/badges/img/animeisgay.gif
diff --git a/src/assets/badges/blinchik.gif b/src/content/badges/img/blinchik.gif
similarity index 100%
rename from src/assets/badges/blinchik.gif
rename to src/content/badges/img/blinchik.gif
diff --git a/src/assets/badges/halflife.gif b/src/content/badges/img/halflife.gif
similarity index 100%
rename from src/assets/badges/halflife.gif
rename to src/content/badges/img/halflife.gif
diff --git a/src/assets/badges/internetarchive.gif b/src/content/badges/img/internetarchive.gif
similarity index 100%
rename from src/assets/badges/internetarchive.gif
rename to src/content/badges/img/internetarchive.gif
diff --git a/src/assets/badges/kriswheretfarewe.png b/src/content/badges/img/kriswheretfarewe.png
similarity index 100%
rename from src/assets/badges/kriswheretfarewe.png
rename to src/content/badges/img/kriswheretfarewe.png
diff --git a/src/assets/badges/miku.gif b/src/content/badges/img/miku.gif
similarity index 100%
rename from src/assets/badges/miku.gif
rename to src/content/badges/img/miku.gif
diff --git a/src/assets/badges/nixos.png b/src/content/badges/img/nixos.png
similarity index 100%
rename from src/assets/badges/nixos.png
rename to src/content/badges/img/nixos.png
diff --git a/src/assets/badges/notitg.png b/src/content/badges/img/notitg.png
similarity index 100%
rename from src/assets/badges/notitg.png
rename to src/content/badges/img/notitg.png
diff --git a/src/assets/badges/oat.gif b/src/content/badges/img/oat.gif
similarity index 100%
rename from src/assets/badges/oat.gif
rename to src/content/badges/img/oat.gif
diff --git a/src/assets/badges/oat100.gif b/src/content/badges/img/oat100.gif
similarity index 100%
rename from src/assets/badges/oat100.gif
rename to src/content/badges/img/oat100.gif
diff --git a/src/assets/badges/paws.gif b/src/content/badges/img/paws.gif
similarity index 100%
rename from src/assets/badges/paws.gif
rename to src/content/badges/img/paws.gif
diff --git a/src/assets/badges/poweredbybob.gif b/src/content/badges/img/poweredbybob.gif
similarity index 100%
rename from src/assets/badges/poweredbybob.gif
rename to src/content/badges/img/poweredbybob.gif
diff --git a/src/assets/badges/showmeyourheart.gif b/src/content/badges/img/showmeyourheart.gif
similarity index 100%
rename from src/assets/badges/showmeyourheart.gif
rename to src/content/badges/img/showmeyourheart.gif
diff --git a/src/assets/badges/singasongaboutlife.gif b/src/content/badges/img/singasongaboutlife.gif
similarity index 100%
rename from src/assets/badges/singasongaboutlife.gif
rename to src/content/badges/img/singasongaboutlife.gif
diff --git a/src/assets/badges/slugcat.png b/src/content/badges/img/slugcat.png
similarity index 100%
rename from src/assets/badges/slugcat.png
rename to src/content/badges/img/slugcat.png
diff --git a/src/assets/badges/tidalwave.gif b/src/content/badges/img/tidalwave.gif
similarity index 100%
rename from src/assets/badges/tidalwave.gif
rename to src/content/badges/img/tidalwave.gif
diff --git a/src/assets/badges/vscode.png b/src/content/badges/img/vscode.png
similarity index 100%
rename from src/assets/badges/vscode.png
rename to src/content/badges/img/vscode.png
diff --git a/src/assets/badges/w3cbad.gif b/src/content/badges/img/w3cbad.gif
similarity index 100%
rename from src/assets/badges/w3cbad.gif
rename to src/content/badges/img/w3cbad.gif
diff --git a/src/content/config.ts b/src/content/config.ts
new file mode 100644
index 0000000..e03e758
--- /dev/null
+++ b/src/content/config.ts
@@ -0,0 +1,30 @@
+import { z, defineCollection } from "astro:content";
+
+// some of these schemas are a bit Weird but,
+// i find it easier to have it in one array instead of several files
+
+const projectsCollection = defineCollection({
+ type: "data",
+ schema: z.array(z.object({
+ name: z.string(),
+ description: z.string(),
+ date: z.date(),
+ dateVisual: z.string().optional(),
+ links: z.string().array()
+ }))
+});
+
+const badgesCollection = defineCollection({
+ type: "data",
+ schema: ({ image }) => z.array(z.object({
+ path: image().or(z.string()),
+ alt: z.string(),
+ href: z.string().optional(),
+ title: z.string().optional()
+ }))
+});
+
+export const collections = {
+ projects: projectsCollection,
+ badges: badgesCollection
+};
\ No newline at end of file
diff --git a/src/content/projects/projects.yml b/src/content/projects/projects.yml
new file mode 100644
index 0000000..d0dc8b9
--- /dev/null
+++ b/src/content/projects/projects.yml
@@ -0,0 +1,11 @@
+- name: "lastfmpris"
+ description: "a rust application to scrobble your currently playing song on last.fm with mpris"
+ date: 2024-08-22
+ links:
+ - "https://git.reidlab.pink/reidlab/lastfmpris"
+- name: reidlab.pink
+ description: this website!
+ date: 2024-07-04
+ links:
+ - https://reidlab.pink
+ - https://git.reidlab.pink/reidlab/website
\ No newline at end of file
diff --git a/src/env.d.ts b/src/env.d.ts
index 8c34fb4..91ade3c 100644
--- a/src/env.d.ts
+++ b/src/env.d.ts
@@ -1 +1,5 @@
+// this file is automatically generated. shut up eslint
+/* eslint-disable @typescript-eslint/triple-slash-reference */
+
+///
///
\ No newline at end of file
diff --git a/src/pages/projects.astro b/src/pages/projects.astro
index 23735d1..ae92612 100644
--- a/src/pages/projects.astro
+++ b/src/pages/projects.astro
@@ -2,7 +2,8 @@
import Layout from "../layouts/Layout.astro";
import Card from "../components/Card.astro";
-/* funny import/export conflict if we don't do this :( */
+// funny import/export conflict if we don't do this :(
+// unfortunate...
import ProjectsList from "../components/Projects.astro";
---
@@ -10,26 +11,6 @@ import ProjectsList from "../components/Projects.astro";
unfortunately, at the moment, i don't have too much interesting things for you to see. eventually when i get my shit together, you'll see more and more things appear on here
as always, my socials and contacts are on the left or top side of the screen for you to access if you wanna poke around in my git repositories