Photon

273 readers
9 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 10 months ago
MODERATORS
1
18
submitted 3 weeks ago* (last edited 2 weeks ago) by Xylight@lemdro.id to c/photon@lemdro.id
 
 

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.)

2
18
submitted 5 months ago* (last edited 5 months ago) by Xylight@lemdro.id to c/photon@lemdro.id
 
 

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.
3
 
 

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.

4
5
submitted 2 weeks ago* (last edited 2 weeks ago) by poVoq to c/photon@lemdro.id
 
 

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.

5
 
 

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

6
 
 

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?

7
8
Replace lemmy-ui (buddyverse.one)
submitted 1 month ago* (last edited 1 month ago) by mitexleo@buddyverse.one to c/photon@lemdro.id
 
 

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

8
31
submitted 1 month ago* (last edited 1 month ago) by Xylight@lemdro.id to c/photon@lemdro.id
 
 

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"}}
9
 
 

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.

10
 
 

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.

11
 
 

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 
12
 
 

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.

13
 
 

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.

14
20
submitted 2 months ago* (last edited 2 months ago) by Xylight@lemdro.id to c/photon@lemdro.id
 
 

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)
15
 
 

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
16
 
 

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?

17
17
submitted 3 months ago* (last edited 3 months ago) by Xylight@lemm.ee to c/photon@lemdro.id
 
 

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?

18
 
 

I just wanted to say thanks to all the translators of photon! Even if you only changed 1 word, translating this large app is not easy, especially because it's hard to find the context for certain actions.

With all of your help, Photon is now available in 13 languages!

English, Hebrew, Bulgarian, Estonian, Finnish, French, German, Japanese, Dutch, Polish, Chinese, and Portuguese!

If you want to help translate, you can do so at https://weblate.xylight.dev. You can translate as little or as much as you want!

19
 
 

Photon has a feature on links which gets data from Media Bias Fact Check to determine its media bias. However, I've seen controversy on lemmy.world's bot with this, and I'm not sure if this is the best place to get the data from.

Should I use a different dataset? like allsides'?

20
20
submitted 3 months ago* (last edited 3 months ago) by Xylight@lemm.ee to c/photon@lemdro.id
 
 

A lot of admins trying to host photon have been unable to after i switched from Node to Bun server. Bun is a newer server that is significantly faster, but it seems to have caused issues when hosting for weird reasons when people try to host it.

Starting from v1.31.2, I will publish node images as well as bun images, it's very simple to access:

Instead of ghcr.io/xyphyn/photon:tag, do ghcr.io/xyphyn/photon:tag-node

21
 
 

cross-posted from: https://lemmy.world/post/18159531

UPDATE! Fewer than 15% of Lemmy Apps display posts accurately

Updated! Updates are shown in quote text like this.

An Apps Experiment

Introduction

This is an experiment I performed out of curiosity, and I have a few big disclaimers at the bottom. Basically, I've seen a lot of comments recently about one app or another not displaying something right. Lemmy has been around for a while now and can no longer be considered an experimental platform.

Lemmy and the apps that people use to access the platform have become an important part of people’s lives. Whether you are checking the app weekly or daily, and whether you use it to stay up on the news or to stay connected to your hobby, it’s important that it works. I hope that this helps people to see the extent of the challenge, and encourages developers to improve their apps, too.

How I did it

I wanted to investigate objectively how accurately each app displays text of posts and comments using the standard Lemmy markdown. Markdown is a standard part of the Lemmy platform, but not all apps handle it the same. It is basically what gives text useful formatting.

I used the latest release of each app, but did not include pre-releases. I only included apps that have released an update in the last 6 months, which should include most apps in active development. ~~I was unable to test iOS-exclusive apps, so they are not included either. In all, 16 apps met the inclusion criteria.~~

I also added Eternity, which is in active development, although it has not had a recent update. I was able to include several iOS apps thanks to testing from @jordanlund@lemmy.world – Thanks, Jordan! This made for 21 apps that were tested.

Each app was rated in 5 categories: Text, Format, Spoilers, Links, and Images. I chose these mostly based on the wonderful Markdown Guide from @marvin@sffa.community, which was posted about a year ago in !meta@sffa.community (here).

I checked whether each app correctly displayed each category, then took the overall average. Each category was weighted equally. Text includes italic, bold, strong, strikethrough, superscript, and subscript. Format includes block quotes, lists, code (block and inline), tables, and dividers. Spoilers includes display of hidden, expandable spoilers. Links includes external links, username links, and community links. Images included embedded images, image references, and inline images.

Thanks to input from others, I also added a test to see if lemmy hyperlinks opened in-app. There was a problem with using the SFFA Community Guide that caused some apps to be essentially penalized twice because there was formatting inside formatting, so I created this TEST POST to more clearly and fairly measure each app.

In each case, I checked whether the display was correct based on the rules for Lemmy Markdown, and consistent with the author’s intent. In cases where the app recognized the tag correctly but did not display it accurately, that was treated as a fail.

Results

Out of a possible perfect 10, only 3 apps displayed all markdown correctly:

Jerboa (Official Android client) - 10.0

Alexandrite - 10.0

Voyager - 10.0

Summit - 9.7

Photon - 9.3

Arctic - 9.3 (pending)

Interstellar - 9.1

Lemmy-UI - 9.0

Thunder - 8.9

Tesseract - 8.6

Quiblr - 8.1

mlmym - 8.0

Lemmios - 8.0 (pending)

Mlem - 7.5 (pending)

Boost - 7.3

Eternity - 7.0

Sync - 6.9

Connect - 6.7

Lemmynade - 6.1

Avelon - 5.7 (pending)

More details of testing here

Disclaimers

Disclaimers

I Love Lemmy Apps (and their devs)

Lemmy apps devs work very hard, and invest a lot in the platform. Lemmy is better because they are doing the work that they do. Like, a LOT better. Everyone who uses the platform has to access it through one app or another. Apps are the face of the entire platform. Whether an app is a FOSS passion project, underwritten by a grant, or generating income through sales or ads, no one is getting rich by making their app. It is for the benefit of the community.

This is not meant to be a rating of the quality or functionality of any app. An app may have a high rating here but be missing other features that users want, or users may love an app that has a lower rating. This is just about how well apps handle markdown.

This is pretty unscientific

You’ll see my methodology above. I’m not a scientist. There is probably a much better way to do this, and I probably have biases in terms of how I went about it. I think it’s interesting and probably has some valuable information. If you think it’s interesting, let me know. If you think of a better way, PM me and I’d be happy to share what I have so you don’t have to start from scratch.

My only goal is to help the community

I do think that accurately displaying markdown should be a standard expectation of a finished app. I hope that devs use this as an opportunity to shore up the areas that are lagging, and that they have a set of standards to aim for.

~~I don’t have any Apple things~~

~~Sorry. This is just Android and Web review. If someone would like to see how iOS apps are doing, please reach out and I’ll share how we can work together to include them.~~

22
 
 

Photon, on mobile browser, seems to “snap” to the beginning of each post when scrolling. Is there a way to turn this feature off?

23
 
 

When I changed the default theme I saw someone say I should name the classic theme "AMOLED". Apparently, the theme was so dark to a lot of people that it appeared black! I guess my designer's eye and working on photon for over a year made me not notice this.

The classic theme uses a very dark gray for the main background, and an even darker gray for the sides. There was never any black, except in very very early versions of Photon.

24
 
 

So I'm looking for a new client, specifically mobile, that's FOSS, easy to use, allows for browsing communities on other instances easily (not just searching for instances, but actually viewing the list of instances, etc).

I'm a dev, so happy to put some legwork into it myself. So my question is - technically, is the UI tied to being run on an instance "directly", or could it be detached, electron- or atom-ified and put into an app?

I can do the work, but before starting I'd like to know :⁠-⁠)

25
16
Photon Gray Dark [theme] (lemmy.kde.social)
submitted 3 months ago* (last edited 2 months ago) by sevon@lemmy.kde.social to c/photon@lemdro.id
 
 

EDIT: This is now integrated to Photon as the Neutral theme.

I did this a while ago, when theming was first introduced. I wanted a dark theme that wasn't black, and also not tinted.

{"other":{"black":"#000000","white":"#ffffff"},"primary":{},"zinc":{"700":"#484e57","800":"#373b41","900":"#282a2e","925":"#202225","950":"#1d1f21"},"slate":{}}
view more: next ›