This commit is contained in:
2026-06-17 10:59:45 +02:00
parent 408e48c568
commit a2ccec4bb1
35 changed files with 2514 additions and 257 deletions
+21 -38
View File
@@ -1,70 +1,53 @@
<script lang="ts">
import { goto } from '$app/navigation';
import { auth } from '$lib/auth.svelte';
// Logged-in users go straight to their lists — no placeholder dashboard.
$effect(() => {
if (auth.loaded && auth.user) goto('/lists', { replaceState: true });
});
</script>
<svelte:head>
<title>//WANTLIST</title>
<title>consume·rs — want more, ascend</title>
</svelte:head>
{#if auth.loaded && auth.user}
<!-- Logged-in placeholder dashboard -->
<section class="space-y-6">
<div>
<p class="label">logged in as</p>
<h1 class="font-display text-3xl font-bold">
{auth.user.display_name ?? auth.user.email}
</h1>
</div>
<div class="panel panel-acid p-6">
<p class="tag mb-3 inline-block border-acid text-acid">phase 2</p>
<h2 class="mb-2 text-xl font-bold">your lists land here</h2>
<p class="max-w-prose text-mute">
topic-based wantlists (clothes, gear, whatever), item tracking, and pasted
product URLs that get refetched for price drops. building it next.
</p>
</div>
<div class="grid gap-4 sm:grid-cols-3">
{#each [['LISTS', 'soon'], ['TRACKED URLS', 'soon'], ['DEAL ALERTS', 'soon']] as [k, v]}
<div class="panel p-4">
<p class="label">{k}</p>
<p class="font-display text-2xl text-blood">{v}</p>
</div>
{/each}
</div>
</section>
<p class="text-center text-mute flicker">entering…</p>
{:else}
<!-- Marketing hero -->
<section class="space-y-10">
<div class="space-y-4">
<p class="tag inline-block border-cyber text-cyber">self-hosted · rust core</p>
<p class="tag inline-block border-mint text-mint">self-hosted · rust core · ✦ blessed</p>
<h1
class="glitch font-display text-5xl font-bold leading-[0.95] sm:text-7xl"
data-text="TRACK WHAT YOU WANT. STRIKE ON THE DROP."
data-text="WANT MORE. ASCEND. ACCUMULATE THE DEBT."
>
TRACK WHAT YOU WANT. STRIKE ON THE DROP.
WANT MORE. ASCEND. ACCUMULATE THE DEBT.
</h1>
<p class="max-w-xl text-lg text-mute">
Topic-based shopping lists for the things you actually want. Paste a product
URL, and get mailed the moment the price tanks. No feed. No algorithm. Your
server, your rules.
A serene little shrine to your every craving. Paste a product URL; we keep
vigil over the price and summon you the instant it falls. No feed. No
algorithm. Just you, your wants, and the gentle hum of impending debt.
<span class="gospel">You deserve it.</span>
</p>
</div>
<div class="flex flex-wrap gap-3">
<a href="/register" class="btn btn-acid">make an account</a>
<a href="/login" class="btn btn-ghost">log in</a>
<a href="/register" class="btn btn-acid">begin ascension</a>
<a href="/login" class="btn btn-ghost">return to worship</a>
</div>
<div class="grid gap-4 sm:grid-cols-3">
{#each [['01', 'LIST IT', 'group wants by topic'], ['02', 'PASTE URL', 'we watch the price'], ['03', 'GET MAILED', 'strike on the drop']] as [n, t, d]}
{#each [['I', 'COVET', 'group wants by topic'], ['II', 'PASTE URL', 'we keep the vigil'], ['III', 'BE SUMMONED', 'strike on the drop']] as [n, t, d]}
<div class="panel p-5">
<p class="font-term text-4xl text-blood">{n}</p>
<p class="gospel text-4xl">{n}</p>
<p class="mt-1 font-display text-lg font-bold">{t}</p>
<p class="text-sm text-mute">{d}</p>
</div>
{/each}
</div>
<p class="gospel text-center text-lg">“blessed are the carts, for they shall be filled”</p>
</section>
{/if}