diff --git a/public/images/Fred3.png b/public/images/Fred3.png
new file mode 100644
index 0000000..f00df7f
Binary files /dev/null and b/public/images/Fred3.png differ
diff --git a/public/images/KnockedBack.png b/public/images/KnockedBack.png
deleted file mode 100644
index c492be8..0000000
Binary files a/public/images/KnockedBack.png and /dev/null differ
diff --git a/public/images/Stalinium.png b/public/images/Stalinium.png
deleted file mode 100644
index ad3dcd2..0000000
Binary files a/public/images/Stalinium.png and /dev/null differ
diff --git a/public/images/portfolio-project1.png b/public/images/portfolio-project1.png
deleted file mode 100644
index f805b67..0000000
Binary files a/public/images/portfolio-project1.png and /dev/null differ
diff --git a/public/images/portfolio-project2.png b/public/images/portfolio-project2.png
deleted file mode 100644
index 0a59a1c..0000000
Binary files a/public/images/portfolio-project2.png and /dev/null differ
diff --git a/public/images/portfolio-project3.png b/public/images/portfolio-project3.png
deleted file mode 100644
index 50c8d18..0000000
Binary files a/public/images/portfolio-project3.png and /dev/null differ
diff --git a/public/images/portfolio1.jpg b/public/images/portfolio1.jpg
deleted file mode 100644
index fc94781..0000000
Binary files a/public/images/portfolio1.jpg and /dev/null differ
diff --git a/public/images/projects/Ailments.png b/public/images/projects/Ailments.png
new file mode 100644
index 0000000..126e710
Binary files /dev/null and b/public/images/projects/Ailments.png differ
diff --git a/public/images/projects/Ascend.png b/public/images/projects/Ascend.png
new file mode 100644
index 0000000..66fb5fb
Binary files /dev/null and b/public/images/projects/Ascend.png differ
diff --git a/public/images/projects/Autoclicker.png b/public/images/projects/Autoclicker.png
new file mode 100644
index 0000000..4451368
Binary files /dev/null and b/public/images/projects/Autoclicker.png differ
diff --git a/public/images/projects/BruteForce.png b/public/images/projects/BruteForce.png
new file mode 100644
index 0000000..625cb43
Binary files /dev/null and b/public/images/projects/BruteForce.png differ
diff --git a/public/images/projects/Discord_bot.png b/public/images/projects/Discord_bot.png
new file mode 100644
index 0000000..86a3efc
Binary files /dev/null and b/public/images/projects/Discord_bot.png differ
diff --git a/public/images/projects/Gambling_API.png b/public/images/projects/Gambling_API.png
new file mode 100644
index 0000000..2897147
Binary files /dev/null and b/public/images/projects/Gambling_API.png differ
diff --git a/public/images/projects/IDPA26_WebShop.png b/public/images/projects/IDPA26_WebShop.png
new file mode 100644
index 0000000..7340889
Binary files /dev/null and b/public/images/projects/IDPA26_WebShop.png differ
diff --git a/public/images/projects/KnockedBack.png b/public/images/projects/KnockedBack.png
new file mode 100644
index 0000000..7edb1b8
Binary files /dev/null and b/public/images/projects/KnockedBack.png differ
diff --git a/public/images/projects/KrisHD_AI.png b/public/images/projects/KrisHD_AI.png
new file mode 100644
index 0000000..bc9c578
Binary files /dev/null and b/public/images/projects/KrisHD_AI.png differ
diff --git a/public/images/projects/MindMotion.png b/public/images/projects/MindMotion.png
new file mode 100644
index 0000000..39eb5bb
Binary files /dev/null and b/public/images/projects/MindMotion.png differ
diff --git a/public/images/projects/Shoppy.png b/public/images/projects/Shoppy.png
new file mode 100644
index 0000000..b886a09
Binary files /dev/null and b/public/images/projects/Shoppy.png differ
diff --git a/public/images/projects/SkillEngine.png b/public/images/projects/SkillEngine.png
new file mode 100644
index 0000000..79dc6f6
Binary files /dev/null and b/public/images/projects/SkillEngine.png differ
diff --git a/public/images/projects/TARS.png b/public/images/projects/TARS.png
new file mode 100644
index 0000000..e8520bf
Binary files /dev/null and b/public/images/projects/TARS.png differ
diff --git a/public/images/projects/WebsitePortfolio2.png b/public/images/projects/WebsitePortfolio2.png
new file mode 100644
index 0000000..f705ffe
Binary files /dev/null and b/public/images/projects/WebsitePortfolio2.png differ
diff --git a/public/images/projects/linux_distro_roguelite_promotion.png b/public/images/projects/linux_distro_roguelite_promotion.png
new file mode 100644
index 0000000..f80e902
Binary files /dev/null and b/public/images/projects/linux_distro_roguelite_promotion.png differ
diff --git a/public/images/projects/linuxdistro-roguelite.png b/public/images/projects/linuxdistro-roguelite.png
new file mode 100644
index 0000000..40bb811
Binary files /dev/null and b/public/images/projects/linuxdistro-roguelite.png differ
diff --git a/src/app/about/page.js b/src/app/about/page.js
index 9aff1c3..805d912 100644
--- a/src/app/about/page.js
+++ b/src/app/about/page.js
@@ -1,27 +1,63 @@
import Link from "next/link";
+import Image from "next/image";
+
export const metadata = {title: "About"};
const timeline = [
- {year: "2018", title: "The first spark", text: "I discovered programming through Scratch, turning small ideas into simple, playable games.", skills: ["Scratch", "Game logic"]},
- {year: "2022", title: "Into the web", text: "I began building websites and learned the foundations of HTML, CSS, and accessible interface design.", skills: ["HTML", "CSS", "JavaScript"]},
- {year: "2022", title: "From screen to hardware", text: "A Raspberry Pi opened the door to Python scripting, Linux, and the fun of connecting software with real hardware.", skills: ["Python", "Linux", "Raspberry Pi"]},
- {year: "2024", title: "Full stack & beyond", text: "I expanded into databases, backend systems, Java, and larger projects—while continuing to sharpen my eye for frontend craft.", skills: ["SQL", "Python", "Java", "JavaScript"]},
+ {
+ year: "2018",
+ title: "The first spark",
+ text: "I discovered programming through Scratch, turning small ideas into simple, playable games.",
+ skills: ["Scratch", "Game logic"]
+ },
+ {
+ year: "2022",
+ title: "Web & hardware",
+ text: "I started building websites and exploring Python and Linux with a Raspberry Pi.",
+ skills: ["HTML & CSS", "JavaScript", "Python", "Linux"]
+ },
+ {
+ year: "2025", title: "Useful tools & web apps",
+ text: "From Autoclicker and this portfolio to AI chat and Discord bots, I began building tools with interfaces, accounts, and backend systems.",
+ skills: ["Python", "Next.js", "Express", "SQLite"],
+ },
+ {
+ year: "2026", title: "From web to mobile",
+ text: "The IDPA Webshop connected a React storefront to a REST API. Shoppy took that work to mobile with barcode scanning and personal shopping recommendations.",
+ skills: ["React", "REST APIs", "React Native", "Expo"],
+ },
+ {
+ year: "2026", title: "Games & gameplay systems",
+ text: "I expanded my Minecraft work with Ascend and companion mods, while building Linux Distro Roguelite, a Unity card game inspired by Linux and programming.",
+ skills: ["Java", "Forge", "Unity", "C#"],
+ },
];
export default function About() {
return (<>
-
-
About me
Always learning.
-
I’m a developer driven by curiosity, thoughtful details, and the satisfying moment when a complex problem finally clicks.
-
+
+
+
About me
Always learning.
+
I’m a developer driven by curiosity and that satisfying moment when a complex
+ problem finally clicks.
I like learning how things work, then making them work better. My projects move between polished interfaces, practical backend systems, and playful experiments.
+
I like learning how things work, then making them work better. My projects move between websites, games, and other experiments.
+ ;
+}
diff --git a/src/app/projects/page.js b/src/app/projects/page.js
index d618b77..3b1c484 100644
--- a/src/app/projects/page.js
+++ b/src/app/projects/page.js
@@ -1,23 +1,15 @@
-import Image from "next/image";
+import ProjectGallery from "./ProjectGallery";
+import {projects} from "./projects";
export const metadata = {title: "Projects"};
-const projects = [
- {title: "Red Lake Stats", description: "An interactive JavaScript and Python tool for calculating damage statistics in the Roblox game The Red Lake.", image: "/images/portfolio-project1.png", link: "https://fretux.ch/trlstats"},
- {title: "SBB History", description: "An interactive journey through the creation of Switzerland’s railway company, featuring an explorable map.", image: "/images/portfolio-project2.png", link: "https://sbb-history.fretux.ch"},
- {title: "Fretux.ch", description: "My first portfolio—gamified to make exploring personal work feel more playful and memorable.", image: "/images/portfolio-project3.png", link: "https://fretux.ch"},
- {title: "KnockedBack", description: "A Minecraft mod that reimagines what happens when a player dies.", image: "/images/KnockedBack.png", link: "https://modrinth.com/mod/knockedback"},
- {title: "Stalinium", description: "A collaborative Minecraft mod adding the fictional Stalinium ore and a new layer of progression.", image: "/images/Stalinium.png", link: "https://modrinth.com/mod/stalinium-mod"},
-];
export default function ProjectsPage() {
return (<>
-
Selected work
Things I’ve made.
-
A mix of useful tools, interactive websites, and game modifications—each built to explore a new idea.
+
Open-source work
Things I’ve made.
+
+
From everyday tools to mods and games, a collection of {projects.length} projects to explore and build on.