diff --git a/WSIST/WSIST.Web/Components/App.razor b/WSIST/WSIST.Web/Components/App.razor
index 209c3c8..fe38339 100644
--- a/WSIST/WSIST.Web/Components/App.razor
+++ b/WSIST/WSIST.Web/Components/App.razor
@@ -6,6 +6,10 @@
+ @* Critical above-fold CSS: paint the app background before any stylesheet or font loads. *@
+
diff --git a/WSIST/WSIST.Web/Components/Pages/Login.razor b/WSIST/WSIST.Web/Components/Pages/Login.razor
index c0a6815..8286713 100644
--- a/WSIST/WSIST.Web/Components/Pages/Login.razor
+++ b/WSIST/WSIST.Web/Components/Pages/Login.razor
@@ -329,7 +329,7 @@
@Localizer["Landing_Feat5Desc"]
-
@Localizer["Landing_WsistSays"] @Localizer["Landing_Soon"]
+
@Localizer["Landing_Feat6Title"]
@Localizer["Landing_Feat6Desc"]
@@ -369,6 +369,7 @@
@Localizer["Legal_Privacy"]
@Localizer["Legal_Terms"]
+ hello@wsist.ch
@Localizer["Landing_FooterMade"]
diff --git a/WSIST/WSIST.Web/Program.cs b/WSIST/WSIST.Web/Program.cs
index 1f16d22..8336289 100644
--- a/WSIST/WSIST.Web/Program.cs
+++ b/WSIST/WSIST.Web/Program.cs
@@ -99,12 +99,12 @@
// wsist.ch — marketing/landing site
if (host == "wsist.ch" || host == "www.wsist.ch")
{
- // Rewrite root to /login-page internally so the landing page renders
- // at wsist.ch/ without showing /login-page in the browser URL bar.
+ // Redirect root to /login-page explicitly. A server-side rewrite would
+ // leave the browser URL at "/", where the Blazor client router matches
+ // Home.razor and issues its own client-side redirect anyway.
if (path == "/")
{
- context.Request.Path = "/login-page";
- await next();
+ context.Response.Redirect("https://wsist.ch/login-page", permanent: false);
return;
}
// Allow OAuth flow, legal pages, and the login-page route through.
diff --git a/WSIST/WSIST.Web/Resources/SharedResource.de.resx b/WSIST/WSIST.Web/Resources/SharedResource.de.resx
index be9aabd..e2174c9 100644
--- a/WSIST/WSIST.Web/Resources/SharedResource.de.resx
+++ b/WSIST/WSIST.Web/Resources/SharedResource.de.resx
@@ -228,7 +228,7 @@
Fünf Fächer, drei Prüfungen nächste Woche, ein freier Abend. WSIST bewertet jede anstehende Prüfung — Dringlichkeit, Umfang, wie gut du sie verstehst, wie deine Noten stehen — und sagt dir genau, was heute Abend dran ist.
Punktzahl ansehen
Kostenlos
- · keine Werbung · deine Prüfungen bleiben deine
+ · keine Werbung · wir verwenden nur deinen Namen und deine E-Mail · deine Prüfungen bleiben deine
Heutige Wahl
Weil:
du verstehst es kaum, die Prüfung hat sehr viel Stoff, sie ist in 2 Tagen.
@@ -246,7 +246,7 @@
Je weniger es sitzt, desto weiter steigt sie.
sehr hoch +2 → sehr niedrig +12
Notendruck
- Fächer, in denen dein Schnitt abrutscht, bekommen einen Schub.
+ Fächer, in denen dein Schnitt abrutscht, bekommen einen Schub. Auf der Schweizer Notenskala von 1–6, wobei 4 die Bestehensgrenze ist.
Demo ohne Anmeldung
Lass den
echten
@@ -296,15 +296,14 @@
Nichts Neues zu merken. Dein Schulkonto funktioniert problemlos.
Privat von Haus aus
Deine Prüfungen und Noten sind nur für dich sichtbar, und du kannst sie jederzeit löschen. Keine Werbung, niemals.
- „WSIST sagt“
- Bald
Tim · Informatik-Lehrling · Zürich
- Ein tägliches Lern-Briefing auf Schweizerdeutsch, dazu eine Android-App. Entsteht zwischen den Prüfungswochen.
+ Daten jederzeit exportieren
+ Lade alle deine Prüfungen und Noten als CSV oder JSON herunter, wann immer du möchtest. Deine Daten bleiben deine.
Entstanden zwischen Lehrlingsschichten und Prüfungswochen — von einem Schüler, der
wollte, dass es existiert.
Deine nächste Prüfung kommt
so oder so.
- Kostenlos · läuft in jedem Browser
+ Kostenlos · läuft in jedem Browser · nur Name und E-Mail werden verwendet
Erstellt in Zürich · © 2026 Tim Hug
diff --git a/WSIST/WSIST.Web/Resources/SharedResource.resx b/WSIST/WSIST.Web/Resources/SharedResource.resx
index 2ce9c1c..8c77922 100644
--- a/WSIST/WSIST.Web/Resources/SharedResource.resx
+++ b/WSIST/WSIST.Web/Resources/SharedResource.resx
@@ -228,7 +228,7 @@
Five subjects, three tests next week, one free evening. WSIST scores every upcoming test — urgency, volume, how well you get it, where your grades stand — and tells you exactly where tonight goes.
See the score
Free
- · no ads · your tests stay yours
+ · no ads · we only use your name and email · your tests stay yours
Tonight's pick
Because:
you have low understanding, the test has very high volume, it's in 2 days.
@@ -246,7 +246,7 @@
The less it clicks, the higher it climbs.
very high +2 → very low +12
Grade pull
- Subjects where your average slips get a push.
+ Subjects where your average slips get a push. On the Swiss 1–6 scale, where 4 is passing.
No-signup demo
Run the
real
@@ -296,15 +296,14 @@
Nothing new to remember. Your school account works fine.
Private by default
Your tests and grades are visible to you alone, and you can delete them anytime. No ads, ever.
- “WSIST says”
- Soon
Tim · Computer Science Apprentice · Zürich
- A daily study briefing in Swiss German, plus an Android app. In the works between exam weeks.
+ Export your data anytime
+ Download all your tests and grades as CSV or JSON whenever you want. Your data stays yours.
Built between apprenticeship shifts and exam weeks — by a student who
needed it to exist.
Your next test is coming
either way.
- Free · works in any browser
+ Free · works in any browser · only your name and email used
Made in Zürich · © 2026 Tim Hug
diff --git a/WSIST/WSIST.Web/wwwroot/landing.css b/WSIST/WSIST.Web/wwwroot/landing.css
index 5450062..76e0927 100644
--- a/WSIST/WSIST.Web/wwwroot/landing.css
+++ b/WSIST/WSIST.Web/wwwroot/landing.css
@@ -785,17 +785,6 @@ html{
margin-bottom:8px;
}
.landing .feat p{color:var(--mist);font-size:.94rem;max-width:42ch}
-.landing .soon{
- font-family:var(--mono);
- font-size:.58rem;
- font-weight:600;
- letter-spacing:.18em;
- padding:4px 9px;
- border-radius:99px;
- border:1px solid var(--mint-soft);
- background:var(--mint-soft);
- color:var(--mint);
-}
/* ---------- manifesto ---------- */