diff --git a/frontend/src/components/Welcome.tsx b/frontend/src/components/Welcome.tsx
index 1c16729..f21de8e 100644
--- a/frontend/src/components/Welcome.tsx
+++ b/frontend/src/components/Welcome.tsx
@@ -1,6 +1,7 @@
import { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import {
+ ArrowRight,
Code2,
Expand,
Filter,
@@ -64,6 +65,29 @@ export default function Welcome() {
onOpen={open}
/>
+ {/* Open source — Siftlode's code is public; nudge visitors to read it or self-host. The
+ footer keeps a compact link too. */}
+
+
+
+
+
+ {t("welcome.openSource.title")}
+
+ {t("welcome.openSource.body")}
+
+
+
+ {t("welcome.openSource.link")}
+
+
+
+
{/* Features */}
{t("welcome.features.heading")}
diff --git a/frontend/src/i18n/locales/de/welcome.json b/frontend/src/i18n/locales/de/welcome.json
index 19820a1..191ba12 100644
--- a/frontend/src/i18n/locales/de/welcome.json
+++ b/frontend/src/i18n/locales/de/welcome.json
@@ -4,6 +4,11 @@
"subtitle": "Jeder Upload der Kanäle, denen du folgst, in einem aufgeräumten, filterbaren Feed — kein Algorithmus entscheidet, was du siehst, und kein Shorts- oder Livestream-Lärm, außer du willst es.",
"trust": "Selbst gehostet und privat. Melde dich per E-Mail an oder fahre mit Google fort."
},
+ "openSource": {
+ "title": "Kostenlos und quelloffen",
+ "body": "Der Code von Siftlode ist öffentlich — sieh nach, wie es funktioniert, betreibe deine eigene private Instanz oder melde ein Problem.",
+ "link": "Quellcode ansehen"
+ },
"preview": {
"feed": "Der Feed — filtern nach Kanal, Sprache, Thema, Länge und Datum.",
"channels": "Kanal-Verwaltung",
diff --git a/frontend/src/i18n/locales/en/welcome.json b/frontend/src/i18n/locales/en/welcome.json
index a4c3926..9c8f6a9 100644
--- a/frontend/src/i18n/locales/en/welcome.json
+++ b/frontend/src/i18n/locales/en/welcome.json
@@ -4,6 +4,11 @@
"subtitle": "Every upload from the channels you follow in one clean, filterable feed — no algorithm deciding what you see, and no Shorts or livestream noise unless you want it.",
"trust": "Self-hosted and private. Sign in with email, or continue with Google."
},
+ "openSource": {
+ "title": "Free and open source",
+ "body": "Siftlode's code is public — see how it works, run your own private instance, or open an issue.",
+ "link": "View the source"
+ },
"preview": {
"feed": "The feed — filter by channel, language, topic, length and date.",
"channels": "Channel manager",
diff --git a/frontend/src/i18n/locales/hu/welcome.json b/frontend/src/i18n/locales/hu/welcome.json
index dde74d3..216e5dd 100644
--- a/frontend/src/i18n/locales/hu/welcome.json
+++ b/frontend/src/i18n/locales/hu/welcome.json
@@ -4,6 +4,11 @@
"subtitle": "Minden feltöltés a követett csatornáidról egyetlen tiszta, szűrhető hírfolyamban — nincs algoritmus, ami eldönti, mit látsz, és nincs Shorts- vagy élő-zaj, hacsak nem kéred.",
"trust": "Self-hosted és privát. Lépj be e-maillel, vagy folytasd Google-fiókkal."
},
+ "openSource": {
+ "title": "Ingyenes és nyílt forráskódú",
+ "body": "A Siftlode kódja nyilvános — nézd meg, hogyan működik, futtass saját privát példányt, vagy nyiss egy hibajegyet.",
+ "link": "Forráskód megtekintése"
+ },
"preview": {
"feed": "A hírfolyam — szűrés csatorna, nyelv, téma, hossz és dátum szerint.",
"channels": "Csatorna-kezelő",