Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions WSIST/WSIST.Web/Components/App.razor
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<base href="/"/>
@* Critical above-fold CSS: paint the app background before any stylesheet or font loads. *@
<style>
html, body { background: #0c0b08; }
</style>
<link rel="preconnect" href="https://fonts.googleapis.com"/>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/>
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap" rel="stylesheet"/>
Expand Down
3 changes: 2 additions & 1 deletion WSIST/WSIST.Web/Components/Pages/Login.razor
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@
<p>@Localizer["Landing_Feat5Desc"]</p>
</div>
<div class="feat r-up js-reveal" style="--d:.3s">
<h3>@Localizer["Landing_WsistSays"] <span class="soon">@Localizer["Landing_Soon"]</span></h3>
<h3>@Localizer["Landing_Feat6Title"]</h3>
<p>@Localizer["Landing_Feat6Desc"]</p>
</div>
</div>
Expand Down Expand Up @@ -369,6 +369,7 @@
<a href="/privacy">@Localizer["Legal_Privacy"]</a>
<a href="/terms">@Localizer["Legal_Terms"]</a>
</div>
<a href="mailto:hello@wsist.ch">hello@wsist.ch</a>
<span>@Localizer["Landing_FooterMade"]</span>
</div>
</footer>
Expand Down
8 changes: 4 additions & 4 deletions WSIST/WSIST.Web/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
11 changes: 5 additions & 6 deletions WSIST/WSIST.Web/Resources/SharedResource.de.resx
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
<data name="Landing_HeroSub" xml:space="preserve"><value>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.</value></data>
<data name="Landing_SeeScore" xml:space="preserve"><value>Punktzahl ansehen</value></data>
<data name="Landing_HeroNoteBold" xml:space="preserve"><value>Kostenlos</value></data>
<data name="Landing_HeroNoteRest" xml:space="preserve"><value>· keine Werbung · deine Prüfungen bleiben deine</value></data>
<data name="Landing_HeroNoteRest" xml:space="preserve"><value>· keine Werbung · wir verwenden nur deinen Namen und deine E-Mail · deine Prüfungen bleiben deine</value></data>
<data name="Landing_Card1Tag" xml:space="preserve"><value>Heutige Wahl</value></data>
<data name="Landing_Because" xml:space="preserve"><value>Weil:</value></data>
<data name="Landing_Card1Because" xml:space="preserve"><value>du verstehst es kaum, die Prüfung hat sehr viel Stoff, sie ist in 2 Tagen.</value></data>
Expand All @@ -246,7 +246,7 @@
<data name="Landing_UnderstandingDesc" xml:space="preserve"><value>Je weniger es sitzt, desto weiter steigt sie.</value></data>
<data name="Landing_UnderstandingDetail" xml:space="preserve"><value>sehr hoch +2 → sehr niedrig +12</value></data>
<data name="Landing_GradePullName" xml:space="preserve"><value>Notendruck</value></data>
<data name="Landing_GradePullDesc" xml:space="preserve"><value>Fächer, in denen dein Schnitt abrutscht, bekommen einen Schub.</value></data>
<data name="Landing_GradePullDesc" xml:space="preserve"><value>Fächer, in denen dein Schnitt abrutscht, bekommen einen Schub. Auf der Schweizer Notenskala von 1–6, wobei 4 die Bestehensgrenze ist.</value></data>
<data name="Landing_PlayEyebrow" xml:space="preserve"><value>Demo ohne Anmeldung</value></data>
<data name="Landing_PlayTitlePre" xml:space="preserve"><value>Lass den </value></data>
<data name="Landing_PlayTitleEm" xml:space="preserve"><value>echten</value></data>
Expand Down Expand Up @@ -296,15 +296,14 @@
<data name="Landing_Feat4Desc" xml:space="preserve"><value>Nichts Neues zu merken. Dein Schulkonto funktioniert problemlos.</value></data>
<data name="Landing_Feat5Title" xml:space="preserve"><value>Privat von Haus aus</value></data>
<data name="Landing_Feat5Desc" xml:space="preserve"><value>Deine Prüfungen und Noten sind nur für dich sichtbar, und du kannst sie jederzeit löschen. Keine Werbung, niemals.</value></data>
<data name="Landing_WsistSays" xml:space="preserve"><value>„WSIST sagt“</value></data>
<data name="Landing_Soon" xml:space="preserve"><value>Bald</value></data>
<data name="Landing_ManifestoAttribution" xml:space="preserve"><value>Tim · Informatik-Lehrling · Zürich</value></data>
<data name="Landing_Feat6Desc" xml:space="preserve"><value>Ein tägliches Lern-Briefing auf Schweizerdeutsch, dazu eine Android-App. Entsteht zwischen den Prüfungswochen.</value></data>
<data name="Landing_Feat6Title" xml:space="preserve"><value>Daten jederzeit exportieren</value></data>
<data name="Landing_Feat6Desc" xml:space="preserve"><value>Lade alle deine Prüfungen und Noten als CSV oder JSON herunter, wann immer du möchtest. Deine Daten bleiben deine.</value></data>
<data name="Landing_ManifestoPre" xml:space="preserve"><value>Entstanden zwischen Lehrlingsschichten und Prüfungswochen — von einem Schüler, der </value></data>
<data name="Landing_ManifestoBold" xml:space="preserve"><value>wollte, dass es existiert.</value></data>
<data name="Landing_CtaTitlePre" xml:space="preserve"><value>Deine nächste Prüfung kommt </value></data>
<data name="Landing_CtaTitleEm" xml:space="preserve"><value>so oder so.</value></data>
<data name="Landing_CtaSmall" xml:space="preserve"><value>Kostenlos · läuft in jedem Browser</value></data>
<data name="Landing_CtaSmall" xml:space="preserve"><value>Kostenlos · läuft in jedem Browser · nur Name und E-Mail werden verwendet</value></data>
<data name="Landing_FooterMade" xml:space="preserve"><value>Erstellt in Zürich · © 2026 Tim Hug</value></data>

<!-- ===== Legal: shared ===== -->
Expand Down
11 changes: 5 additions & 6 deletions WSIST/WSIST.Web/Resources/SharedResource.resx
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
<data name="Landing_HeroSub" xml:space="preserve"><value>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.</value></data>
<data name="Landing_SeeScore" xml:space="preserve"><value>See the score</value></data>
<data name="Landing_HeroNoteBold" xml:space="preserve"><value>Free</value></data>
<data name="Landing_HeroNoteRest" xml:space="preserve"><value>· no ads · your tests stay yours</value></data>
<data name="Landing_HeroNoteRest" xml:space="preserve"><value>· no ads · we only use your name and email · your tests stay yours</value></data>
<data name="Landing_Card1Tag" xml:space="preserve"><value>Tonight's pick</value></data>
<data name="Landing_Because" xml:space="preserve"><value>Because:</value></data>
<data name="Landing_Card1Because" xml:space="preserve"><value>you have low understanding, the test has very high volume, it's in 2 days.</value></data>
Expand All @@ -246,7 +246,7 @@
<data name="Landing_UnderstandingDesc" xml:space="preserve"><value>The less it clicks, the higher it climbs.</value></data>
<data name="Landing_UnderstandingDetail" xml:space="preserve"><value>very high +2 → very low +12</value></data>
<data name="Landing_GradePullName" xml:space="preserve"><value>Grade pull</value></data>
<data name="Landing_GradePullDesc" xml:space="preserve"><value>Subjects where your average slips get a push.</value></data>
<data name="Landing_GradePullDesc" xml:space="preserve"><value>Subjects where your average slips get a push. On the Swiss 1–6 scale, where 4 is passing.</value></data>
<data name="Landing_PlayEyebrow" xml:space="preserve"><value>No-signup demo</value></data>
<data name="Landing_PlayTitlePre" xml:space="preserve"><value>Run the </value></data>
<data name="Landing_PlayTitleEm" xml:space="preserve"><value>real</value></data>
Expand Down Expand Up @@ -296,15 +296,14 @@
<data name="Landing_Feat4Desc" xml:space="preserve"><value>Nothing new to remember. Your school account works fine.</value></data>
<data name="Landing_Feat5Title" xml:space="preserve"><value>Private by default</value></data>
<data name="Landing_Feat5Desc" xml:space="preserve"><value>Your tests and grades are visible to you alone, and you can delete them anytime. No ads, ever.</value></data>
<data name="Landing_WsistSays" xml:space="preserve"><value>“WSIST says”</value></data>
<data name="Landing_Soon" xml:space="preserve"><value>Soon</value></data>
<data name="Landing_ManifestoAttribution" xml:space="preserve"><value>Tim · Computer Science Apprentice · Zürich</value></data>
<data name="Landing_Feat6Desc" xml:space="preserve"><value>A daily study briefing in Swiss German, plus an Android app. In the works between exam weeks.</value></data>
<data name="Landing_Feat6Title" xml:space="preserve"><value>Export your data anytime</value></data>
<data name="Landing_Feat6Desc" xml:space="preserve"><value>Download all your tests and grades as CSV or JSON whenever you want. Your data stays yours.</value></data>
<data name="Landing_ManifestoPre" xml:space="preserve"><value>Built between apprenticeship shifts and exam weeks — by a student who </value></data>
<data name="Landing_ManifestoBold" xml:space="preserve"><value>needed it to exist.</value></data>
<data name="Landing_CtaTitlePre" xml:space="preserve"><value>Your next test is coming </value></data>
<data name="Landing_CtaTitleEm" xml:space="preserve"><value>either way.</value></data>
<data name="Landing_CtaSmall" xml:space="preserve"><value>Free · works in any browser</value></data>
<data name="Landing_CtaSmall" xml:space="preserve"><value>Free · works in any browser · only your name and email used</value></data>
<data name="Landing_FooterMade" xml:space="preserve"><value>Made in Zürich · © 2026 Tim Hug</value></data>

<!-- ===== Legal: shared ===== -->
Expand Down
11 changes: 0 additions & 11 deletions WSIST/WSIST.Web/wwwroot/landing.css
Original file line number Diff line number Diff line change
Expand Up @@ -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 ---------- */

Expand Down
Loading