diff --git a/src/routes/instances/+page.svelte b/src/routes/instances/+page.svelte
index 6213070..c8329fb 100644
--- a/src/routes/instances/+page.svelte
+++ b/src/routes/instances/+page.svelte
@@ -2,6 +2,12 @@
import type { PageData } from "./$types";
export let data: PageData;
+
+ let insturl: "short" | "long";
+ let toggle = () => {
+ insturl = insturl === "long" ? "short" : "long";
+ };
+ insturl = "long";
@@ -15,6 +21,22 @@
+
+ {#if insturl === "long"}
{#each data.instances as category}
{category.name}
@@ -40,4 +62,31 @@
{/each}
+ {:else}
+ {#each data.instances as category}
+
+ {/each}
+ {/if}
diff --git a/src/routes/instances/advanced/+page.svelte b/src/routes/instances/advanced/+page.svelte
index 72347bd..35809d9 100644
--- a/src/routes/instances/advanced/+page.svelte
+++ b/src/routes/instances/advanced/+page.svelte
@@ -34,6 +34,21 @@
{#if instance.bp}
Backup
{/if}
+ {#if instance.short_geo}
+ GeoDNS (Short URL)
+ {/if}
+ {#if instance.short_eu}
+ EU (Short URL)
+ {/if}
+ {#if instance.short_us}
+ US (Short URL)
+ {/if}
+ {#if instance.short_in}
+ IN (Short URL)
+ {/if}
+ {#if instance.short_bp}
+ Backup (Short URL)
+ {/if}
{#if instance.tor}
Tor
{/if}
diff --git a/src/routes/instances/instances.ts b/src/routes/instances/instances.ts
index 545f00a..d980672 100644
--- a/src/routes/instances/instances.ts
+++ b/src/routes/instances/instances.ts
@@ -7,10 +7,15 @@ interface Instance {
name: string;
description: string;
geo?: string;
+ short_geo?: string;
eu?: string;
+ short_eu?: string;
us?: string;
+ short_us?: string;
in?: string;
+ short_in?: string;
bp?: string;
+ short_bp?: string;
tor?: string;
torBp?: string;
i2p?: string;
@@ -26,9 +31,13 @@ const instances: Instances[] = [
name: "Invidious",
description: "A frontend for YouTube.",
eu: "https://invidious.projectsegfau.lt/",
- us: "https://inv.us.projectsegfau.lt",
- in: "https://inv.in.projectsegfau.lt",
- bp: "https://inv.bp.projectsegfau.lt",
+ short_eu: "https://i.psf.lt/",
+ us: "https://inv.us.projectsegfau.lt/",
+ short_us: "https://i.us.psf.lt/",
+ in: "https://inv.in.projectsegfau.lt/",
+ short_in: "https://i.in.psf.lt/",
+ bp: "https://inv.bp.projectsegfau.lt/",
+ short_bp: "https://i.bp.psf.lt/",
tor: "http://inv.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
torBp: "http://invbp.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
i2p: "http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p",
@@ -39,17 +48,24 @@ const instances: Instances[] = [
name: "Piped",
description: "Another frontend for YouTube.",
eu: "https://piped.projectsegfau.lt/",
- us: "https://piped.us.projectsegfau.lt",
- in: "https://piped.in.projectsegfau.lt",
+ short_eu: "https://pi.psf.lt/",
+ us: "https://piped.us.projectsegfau.lt/",
+ short_us: "https://pi.us.psf.lt/",
+ in: "https://piped.in.projectsegfau.lt/",
+ short_in: "https://piped.in.projectsegfau.lt/",
icon: "/icons/piped.svg"
},
{
name: "Libreddit",
description: "A frontend for Reddit.",
geo: "https://libreddit.projectsegfau.lt/",
+ short_geo: "https://lr.psf.lt/",
eu: "https://libreddit.eu.projectsegfau.lt/",
- us: "https://libreddit.us.projectsegfau.lt",
- in: "https://libreddit.in.projectsegfau.lt",
+ short_eu: "https://lr.eu.psf.lt/",
+ us: "https://libreddit.us.projectsegfau.lt/",
+ short_us: "https://lr.us.psf.lt/",
+ in: "https://libreddit.in.projectsegfau.lt/",
+ short_in: "https://lr.in.psf.lt/",
tor: "http://libreddit.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
i2p: "http://pjsfkref7g66mji45kyccqnn5hmjtjp3cfodozabpyplj2rmv5sa.b32.i2p",
icon: "/icons/libreddit.png"
@@ -58,9 +74,13 @@ const instances: Instances[] = [
name: "Nitter",
description: "A frontend for Twitter.",
geo: "https://nitter.projectsegfau.lt/",
+ short_geo: "https://n.psf.lt/",
eu: "https://nitter.eu.projectsegfau.lt/",
- us: "https://nitter.us.projectsegfau.lt",
- in: "https://nitter.in.projectsegfau.lt",
+ short_eu: "https://n.eu.psf.lt/",
+ us: "https://nitter.us.projectsegfau.lt/",
+ short_us: "https://n.us.psf.lt/",
+ in: "https://nitter.in.projectsegfau.lt/",
+ short_in: "https://n.in.psf.lt/",
tor: "http://nitter.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
i2p: "http://pjsfs4ukb6prmfx3qx3a5ef2cpcupkvcrxdh72kqn2rxc2cw4nka.b32.i2p",
icon: "/icons/nitter.png"
@@ -68,10 +88,14 @@ const instances: Instances[] = [
{
name: "AnonymousOverflow",
description: "A frontend for StackOverflow.",
- geo: "https://overflow.projectsegfau.lt",
- eu: "https://overflow.eu.projectsegfau.lt",
- us: "https://overflow.us.projectsegfau.lt",
- in: "https://overflow.in.projectsegfau.lt",
+ geo: "https://overflow.projectsegfau.lt/",
+ short_geo: "https://o.psf.lt/",
+ eu: "https://overflow.eu.projectsegfau.lt/",
+ short_eu: "https://o.eu.psf.lt/",
+ us: "https://overflow.us.projectsegfau.lt/",
+ short_us: "https://o.us.psf.lt/",
+ in: "https://overflow.in.projectsegfau.lt/",
+ short_in: "https://o.in.psf.lt/",
tor: "http://overflow.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
icon: "/icons/anonymousoverflow.png"
},
@@ -79,6 +103,7 @@ const instances: Instances[] = [
name: "Beatbump",
description: "A frontend for YouTube Music.",
geo: "https://bb.projectsegfau.lt/",
+ short_geo: "https://bb.projectsegfau.lt/",
eu: "https://bb.eu.projectsegfau.lt/",
us: "https://bb.us.projectsegfau.lt/",
in: "https://bb.in.projectsegfau.lt/",
@@ -90,9 +115,13 @@ const instances: Instances[] = [
name: "BreezeWiki",
description: "A frontend for Fandom.",
geo: "https://bw.projectsegfau.lt/",
+ short_geo: "https://bw.psf.lt/",
eu: "https://bw.eu.projectsegfau.lt/",
+ short_eu: "https://bw.eu.psf.lt/",
us: "https://bw.us.projectsegfau.lt/",
+ short_us: "https://bw.us.psf.lt/",
in: "https://bw.in.projectsegfau.lt/",
+ short_in: "https://bw.in.psf.lt/",
tor: "http://breezewiki.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
i2p: "http://pjsfk4xvekoc7wx4pteevp3q2wy7jmzlem7rvl74nx33zkdr4vyq.b32.i2p",
icon: "/icons/breezewiki.svg"
@@ -100,31 +129,28 @@ const instances: Instances[] = [
{
name: "GotHub",
description: "A frontend for GitHub.",
- geo: "https://gothub.projectsegfau.lt",
- eu: "https://gothub.eu.projectsegfau.lt",
- us: "https://gothub.us.projectsegfau.lt",
- in: "https://gothub.in.projectsegfau.lt",
+ geo: "https://gothub.projectsegfau.lt/",
+ short_geo: "https://gh.psf.lt/",
+ eu: "https://gothub.eu.projectsegfau.lt/",
+ short_eu: "https://gh.eu.psf.lt/",
+ us: "https://gothub.us.projectsegfau.lt/",
+ short_us: "https://gh.us.psf.lt/",
+ in: "https://gothub.in.projectsegfau.lt/",
+ short_in: "https://gh.in.psf.lt/",
tor: "http://gothub.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
icon: "/icons/gothub.svg"
},
- {
- name: "Librarian",
- description: "A frontend for LBRY/Odysee.",
- geo: "https://lbry.projectsegfau.lt/",
- eu: "https://lbry.eu.projectsegfau.lt/",
- us: "https://lbry.us.projectsegfau.lt/",
- in: "https://lbry.in.projectsegfau.lt/",
- tor: "http://lbry.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
- i2p: "http://pjsf7uucpqf2crcmfo3nvwdmjhirxxjfyuvibdfp5x3af2ghqnaa.b32.i2p",
- icon: "/icons/librarian.png"
- },
{
name: "Rimgo",
description: "A frontend for Imgur.",
geo: "https://rimgo.projectsegfau.lt/",
+ short_geo: "https://rg.psf.lt/",
eu: "https://rimgo.eu.projectsegfau.lt/",
+ short_eu: "https://rg.eu.psf.lt/",
us: "https://rimgo.us.projectsegfau.lt/",
+ short_us: "https://rg.us.psf.lt/",
in: "https://rimgo.in.projectsegfau.lt/",
+ short_in: "https://rg.in.psf.lt/",
tor: "http://rimgo.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
icon: "/icons/rimgo.png"
},
@@ -132,9 +158,13 @@ const instances: Instances[] = [
name: "Scribe",
description: "A frontend for Medium.",
geo: "https://scribe.projectsegfau.lt/",
+ short_geo: "https://sc.psf.lt/",
eu: "https://scribe.eu.projectsegfau.lt/",
+ short_eu: "https://sc.eu.psf.lt/",
us: "https://scribe.us.projectsegfau.lt/",
+ short_us: "https://sc.us.psf.lt/",
in: "https://scribe.in.projectsegfau.lt/",
+ short_in: "https://sc.in.psf.lt/",
tor: "http://scribe.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
i2p: "http://pjsflkkkcn33ahmzmpyq6idy2knkzh4atp7zaetqfsnenpyori6a.b32.i2p"
},
@@ -142,9 +172,13 @@ const instances: Instances[] = [
name: "Teddit",
description: "Another frontend for Reddit.",
geo: "https://teddit.projectsegfau.lt/",
+ short_geo: "https://t.psf.lt/",
eu: "https://teddit.eu.projectsegfau.lt/",
+ short_eu: "https://t.eu.psf.lt/",
us: "https://teddit.us.projectsegfau.lt/",
+ short_us: "https://t.us.psf.lt/",
in: "https://teddit.in.projectsegfau.lt/",
+ short_in: "https://t.in.psf.lt/",
tor: "http://teddit.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
icon: "/icons/teddit.png"
},
@@ -157,43 +191,52 @@ const instances: Instances[] = [
name: "Matrix",
description: "An open network for secure, decentralized communication.",
eu: "https://wiki.projectsegfau.lt/Matrix",
+ short_eu: "https://w.psf.lt/Matrix",
icon: "/icons/matrix.svg"
},
{
name: "Element",
description: "A feature-rich Matrix client.",
eu: "https://chat.projectsegfau.lt/",
+ short_eu: "https://el.psf.lt/",
icon: "/icons/element.svg"
},
{
name: "Hydrogen",
description: "A lightweight Matrix client.",
eu: "https://hydrogen.projectsegfau.lt/",
+ short_eu: "https://h2.psf.lt/",
icon: "/icons/hydrogen.svg"
},
{
name: "Cinny",
description: "An elegant Matrix client.",
eu: "https://cinny.projectsegfau.lt/",
+ short_eu: "https://cy.psf.lt/",
icon: "/icons/cinny.svg"
},
{
name: "XMPP",
description: "The universal messaging standard.",
eu: "https://wiki.projectsegfau.lt/XMPP",
+ short_eu: "https://w.psf.lt/XMPP",
icon: "/icons/xmpp.svg"
},
{
name: "XMPP Web",
description: "Lightweight web chat client for XMPP.",
- eu: "https://xmpp-web.projectsegfau.lt/"
+ eu: "https://xmpp-web.projectsegfau.lt/",
+ short_eu: "https://x.psf.lt/"
},
{
name: "SearXNG",
description: "A private meta-search engine.",
eu: "https://search.projectsegfau.lt/",
- us: "https://search.us.projectsegfau.lt",
- in: "https://search.in.projectsegfau.lt",
+ short_eu: "https://s.psf.lt/",
+ us: "https://search.us.projectsegfau.lt/",
+ short_us: "https://s.us.psf.lt/",
+ in: "https://search.in.projectsegfau.lt/",
+ short_in: "https://s.in.psf.lt/",
tor: "http://search.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
i2p: "http://pjsfwklrellqoj275kzeu2tz4c3j5zktnqod56s7l5dc25ro3wgq.b32.i2p",
icon: "/icons/searxng.svg"
@@ -202,6 +245,7 @@ const instances: Instances[] = [
name: "Gitea",
description: "A web interface for Git, alternative to GitHub.",
eu: "https://git.projectsegfau.lt/",
+ short_eu: "https://git.psf.lt/",
tor: "http://git.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
i2p: "http://pjsfdrtv2465bisenvzhfvdleznx4arlih2hlnrhpzugailnm7iq.b32.i2p",
icon: "/icons/gitea.svg"
@@ -209,19 +253,22 @@ const instances: Instances[] = [
{
name: "Hedgedoc",
description: "Collaborative markdown notes.",
- eu: "https://doc.projectsegfau.lt",
+ eu: "https://doc.projectsegfau.lt/",
+ short_eu: "https://d.psf.lt/",
icon: "/icons/hedgedoc.svg"
},
{
name: "Akkoma",
description: "Federated microblogging platform.",
eu: "https://social.projectsegfau.lt/",
+ short_eu: "https://ak.psf.lt/",
icon: "/icons/akkoma.png"
},
{
name: "Vikunja",
description: "A task management platform.",
eu: "https://todo.projectsegfau.lt/",
+ short_eu: "https://vi.psf.lt/",
tor: "http://todo.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
i2p: "http://pjsfivs2sxudfy65kojxqophc6vqjqdr6woczy6hzaxvxvbj3bkq.b32.i2p",
icon: "/icons/vikunja.png"
@@ -229,26 +276,29 @@ const instances: Instances[] = [
{
name: "Jitsi",
description: "An open source video conferencing platform.",
- eu: "https://jitsi.projectsegfau.lt",
+ eu: "https://jitsi.projectsegfau.lt/",
+ short_eu: "https://j.psf.lt/",
icon: "/icons/jitsi.svg"
},
{
name: "Vaultwarden",
description: "An open source password manager.",
- eu: "https://pass.projectsegfau.lt",
+ eu: "https://pass.projectsegfau.lt/",
+ short_eu: "https://vw.psf.lt/",
tor: "http://pass.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
icon: "/icons/vaultwarden.svg"
},
{
name: "Plausible analytics",
description: "Analytics for our website.",
- eu: "https://analytics.projectsegfau.lt/projectsegfau.lt",
+ eu: "https://analytics.projectsegfau.lt/",
icon: "/icons/plausible.png"
},
{
name: "Healthchecks",
description: "Simple and Effective Cron Job Monitoring.",
- eu: "https://healthchecks.projectsegfau.lt",
+ eu: "https://healthchecks.projectsegfau.lt/",
+ short_eu: "https://hc.psf.lt/",
icon: "/icons/healthchecks.svg"
}
]
@@ -259,19 +309,20 @@ const instances: Instances[] = [
{
name: "Pubnix",
description: "A Unix server open to the public with non-commercial recreational goals.",
- eu: "https://p.projectsegfau.lt",
+ eu: "https://p.projectsegfau.lt/",
+ short_eu: "https://p.psf.lt/",
icon: "/icons/pubnix.png"
},
{
name: "Public Authentik",
description: "Authentik for signup to our services.",
- eu: "https://auth.p.projectsegfau.lt",
+ eu: "https://auth.p.projectsegfau.lt/",
icon: "/icons/authentik.svg"
},
{
name: "Cockpit",
description: "WebUI for users to access the pubnix services.",
- eu: "https://cockpit.p.projectsegfau.lt",
+ eu: "https://cockpit.p.projectsegfau.lt/",
icon: "/icons/cockpit.svg"
},
{
@@ -282,7 +333,8 @@ const instances: Instances[] = [
{
name: "Gemini Proxy",
description: "Access Gemini sites from the web.",
- eu: "https://geminiproxy.p.projectsegfau.lt",
+ eu: "https://geminiproxy.p.projectsegfau.lt/",
+ short_eu: "https://gp.p.psf.lt/"
}
]
},
@@ -311,12 +363,14 @@ const instances: Instances[] = [
name: "SimpleLogin",
description: "An open source email alias creator/manager",
eu: "https://sl.projectsegfau.lt/",
+ short_eu: "https://sl.psf.lt/",
icon: "/icons/simplelogin.svg"
},
{
name: "MediaWiki",
description: "Our wiki.",
eu: "https://wiki.projectsegfau.lt/",
+ short_eu: "https://w.psf.lt/",
tor: "http://wiki.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion",
icon: "/icons/mediawiki.svg"
}
diff --git a/uno.config.ts b/uno.config.ts
index a7586ce..b7eb682 100644
--- a/uno.config.ts
+++ b/uno.config.ts
@@ -22,7 +22,7 @@ export default defineConfig({
transformers: [transformerVariantGroup(), transformerDirectives()],
- safelist: ["i-ic:outline-dark-mode", "i-ic:outline-light-mode"],
+ safelist: ["i-ic:outline-dark-mode", "i-ic:outline-light-mode", "i-ic:baseline-toggle-on", "i-ic:baseline-toggle-off"],
theme: {
fontFamily: {