Photon

355 readers
2 users here now

Photon for Lemmy

A client for the fediverse designed to be intuitive, fast, and beautiful.

Share your themes, ask questions, report bugs, or check on the latest updates here!

You can contact the dev at @Xylight@lemdro.id.

Rules

  1. Posts must be related to Photon in any way
  2. Don't be mean
  3. If your post is a bug report, please preface the title with [solved] if it's been fixed.

founded 1 year ago
MODERATORS
1
 
 

So the overall layout won't change, and if you're using default navigation settings, you'll barely notice any difference.

Instances using Photon with SSR have rightfully complained that there's a layout shift between server load and hydration. This happens because the current navbar's position isn't determined by CSS, but by calculations in JavaScript. This is pretty messy and bad.

I rewrote it to be CSS based so that this shift won't happen, and it also simplifies the code quite a lot. However, there's one downside, you won't be able to manually customize the position: the navbar will be a top panel on desktop, and a bottom dock on mobile.

One new feature in this is that on mobile, the bottom dock will hide when you scroll down and re-appear when you scroll up at all. You can disable that in settings.

I consider Photon an opinionated client (of my opinion), but I also want to make sure this isn't a dealbreaker for anyone.

Github Link

Preview URL

2
28
submitted 2 weeks ago* (last edited 2 weeks ago) by Xylight to c/photon
 
 

The Svelte 5 migration has progressed enough that I think it's safe to release betas now.

Docker tags are released for 2.0.0-beta.2, and you can access the latest beta yourself at https://svelte-5.photon-8na.pages.dev/.

I've made a few UX changes to match the new codebase, I hope that this release is good for you.

Please let me know of any major issues.

Issues I've noticed (I will fix as soon as I am available:

  • Post mutations don't save when you navigate, when you go back, they are reverted.
3
21
Translators wanted! (self.photon)
submitted 8 months ago* (last edited 8 months ago) by Xylight to c/photon
 
 

Photon has been fully localized and you can translate it to your native language now! (will not be released until v1.30)

You can help translate at the Weblate

If you need help, you can join Photon Translators Matrix room.

Ask for as many clarifications as you need.

Requirements

  • Be fluent in the language you're translating to.
  • No Google translate or other translation tools, as they are often inaccurate without context.
4
 
 

The post: https://sh.itjust.works/post/33016821

The spoiler is working on the post page but not the preview from the community feed.

I'm using Firefox desktop with phtn.app

5
 
 

I use Lemmy for bigger news and all that, but sometimes I like to showcase little things I've done in Photon or tweaked. Maybe even hold polls there.

Should I post mini updates there? Lemmy will still be reserved for the big ones.

@photonlemmy@mas.to

6
 
 

Photon I feel is a representation of my general ability to do software development, as it's my biggest project. I'm disappointed in myself for how it's been going so far suddenly.

I go through these switches in terms of my philosophy with software, and I guess right now I'm in the "it should do what it should well and expectedly, stop trying to do more and sacrifice the main functionality" phase.

I don't like where Photon ended up, I added too many """features""" that were half baked and just complicated the codebase and added more issue vectors. What people use the most: posts and commenting, have been suffering in their usability with random bugs and a non-seamless experience.

I've also been going much too slow on my promises for Svelte 5, and I can't change much until I've finished that or I'll get conflicts. I've been too lazy because of school and my life.

As soon as I finish the svelte 5 migration, I'm gonna change these things:

  • No more features that are out of scope. The "translation", link shortcuts, etc, are going to be removed or gutted.
  • I'm going to switch a lot more systems to be component based, no more one-off buttons and inconsistent interfaces.
  • This app will focus on Lemmy and follow it more closely if it's not bad UX.
  • I will switch to a lot more native systems instead of using cursed JavaScript powered ones. For example, I have to make the dock change via CSS instead of checking and changing dynamically in code.
  • Most pages must work server side, and the entire app must be usable somewhat.
  • I'm still conflicted on whether I should make photon run its authentication logic, etc server side or if that can stay client side.

I still am obligated to continue work on Photon, and I need to fulfill the promises I make. I hope Photon will be better in 2025.

7
 
 

Basically, title. It started happening a few weeks ago. Sometimes it happens right away and freezes the whole DE, more often it happens after scrolling for a while. I know nothing about .js so let me know how I could help diagnose it.

I'm using phtn.app, Firefox 133, Wayland, Fedora 41.

Thanks!

8
9
submitted 2 months ago* (last edited 2 months ago) by Kory@lemmy.ml to c/photon
 
 

Thank you for this beautiful app!

I have a minor issue I cannot seem to resolve - the upvote/downvote count vanishes immediately after reloading the page. I am using Librewolf (that is based on Firefox) and I have tried to disable uBlock Origin entirely but I can't get it to display correctly. Anyone else ran into this and found a solution? Thanks!

Image attached how it looks for me.

EDIT: Thank you for the responses, I'm not entirely sure what I did, but now it's working as intended. I'm very happy about that because Photon rocks!

9
 
 

Hey, I noticed a small visual bug where sort comments button doesn't update after choosing a different selection. The comments still sort just fine, it's just the button that doesn't update.

10
5
submitted 3 months ago* (last edited 3 months ago) by poVoq@slrpnk.net to c/photon
 
 

It seems like contrary to Lemmy-UI, Photon does not display the user supplied post language anywhere and also has no way to set the post language in the UI. Nor does it have the profile setting to set language visibility.

I generally think that this feature in Lemmy-ui causes more harm than good due to the various ways in which people accidentally deselect "undetermined" as a language option, or how community mods accidentally prevent people from posting due to strict language restrictions... and a bunch of other related bugs that caused me to abandon this feature.

But having no representation at all seems like a bad idea given so much of Lemmy uses that feature and it also seems like Photon does hide wrongly language tagged posts if people misconfigure their profile settings in Lemmy-ui?

I can't confirm the latter, but this report https://slrpnk.net/post/14769073 sounds a lot like that is what is happening.

11
21
Svelte 5 migration (self.photon)
submitted 3 months ago* (last edited 2 weeks ago) by Xylight to c/photon
 
 

Approximately 70% complete

Photon uses Svelte.js as the main JS framework for the UI. Photon uses Svelte 4 currently, but Svelte 5 was released and has a lot of benefits for the codebase. It's also a lot faster.

However, the paradigm for Svelte 5 is a lot different and almost the entirety of Photon might have to be rewritten.

Luckily, there's a migration tool that can do a lot of the work for me. However, I've still got to fix about 3,000 lines of code and 70 different files to work properly with Svelte 5. There's also gonna be a lot of hidden bugs I'll need to fix.

Because of this, I won't work on any new features for the next month or so, so that I can get this as done as fast as possible.

Generally you won't notice much other than slight behavior changes due to minor code structure changes, or maybe a bug or two.

Once I'm finished, I'll make another announcement and you might notice photon feeling a bit faster!

Once it's been confirmed stable I'll release docker images.

You can see my progress here

Other notes

Browser support drops

Very old browsers probably might break. I'm talking Internet Explorer (although I'm pretty sure that was already broken. I don't care if Photon doesn't work on IE.)

12
 
 

I usually don't like orange/brown themes but I think this one's cozy. I decided to make it for the autumn season.

{"slate":{"25":"255 248 240","50":"253 244 232","100":"251 236 221","200":"246 220 198","300":"240 195 165","400":"219 162 122","500":"196 133 89","600":"133 108 89","700":"89 72 59","800":"66 54 44","900":"44 36 29","950":"33 27 22"},"zinc":{"50":"255 243 230","100":"250 228 207","300":"227 186 156","400":"204 144 105","500":"181 102 54","600":"120 96 79","700":"82 66 54","800":"61 49 40","900":"41 33 27","925":"33 26 22","950":"25 20 16"},"primary":{"100":"255 245 235","900":"122 48 0"},"other":{"black":"25 20 16","white":"255 252 248"}}

To import, go to Main menu > Themes > Click the + to make a new theme > Import > Paste and import

13
10
submitted 4 months ago by Xylight to c/photon
 
 

I used to ask these a lot during Photon's early development, but I decided to do one now.

Are there any major features you'd like added or issues you'd want fixed?

14
9
Replace lemmy-ui (buddyverse.one)
submitted 4 months ago* (last edited 4 months ago) by mitexleo@buddyverse.one to c/photon
 
 

Hi,

I want to replace lemmy-ui with photon. How can I actually do this? Do I need to just install it using docker and reverse proxy to the port? Is there any docker compose method? Where can I set the environment variables?

TIA

15
33
submitted 4 months ago* (last edited 4 months ago) by Xylight to c/photon
 
 

Saw people on slrpnk.net were looking for a photon theme so I decided to make one. I'm not necessarily expecting this to be used at slrpnk.net, but I like the theme so I'll be using it. It has a nice light theme too.

It's pretty similar to a recent post for a "wintergreen" theme, this one is less saturated.

{"slate":{"25":"245 248 247","50":"235 242 241","100":"225 236 235","200":"205 218 222","300":"185 200 209","400":"155 172 186","500":"125 144 163","600":"95 116 140","700":"75 98 122","800":"55 80 104","900":"35 62 86","950":"25 44 68"},"zinc":{"50":"245 248 248","100":"220 235 233","200":"185 214 210","300":"143 185 182","400":"103 154 151","500":"77 127 125","600":"60 101 100","700":"51 82 82","800":"44 66 67","900":"35 51 51","925":"27 41 41","950":"20 31 32"},"primary":{"100":"180 200 199","900":"30 65 64"},"other":{"black":"20 20 30","white":"245 248 247"}}
16
9
submitted 4 months ago by Xylight to c/photon
 
 

I'd like to learn about the community that uses Photon, so I've decided to make a survey! You can answer it if you like. In about a week I'll collect the responses and see if anything's interesting, and then I'll make a post showing any discoveries.

The survey just has a few questions about demographics, Lemmy usage, and knowledge of Photon's features.

17
 
 

this security issue can only be triggered by users fault, but it's up to the UI designer to prevent user mistakes causing potential credential leaks.

The login page

The login page is designed to be as simple as possible. Only 1 page, no extra steps. It'll validate whatever instance url you type in to ensure it's actually a Lemmy instance.

The problem

If the user mistypes the instance url to a typo squatting instance, your credentials were just sent straight to them. Bad. For example, I could setup an instance named lemmu.world, and if someone accidentally mistypes lemmy.world as that, I get their credentials for free.

Potential solutions

I'm not sure which one would be best as they all have problems.

  • Require you to type the instance before you can start typing your credentials.
    • This complicates things and adds an extra step. This also wouldn't completely solve the problem.
  • Add an auto complete list
    • This will work for popular instances as they'll know that they have the wrong url because it disappeared from the auto complete. However, I'd need to keep this list updated and id prefer photon to have minimal external ties. This also wouldn't work for small instances.
  • Add typo checking
    • This has the same problem as above as I'd need to keep common misspellings updated and I want photon to have minimal external ties.

Any ideas? For now, this isn't a problem as long as you double check the instance you're logging in with, and there's no cases of this AFAIK.

18
 
 

TL;DR

Vercel has been a PITA for a few reasons I won't go into, and I eventually reached a usage limit that made the site unusuable. Cloudflare pages has no usage limits, so I have switched to that. Nothing different should be noticable, except that initial loads might be slightly faster.

if you don't like cloudflare

I understand lots of people dislike cloudflare, so if you want to get away from it, here are some publicly hosted instances:

Instance Location Contact
phtn.app (Official) ๐Ÿ‡บ๐Ÿ‡ธ US West photon@xylight.dev
photon.thesanewriter.com ๐Ÿ‡บ๐Ÿ‡ธ US East thesanewriter@lemmy.thesanewriter.com
p.darrennathanael.com ๐Ÿ‡ฎ๐Ÿ‡ฉ ID West noc@darrennathanael.com
phtn.ngn.tf ๐Ÿ‡น๐Ÿ‡ท Turkey services@ngn.tf
lm.sudovanilla.org ๐Ÿ‡บ๐Ÿ‡ธ US East hello@sudovanilla.org (behind 1 version)

You can also selfhost it if you'd like.

git clone https://github.com/Xyphyn/photon
cd photon
npm install && ADAPTER=node npm run build
node ./build/index.js 
19
 
 

Just a few moments ago learned about phtn.app, as I was using photon.lemmy.world. I'm trying to use it with KDE's Falkon web browser, my daily web browser in desktop, which is based on chromium (though as far as I know it's not cutting edge chromium).

photon.lemmy.world works just fine, but I don't get to pick spanish from the available languages - while in phtn.app is there (I used Firefox's web browser to check it and learn there's quite a few differences between phtn.app and photon.lemmy.world).

The thing is that phtn.app stucks on the loading screen (the circle spinner) with Falkon. Not sure if it's Falkon being funky or there's something that could be done on phtn.app. All I can see in the web inspector is the following:

Not wanting to pull Firefox/Chrome/whatever and all their dependencies just for this, so I'd like to know if this can be addressed in phtn.app's side.

20
 
 

I don't see how I can do that. There is no way to access the sidebar that's visible on desktop when I'm on mobile.

21
21
submitted 5 months ago* (last edited 5 months ago) by Xylight to c/photon
 
 

On phtn.app I can give all translators of Photon a badge, here's how it looks on @Blisterexe@lemmy.zip (the French translator!)

If you want this and you translated the app, just add a comment and I'll try to verify your contributions. Then I'll add it to phtn.app. I can add and remove this at any time, and this will only appear on phtn.app.

To get the badge, you must have

  • Validly translated at least 30 strings of any language (other than English)
  • Proof that you are the contributor on weblate (using the same username on both should be enough)
22
 
 

verification for lemmy apps: LemmyApps/#2

cross-posted from: https://lemm.ee/post/39906482

There was like 8 prereleases for this because i kept changing stuff. This is actually going to be from v1.31.1 and v1.31.2.

Biggest changes

Command palette

  • Press / or ctrl + p and start typing to instantly go to a page, switch themes, switch accounts, etc.

Theming changes

  • You can now have multiple presets for themes, and there are 5 default presets. (Default, Classic, AMOLED, Catppuccin, Lightly)
  • Admins can set their own default theme for photon with PUBLIC_THEME.

New markdown renderer

  • Photon now uses svelte-markdown for markdown rendering, which lets me use custom components for markdown.
  • Instead of only style changes, I can run actual code, meaning images can be made expandable and codeblocks can be copyable.

Lots of languages

  • There are a ton of languages thanks to the community.
  • English
  • Hebrew
  • Bulgarian
  • Chinese
  • Dutch
  • Estonian
  • Finnish
  • French
  • German
  • Japanese
  • Polish
  • Portuguese

Minor features

  • New "link actions" menu
    • This will have options for archive sites to bypass paywalls, etc.
    • Media bias action was moved next to here, or in here depending on your selected post style.
  • Allow uploading multiple images at a time
  • Select menus use my own components now, making them more powerful
  • Add infinite scroll to communities too
  • Add uploaded media/voted posts in your profile page
  • Using my own service worker now, so caches should work properly

Other stuff

  • Use sharper icons for readability
23
 
 

The readme talks about docker. Iโ€™m not a docker user. I did a git clone when I was on a decent connection. ATM Iโ€™m not on a decent connection. The releases page lacks file sizes. And MS Github conceals the size:

curl -LI 'https://github.com/Xyphyn/photon/archive/refs/tags/v1.31.2-fix.1.tar.gz' | grep -i 'content-length'

output:

content-length: 0

So instead of fetching the tarball of unknown size, I need to know how to build either the app or the tarball from the cloned repo. Is that documented anywhere?

24
9
submitted 6 months ago* (last edited 6 months ago) by amphibian@hexbear.net to c/photon
 
 

There is also a light theme available, but I never use light themes ever so I have no idea if it looks okay. But it's there if you want to try it! If someone wants to help with the light theme feel welcome to. Thank you Photon devs for all the hard work you put into this beautiful interface!

Use the theme:

{"slate":{"25":"255 255 255","50":"228 255 250","100":"179 255 244","200":"148 243 230","300":"120 215 202","400":"91 187 175","500":"91 187 175","600":"61 160 149","700":"22 133 123","800":"0 106 94","900":"0 80 73","950":"0 32 29"},"zinc":{"50":"228 255 250","100":"179 255 244","300":"148 243 230","400":"120 215 202","500":"91 187 175","600":"61 160 149","700":"22 133 123","800":"0 106 94","900":"0 80 73","925":"0 55 50","950":"0 32 29"},"primary":{"100":"228 255 250","900":"0 80 73"},"other":{"black":"0 0 0","white":"255 255 255"}}
25
17
submitted 6 months ago* (last edited 6 months ago) by Xylight@lemm.ee to c/photon
 
 

I've been messed around with random features in photon, and i tried something stupid today.

I was experimenting with an AI post summary feature, (just because i wanted an excuse to make a cool animation) but as I was using it, it actually ended up kind of useful.

If I were to implement this feature, it would only work like this:

  • The user would have to opt-in manually.
  • The user would need to specify what AI service they wish to use.
  • The user would have to specify their own API key, if the service requires one.

In the end, I probably won't add this, since you can just copy/paste the content into an AI app. But it could also be slightly more convenient.

What do you think?

view more: next โ€บ