{appName()} is a social media platform made by people like you.
- Log in or (sign up) to see {activePostCount()} posts and talk with {activeUserCount()} users right now!
+
{appName()} is a social media platform made by people like you.
+ Log in or (sign up) to see {activePostCount()} posts and talk with {activeUserCount()} users right now!
{/if}
diff --git a/src/routes/+page.ts b/src/routes/+page.ts
index 0d51905..a1f2924 100644
--- a/src/routes/+page.ts
+++ b/src/routes/+page.ts
@@ -1,4 +1,4 @@
-import { backend, type PostEntry } from '$lib/backend.js';
+import { backend, type GuildEntry, type PostEntry } from '$lib/backend.js';
import { getMe } from '$lib/globals.svelte.js';
import type { LoadEvent } from '@sveltejs/kit';
@@ -19,16 +19,35 @@ async function loadFeed (event: LoadEvent): Promise {
} catch (e) {
return null;
}
-
}
-export async function load(event): Promise<{feed: PostEntry[] | null}> {
+async function loadTopGuilds (event: LoadEvent): Promise {
+ const resp = await backend.withEvent(event).fetch('top/guilds');
+
+ if ([200].indexOf(resp.status) < 0) {
+ console.error(`fetch top_guilds returned status ${resp.status}`);
+ return null;
+ }
+ try {
+ const respJ = await resp.json();
+
+ const { has: top_guilds } : { has: GuildEntry[] } = respJ;
+ console.log('top_guilds is', top_guilds);
+ return top_guilds;
+ } catch (e) {
+ return null;
+ }
+}
+
+export async function load(event): Promise<{feed: PostEntry[] | null, top_guilds?: GuildEntry[] | null}> {
let feed = null;
let me = getMe();
+ let top_guilds = null;
if (me) {
feed = await loadFeed(event);
+ top_guilds = await loadTopGuilds(event);
}
- return { feed };
+ return { feed, top_guilds };
}
\ No newline at end of file
From cd92a4b12ef17a4014c6cb170c2e1dc4ba02c646 Mon Sep 17 00:00:00 2001
From: Yusur Princeps
Date: Tue, 7 Oct 2025 11:46:05 +0200
Subject: [PATCH 04/13] add upvote count, fix loading issues
---
src/lib/FullPost.svelte | 18 +++++++++++++++++
src/lib/VoteButton.svelte | 41 +++++++++++++++++++++++++++++++++++++++
src/lib/globals.svelte.ts | 3 +++
src/routes/+page.ts | 9 ++++++++-
4 files changed, 70 insertions(+), 1 deletion(-)
create mode 100644 src/lib/VoteButton.svelte
diff --git a/src/lib/FullPost.svelte b/src/lib/FullPost.svelte
index 0eeb0be..142b0e4 100644
--- a/src/lib/FullPost.svelte
+++ b/src/lib/FullPost.svelte
@@ -10,6 +10,7 @@
import PostMeta from "./PostMeta.svelte";
import GuildMenu from "./GuildMenu.svelte";
import { SvelteShowdown } from "svelte-showdown";
+ import VoteButton from "./VoteButton.svelte";
@@ -32,6 +33,7 @@ let { title, created_at, id, content = '', to } = post;
+
@@ -56,7 +58,23 @@ let { title, created_at, id, content = '', to } = post;
\ No newline at end of file
diff --git a/src/lib/VoteButton.svelte b/src/lib/VoteButton.svelte
new file mode 100644
index 0000000..56e5ac5
--- /dev/null
+++ b/src/lib/VoteButton.svelte
@@ -0,0 +1,41 @@
+
+
+
+ {/snippet}
+ {#snippet right()}
+
+ {/snippet}
+
\ No newline at end of file
diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte
new file mode 100644
index 0000000..5254392
--- /dev/null
+++ b/src/routes/settings/+page.svelte
@@ -0,0 +1,2 @@
+
+Select a setting from the left menu to change its settings
\ No newline at end of file
diff --git a/src/routes/settings/appearance/+page.svelte b/src/routes/settings/appearance/+page.svelte
new file mode 100644
index 0000000..265b473
--- /dev/null
+++ b/src/routes/settings/appearance/+page.svelte
@@ -0,0 +1,2 @@
+
+TODO
\ No newline at end of file
From 792cce7973aded30836f337304d7bcd119bff5bd Mon Sep 17 00:00:00 2001
From: Yusur Princeps
Date: Wed, 22 Oct 2025 11:58:43 +0200
Subject: [PATCH 10/13] add register page stub
---
src/app.html | 4 +++
src/routes/+page.svelte | 4 +--
src/routes/login/+page.svelte | 3 +-
src/routes/register/+page.svelte | 50 ++++++++++++++++++++++++++++++++
4 files changed, 58 insertions(+), 3 deletions(-)
create mode 100644 src/routes/register/+page.svelte
diff --git a/src/app.html b/src/app.html
index 2ac9833..ae88168 100644
--- a/src/app.html
+++ b/src/app.html
@@ -234,6 +234,10 @@ button.card {
border-radius: 1em;
}
+:disabled {
+ opacity: .5;
+}
+
article h1, article h2 {
font-weight: 500;
}
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index e5842b3..4472a30 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -29,7 +29,7 @@
{#snippet left()}
{/snippet}
-
+
{#snippet right()}
{#if top_guilds}
@@ -49,7 +49,7 @@
{:else}
{appName()} is a social media platform made by people like you.
- Log in or (sign up) to see {activePostCount()} posts and talk with {activeUserCount()} users right now!
+ Log in or sign up to see {activePostCount()} posts and talk with {activeUserCount()} users right now!
{/if}
diff --git a/src/routes/login/+page.svelte b/src/routes/login/+page.svelte
index 4ef3ad4..59736d8 100644
--- a/src/routes/login/+page.svelte
+++ b/src/routes/login/+page.svelte
@@ -14,7 +14,7 @@
+
diff --git a/src/routes/register/+page.svelte b/src/routes/register/+page.svelte
new file mode 100644
index 0000000..4195c82
--- /dev/null
+++ b/src/routes/register/+page.svelte
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From 4f816c9066d228d35654f77691ed553563abd425 Mon Sep 17 00:00:00 2001
From: Yusur Princeps
Date: Wed, 22 Oct 2025 13:55:19 +0200
Subject: [PATCH 11/13] add create stub
---
src/routes/create/+page.svelte | 69 ++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
create mode 100644 src/routes/create/+page.svelte
diff --git a/src/routes/create/+page.svelte b/src/routes/create/+page.svelte
new file mode 100644
index 0000000..403f7da
--- /dev/null
+++ b/src/routes/create/+page.svelte
@@ -0,0 +1,69 @@
+
+
+
+{#if me}
+
+
+
+ {#snippet left()}
+ ...
+ {/snippet}
+
+ {#snippet right()}
+ ...
+ {/snippet}
+
+{:else}
+
+ You must be logged in in order to create posts.
+
+{/if}
+
+
\ No newline at end of file
From 58d6a248c7a341e76a9caa94c6a3a482375648ca Mon Sep 17 00:00:00 2001
From: Yusur Princeps
Date: Wed, 22 Oct 2025 15:09:10 +0200
Subject: [PATCH 12/13] add ul.grid, improve /create and SLayout
---
src/app.html | 20 ++++++++++++
src/lib/GuildSelect.svelte | 54 +++++++++++++++++++++++++++++++
src/lib/PrivacySelect.svelte | 59 ++++++++++++++++++++++++++++++++++
src/lib/SLayout.svelte | 8 ++---
src/routes/create/+page.svelte | 58 ++++++++++++++++++++-------------
5 files changed, 172 insertions(+), 27 deletions(-)
create mode 100644 src/lib/GuildSelect.svelte
create mode 100644 src/lib/PrivacySelect.svelte
diff --git a/src/app.html b/src/app.html
index ae88168..5265380 100644
--- a/src/app.html
+++ b/src/app.html
@@ -187,6 +187,26 @@ ul.column {
padding: 0;
}
+ul.grid {
+ list-style: none;
+ padding: 0;
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr 1fr;
+ grid-template-rows: auto;
+}
+
+ul.grid > li {
+ border: 1px solid var(--border);
+ border-radius: .5em;
+ padding: .5em;
+ margin: 1em .5em;
+ text-align: center;
+}
+
+ul.grid > li small {
+ display: block;
+}
+
a svg {
text-decoration: none;
}
diff --git a/src/lib/GuildSelect.svelte b/src/lib/GuildSelect.svelte
new file mode 100644
index 0000000..12c07c4
--- /dev/null
+++ b/src/lib/GuildSelect.svelte
@@ -0,0 +1,54 @@
+
+
+
+