Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
fcbcc85
prep: for lemmy v4
Xyphyn Jun 1, 2026
75fca6e
v4: migrate posts to PostModel class and update schemas
Xyphyn Jun 1, 2026
d364b9f
v4: restore api client submodule into a normal tree
Xyphyn Jun 3, 2026
ebce672
v4: post repositories
Xyphyn Jun 3, 2026
6473d44
v4: community repository
Xyphyn Jun 3, 2026
8560b71
v4: comment models
Xyphyn Jun 3, 2026
a9eb3d5
v4: add tags
Xyphyn Jun 3, 2026
46aec50
v4: update inbox models
Xyphyn Jun 3, 2026
c29d9b4
v4: fix community page
Xyphyn Jun 4, 2026
b853525
v4: update user page to use combined schemas
Xyphyn Jun 4, 2026
0623756
fix: load listing data on preloaded main page
Xyphyn Jun 4, 2026
77e0d21
v4: rewrite image uploading and remake UI
Xyphyn Jun 8, 2026
ffd6d29
v4: fix communities page (somewhat)
Xyphyn Jun 8, 2026
6da8bf6
upgrade: svelte -> 5.56.3, sveltekit -> 2.63.1
Xyphyn Jun 8, 2026
b22c8fb
v4: fix profile pages
Xyphyn Jun 8, 2026
c5e6fa0
fix: make post list shell listing NOT $derived
Xyphyn Jun 8, 2026
2170fe6
v4: add modlogs to inbox + fix modlog
Xyphyn Jun 9, 2026
bc39e8f
cleanup: remove piefed specific routes
Xyphyn Jun 9, 2026
b596b04
impr: rewrite Select to have self-reactivity and remove binding req
Xyphyn Jun 9, 2026
7745581
v4: fix search page
Xyphyn Jun 9, 2026
6882c9b
misc: use Location component for settings
Xyphyn Jun 9, 2026
79d0b0a
v4: add community-specific sorting options
Xyphyn Jun 9, 2026
750a5c0
v4: use new schemas for saved page + add proxify() util
Xyphyn Jun 9, 2026
bc7432b
misc: update branding
Xyphyn Jun 9, 2026
5e877de
v4: migrate admin pages + delete legacy Image components
Xyphyn Jun 11, 2026
0107758
perf: virtual list was rendering every single item and then destroying
Xyphyn Jun 11, 2026
73e4a56
feat [1/2]: lemmy v4 signup
Xyphyn Jun 28, 2026
1238d53
Merge branch 'main' into lemmy-v4
Xyphyn Jun 28, 2026
057ce1a
design: update Tabs, Material, Button
Xyphyn Jul 3, 2026
e6efb01
design: redesign Tabs and distinct material, improve button danger style
Xyphyn Jul 10, 2026
8f6edda
v4: listing multi-communities
Xyphyn Jul 3, 2026
9405189
v4: fix multi-community feed caching, fix useless icons
Xyphyn Jul 10, 2026
7cf8791
merge: from main
Xyphyn Jul 10, 2026
841cf7a
v4: add v3 adapter and rewrite templates
Xyphyn Jul 14, 2026
22cf44f
misc: rename post.svelte.ts -> post-model.svelte.ts to prevent name c…
Xyphyn Jul 17, 2026
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
13 changes: 13 additions & 0 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,19 @@

Photon is a web app for the fediverse with helpful features and a nice UX.

> [!NOTE]
> When cloning this repo, you must clone submodules as well:
>
> ```sh
> git clone https://github.com/xyphyn/photon --recursive
> ```
>
> If you've already cloned the repo, run:
>
> ```sh
> git submodule update --init --recursive
> ```

Jump to:

- [Self-hosting](#self-hosting)
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ test-results
*TS.md

# Used for automated screenshot workflow
.github/__pycache__/
.github/__pycache__/
.zed
3 changes: 2 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
"svelteIndentScriptAndStyle": true,
"svelteSortOrder": "scripts-options-markup-styles",
"svelteStrictMode": false,
"useTabs": false
"useTabs": false,
"printWidth": 100
}
503 changes: 396 additions & 107 deletions bun.lock

Large diffs are not rendered by default.

39 changes: 20 additions & 19 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,50 +1,51 @@
{
"name": "photon-lemmy",
"version": "2.3.0",
"license": "AGPL-3.0-only",
"devDependencies": {
"@dicebear/core": "^9.3.1",
"@dicebear/initials": "^9.3.1",
"@dicebear/core": "^9.4.3",
"@dicebear/initials": "^9.4.2",
"@eslint/compat": "^1.4.1",
"@eslint/js": "^9.39.2",
"@svelte-put/qr": "^2.1.1",
"@svelte-put/qr": "^2.1.3",
"@sveltejs/adapter-auto": "^3.3.1",
"@sveltejs/adapter-cloudflare": "^7.2.6",
"@sveltejs/adapter-node": "^5.5.2",
"@sveltejs/adapter-cloudflare": "^7.2.9",
"@sveltejs/adapter-node": "^5.5.7",
"@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.50.1",
"@sveltejs/vite-plugin-svelte": "^6.2.4",
"@sveltejs/kit": "^2.69.2",
"@sveltejs/vite-plugin-svelte": "^7.2.0",
"@tailwindcss/container-queries": "^0.1.1",
"@tailwindcss/vite": "^4.1.18",
"@tailwindcss/vite": "^4.3.2",
"@types/node": "^25.2.2",
"@types/nprogress": "^0.2.3",
"@types/ua-parser-js": "^0.7.39",
"@xylightdev/svelte-hero-icons": "^2.2.10",
"eslint": "^9.39.2",
"eslint-plugin-svelte": "^3.14.0",
"jsdom": "^22.1.0",
"lemmy-js-client": "0.19.11-donation-dialog.1",
"linkify-it": "^5.0.0",
"marked": "^17.0.1",
"marked-linkify-it": "^3.1.14",
"lemmy-js-client": "^1.0.0-alpha.2",
"lemmy-js-client-v3": "npm:lemmy-js-client@0.19.11-donation-dialog.1",
"linkify-it": "^5.0.2",
"marked": "^17.0.6",
"marked-linkify-it": "^3.1.15",
"nprogress": "^0.2.0",
"openapi-fetch": "^0.14.1",
"prettier": "^3.8.1",
"prettier-plugin-svelte": "^3.4.1",
"svelte": "^5.49.1",
"prettier": "^3.9.5",
"prettier-plugin-svelte": "^3.5.2",
"svelte": "^5.56.4",
"svelte-adapter-bun-next": "^1.0.3",
"svelte-check": "^4.3.6",
"svelte-check": "^4.7.2",
"svelte-floating-ui": "^1.6.2",
"svelte-infinite-scroll": "^2.0.1",
"sveltekit-i18n": "^2.4.2",
"tailwindcss": "^4.1.18",
"tailwindcss": "^4.3.2",
"trap-focus-svelte": "^1.1.0",
"tslib": "^2.8.1",
"typescript": "^5.9.3",
"typescript-eslint": "^8.54.0",
"ua-parser-js": "^1.0.41",
"vite": "^7.3.3"
"vite": "^8.1.4"
},
"license": "AGPL-3.0-only",
"private": true,
"scripts": {
"dev": "vite dev",
Expand Down
23 changes: 23 additions & 0 deletions src/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,29 @@

body {
@apply bg-slate-50 text-slate-900 dark:bg-zinc-950 dark:text-zinc-100 accent-slate-950 dark:accent-zinc-50;

--tag-color01: var(--color-slate-200);
--tag-color02: var(--color-blue-400);
--tag-color03: var(--color-orange-400);
--tag-color04: var(--color-green-400);
--tag-color05: var(--color-yellow-400);
--tag-color06: var(--color-red-400);
--tag-color07: var(--color-purple-300);
--tag-color08: var(--color-pink-300);
--tag-color09: var(--color-slate-200);
--tag-color10: var(--color-slate-200);
@variant dark {
--tag-color01: var(--color-zinc-800);
--tag-color02: var(--color-blue-300);
--tag-color03: var(--color-orange-300);
--tag-color04: var(--color-green-300);
--tag-color05: var(--color-yellow-300);
--tag-color06: var(--color-red-300);
--tag-color07: var(--color-purple-300);
--tag-color08: var(--color-pink-300);
--tag-color09: var(--color-slate-200);
--tag-color10: var(--color-slate-200);
}
}

.dark {
Expand Down
4 changes: 2 additions & 2 deletions src/app.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html class="dark font-sans" lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/img/logo-background.svg" />
<link rel="icon" href="%sveltekit.assets%/img/logo.svg" />
<link rel="manifest" href="/manifest.json" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
%sveltekit.head%
Expand All @@ -11,7 +11,7 @@
<div
style="z-index:-50;position:absolute;inset:0;display:grid;place-items:center; "
>
<svg width="50" height="50"><use width="50" height="50" href="/img/logo-isolated.svg#logo"></use></svg>
<svg width="50" height="50"><use width="50" height="50" href="/img/logo.svg#logo"></use></svg>
</div>
<div style="display: contents;" data-sveltekit-preload-code>
%sveltekit.body%
Expand Down
Loading