Spyke

Posts

[Jul 26th 2026] Photon development update

Still going!

I've been exploring other projects recently but I still enjoy maintaining and improving Photon.

Lemmy v1

Support for Lemmy v1 (API v4) is complete as for all currently existing functions. I've finished a few of the new Lemmy features (post tags, multi communities) but still have some others to add.

This update also comes with a lot of technical improvements and UX improvements, and should fix a few long standing issues. I'm quite excited to merge it.

The way I implemented this update was to rebase the entire client on the API v4 schemas and structures. While this was great for my overall code quality, and helps me future proof this client, it means I now have to write a compatibility adapter to support API v3. To make things worse, I have to rewrite the entire Piefed adapter (unless I do some cursed setup like Piefed adapter -> v3 adapter -> v4/base).

Android app

You can now install an APK for Photon! It has a few minor issues but should be pretty usable, and it has edge-to-edge support unlike the PWA. You can get it from https://github.com/xyphyn/photon/releases, going to the latest one, and downloading app-release.apk. You can paste the GitHub link into obtainium, too.

Future

I have a lot of UX improvements to make, but I'm waiting until after Lemmy V1 releases to make them (I don't want to bloat the PR too much). I want to make things more "reliable", by fixing the way pages are cached, keeping scrolling states intact, adding "drafts" everywhere in case you accidentally delete things, and overall keeping everything in sync. Some changes in the API v4 PR provide the first step to achieving this.

I'm planning to make a "demo" version of Photon that has a heavily curated default feed (not for standard use! phtn.app will remain untouched) so that I can show it in my resume or something.

Closing

Thanks to everyone who uses this app! It was an important pathway to me becoming a better web developer (as much as I dislike that title). I'm rather surprised how many Lemmy servers host it now, and even strange obscure non-fediverse websites using it inexplicably. (Related to recent events, did you know Tesseract began as a fork of Photon?)

if you'd like to donate to support my work, you can do so here.

View original on lemdro.id
21

Photon v2.3.0

What's Changed

  • design: make the signup page look slightly less atrocious
  • feat: add keyword and URL filtering for posts by @Kehet and @Xyphyn in https://github.com/Xyphyn/photon/pull/711
    • only for posts for now, by default it will minimize the post in your feed to let you know it was hidden while still being unobtrusive. if you want to completely hide them, that's still an option
  • feat: automatically retrieve cross-server content
    • previously this would require an extra button press. this is much more transparent
    • also this makes photon links a lot better for sharing with frens
  • feat: completely rewrite the api adapters to not be absymal trash
    • if an employer saw that i wrote the old api adapter i would be fired on the spot
  • fix: Missing escaped text by @sevonj in https://github.com/Xyphyn/photon/pull/706
  • upgrade: svelte -> 5.49.1, sveltekit -> 2.50.1, vite -> 6.4.1, tailwindcss -> 4.1.18
  • misc: improve settings reachability by making a categorized page on mobile
  • design: make button presses react more frequently to just make things feel nicer
  • design: lots and lots of design tweaks like a new loading animation (massive changes)
  • refactor: authentication logic
  • fix: remove useless sveltekit __data.json blocking calls, speed up navigation within layouts (and make everything work without the photon server)
  • feat: make it impossible to use the app if you have a certain username because funny

New Contributors

Full Changelog: https://github.com/Xyphyn/photon/compare/v2.2.2...v2.3.0

View original on lemdro.id
18

photon image proxy

Very few lemmy instances actually proxy images, and this makes it impossible to run image transforms (compression and resizing). this leads to a lot of scenarios where some profile picture that gets rendered at 24x24px is actually downloading a full-size 4K image. additionally, you've connected to hundreds of domains in the process of scrolling your home feed, leaking your IP address to all of them.

i'm working on a centralized image proxy that solves these problems (though it's not locked into photon, it depends on environment variables). it'll roll out on phtn.app for now.

Comparison

Compact mode, loading 1 page on home feed

  • Unproxied: 836 KB downloaded, 30 domains
  • Proxied: 76 KB downloaded, 1 domain
View original on lemdro.id
8

Photon v2.2.2

  • design: use common components for administration pages
  • design: use common styles for vote buttons
  • impr: add proper pageination to messages page, fix diffing desync
  • feat: add autosubmit to URL autofill
  • design: use Materials for highlights in comments
  • fix: piefed poll vote api schema changes
  • fix: markdown tables re-enable
  • feat: add custom thumbnail option to PostForm
  • feat: add piefed metadata generation
  • design: redesign the profile block pages to not look awful
  • fix: post polls causing a scroll to top
  • feat: make comment guide borders clickable to collapse (like reddit)
  • misc: skip client validation for linked instances
  • feat: make command palette more obvious with a button in profile picture (ctrl + k guys) (or right click/hold on photon logo)

Full Changelog: https://github.com/Xyphyn/photon/compare/v2.2.1...v2.2.2

View original on lemdro.id
19
linux_gaming·Linux GamingbyXylight‮

Is the steam client absolutely messed up for anyone else?

I'm using Arch currently and the following issues have been present on every install of Steam I've had:

  • Controller inputs break constantly. If I use big picture mode, the games will be in some quasi state where it both detects my controller and doesn't.
  • The menus take like 3 seconds to open.
  • The right click menu in the system tray does not work 30% of the time.
  • Worst of all, when I close a game, steam will not detect that it closes. Once this happens, no other page will load, no menus will open, and i have to killall steam -s SIGKILL, since no other signal works. It's also survived SIGKILL multiple times. How?
  • In game, the shift+tab menu does not work; half the buttons are unresponsive and the game will crash upon closing shift+tab

The arch wiki had nothing on this.

Flatpak and native installs have the same problem, reinstallation does nothing, steam --reset does nothing.

These issues occur across multiple games with different engines.

It's very strange since I have a very generic system and most people seem to have great experiences.

View original on lemdro.id
66

Photon v2.2.0

It is recommended to install this update as soon as possible, it contains important security fixes.

What's Changed

  • feat: add piefed polls and events
    • only supported on piefed v1.4.0 which isn't out yet
  • feat: add piefed user notes
    • ditto
  • feat: auto-detect server software type in login form
  • impr: optimize theme css handling, decrease stylesheet size
  • design: revolutionize modal animations by making them zoom out instead of zoom in
  • feat: add a share target to the PWA
    • you can share a link with the app. it won't start a discussion with you unfortunately, instead it'll automatically convert the link to a photon compatible link (so you can open lemmy posts in the app)
  • misc: enable sourcemaps in production for Transparency™
    • no security risk. in fact it improves security because you can see if the source code matches the actual photon source
  • performance: optimize the virtualizer resizeobserver
  • design: use EntityHeaders for instance and community cards
  • design: make toasts look anywhere between 0% and 200% better
  • design: improve the comment context UI, showing a +x more button and an all comments button
  • fix: loading logo not appearing on firefox
  • fix: separate password lengths on piefed and lemmy
  • fix: make PostListShell parameters reactive to fix stubborn sorting
  • impr: various behind-the-scenes improvements in codebase
  • misc: make postbody collapse/expand button sticky so you dont have to scroll toe the bottom
  • fix: moderation report id collisions

Full Changelog: https://github.com/Xyphyn/photon/compare/v2.1.1...v2.2.0

View original on lemdro.id
17

Photon v2.1.1

What's Changed

  • design: make media embeds not look like garbage
  • design: make error containers not look awful
  • design: make big community cards not look awful (and make them fully clickable)
  • fix: photon accidentally took inspiration from every article site ever and would autoplay videos from posts when you navigated. this was fixed
  • fix: a poor, alone button was in the command palette. i joined it with the other ones so that you can actually navigate with arrow keys and it looks better
    • it also got a friend, an option to search communities.
  • fix: i made a workaround for a svelte bug (i think). somehow, it would render an {#if} branch even if the condition was false, specifically if you had a dynamic component anywhere. this caused post feeds to have stale data when switching accounts.
  • fix: automatically strip leading https:// from the login prompt, for people who interpret "server domain" as the full fwicking url
  • fix: CommentItem had a shadow when it shouldn't've (that's a word?)
  • fix: when you went to edit your post, it would crash. i fixed

Full Changelog: https://github.com/Xyphyn/photon/compare/v2.1.0...v2.1.1

View original on lemdro.id
9