Xylight

joined 3 years ago
MODERATOR OF
17
submitted 1 day ago* (last edited 1 day ago) by Xylight to c/photon
 

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.

[–] Xylight 2 points 2 days ago

The only web client that doesn't use JavaScript is mlmym. the modern slopware on the web where websites pump 5 MB of scripts straight to your browser is insanity, but JavaScript can also make websites much much nicer to use (routers that don't require full page reload).

[–] Xylight 3 points 4 days ago (1 children)

Photon's Lemmy V1 compatibility is actually pretty much complete with a lot of technical improvements as well, I'm kinda hoping the Lemmy devs release Lemmy v1 soon as I don't really want to make a lemmy v0.x adapter

[–] Xylight 32 points 5 days ago (1 children)

it's not my job to moderate the fediverse, you won't need to worry about seeing any of this in photon

[–] Xylight 1 points 1 week ago (2 children)

It's a 50/50 whether it lets me view it or not

[–] Xylight 4 points 1 week ago (6 children)

They really need to add a way to view mod removed posts

[–] Xylight 7 points 1 week ago

it actually isnt intentional that it works fine, it's some miracle of how i split the instance name and the username in markup. i was a little disappointed that nothing funny happened when i added that initially

[–] Xylight 4 points 1 week ago

There's probably some restrictions because I tried making an instance that had a user with a completely empty username and it didn't federate.

[–] Xylight 19 points 1 week ago (1 children)

that mentality is one reason websites spam JavaScript today, because native features of the markup language were being added too slow

[–] Xylight 25 points 1 week ago (1 children)

i do remember doing that a long time ago

[–] Xylight 56 points 1 week ago

MDN does, not my decision

 
[–] Xylight 8 points 1 week ago (2 children)

The situation is pretty confusing, but you're still gonna be able to side load unverified apps. The "advanced flow" that makes sideloading obnoxious to do is specifically for unverified apps, whereas verified apps (where devs have to fork up their ID to google) can be installed without any hassle.

[–] Xylight 7 points 1 week ago (5 children)

You can still sideload apps. While the change is ridiculous, you still can sideload apps. They just make it significantly more painful to enable sideloading.

16
Photon v2.3.0 (self.photon)
submitted 5 months ago by Xylight to c/photon
 

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

16
submitted 5 months ago* (last edited 5 months ago) by Xylight to c/softwaregore@lemmy.world
 

Being grayed out means nothing

 

Looks to be 35b MoE and 9b dense

9
photon image proxy (self.photon)
submitted 5 months ago by Xylight to c/photon
 

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
67
Add a post title (f004.backblazeb2.com)
34
Merry Christmas (self.justpost)
19
Photon v2.2.2 (self.photon)
submitted 7 months ago by Xylight to c/photon
 
  • 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

8
submitted 7 months ago* (last edited 7 months ago) by Xylight to c/webdev@programming.dev
 

How do browser reading modes determine what is the main page content? They use different approaches and there’s no defined standard.

66
submitted 8 months ago* (last edited 8 months ago) by Xylight to c/linux_gaming@lemmy.world
 

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.

103
submitted 8 months ago* (last edited 8 months ago) by Xylight to c/lemmyapps@lemmy.world
 

Curious on the usage statistics.

Should I make a full survey asking about granularity so that app devs can see what to focus on?

view more: next ›