1
 
 

Thank you to everyone who participated in this post and shared your thoughts about how to handle apps produced with LLM technology.

Any project posted here will now require an AI disclosure if any ML/LLM technology was used in any way in the development:

  • Please include [AI] or [AI Assisted] as a tag at the end of your post title when sharing or discussing the project.
  • In the post body, please include in what way AI was used, e.g.:
AI disclosure:
design: none
implementation: assist
testing: copilot
documentation: auto
review: pair
deployment: hint

Please consult ai-declaration.md for details how to apply about these categories. If you are posting about an app, but are not the developer, you should include the most complete information available, e.g.: " This repository lists Copilot as a contributor." or " This app shows signs of AI development such as..."

Why not ban AI entirely?There were a few comments that called for an outright ban on any apps that were built in part or whole with LLMs. It was not a clear consensus. Furthermore, I don't personally see how that would be feasible. Consider the following situations:

  • A dev uses an AI search tool to look up information related to the project that is incorporated into the project
  • A dev uses an AI tool to translate between languages
  • A dev creates all of the code from their brain without any use of an LLM, but uses an LLM for the project description/readme page
  • A dev used a modern code review to identify errors
  • A dev used AI to create icons or other assets for human written code
  • A dev incorporates code from another project, which used LLM tools in one or more of these ways
  • Etc.

I'm not sure which if any of these situations would lead to an app being banned from this community, or how to best navigate cases like this. Please DM me or reply here if you have a solution and would like to be in charge of implementing it as a moderator in this community.

2
 
 

I've recently had a request for tagging or adding a rule about tagging AI-generated and AI-assisted software.

Different communities have handled this differently, for example this decision after significant discussion by the selfhosted community.

What do you think? Would you like to see similar policy here? Something simpler that just shows whether something was produced primarily/significantly with AI, or something else entirely?

3
 
 

Hello everyone. A few days ago, I introduced a new client app here, but due to some concerns about keeping the source code closed and the whole vibe coding thing, it wasn’t exactly well received lol. So today, I’ve decided to open-source it. You can now take a look at the source code yourselves. Hopefully you’ll like it!

Link: https://github.com/datbadaisi/lemonade

Edit: Note: As far as I remember, most of the app was built with Grok 4.5 through Grok Builder. I occasionally used Codex when I ran into difficulties.

4
 
 

Hi there.

I am looking for either a lemmy.world front-end or some sort of web app that I can use that has keyboard navigation.

I have tried "Alternative UI's" that are provided on the front page, but none of them has keyboard navigation and I have looked through lemmyapps.com and none of the web apps there have it.

I have been using Alexandrite which is the type of UI that I am looking for.

I would prefer if it's not a mobile-first web app like Voyager.

If push comes to shove, I could use a userscript to try and force it in,

TIA

5
 
 

Hello everyone! Today, I'd like to introduce a new Lemmy client I've been working on.

I designed the app with a clean and simple interface in mind. For the overall layout, I took a lot of inspiration from the Reddit app, lol. Due to some circumstances, the app is currently only available on Android. I hope you guys will like it!

Link: https://play.google.com/store/apps/details?id=com.thezello.lemonade

P.S. I named the app Lemonade because I really like lemonade too, lol.

6
Hide post button (lemmy.world)
submitted 2 months ago by to c/lemmyapps@lemmy.world
 
 

Is there a reason why there is no "Hide post" button on the UI ? I prompted one using multiple AI (script for Violentmonkey) that works fine but I was wondering why cant we have one like Reddit has ? I'm not a fan of using the 3 dots menu everytime.

7
 
 

I kept getting annoyed with lemmy clients being confusing, hard to navigate, or just plain ugly. So I did my best to create a web app that now I use every day. It kind of works like Tinder, you swipe right to up vote, left to down vote, and swipe down to just mark as read. I actually designed it that way because I did a hell of a lot of research on different theories as to how we should treat voting sites like Lemmy or Reddit. I realized that the endless feed actually caused me to engage less. Mostly because I wouldn’t really take the time to consider each post. Coincidentally I actually feel more engaged because of this swipe interaction that Tinder uses, making a decision for each post. Marking as read or swiping down means “it’s not my cup of tea, but it’s allowed”. Swipe left is “this is not okay/spam”. And swipe right is “I think this needs more attention”. Anyways, thought I would share the public link, as per usual, you can log into whatever instance you have. I also gave it a slightly esoteric name and a cool logo based on cave art of human hands. (And also hid a bonus matrix rain theme in the settings).

8
 
 

I am trying to test a federation issue, but other than mlem what apps can you paste a post or comment url into the search and find that post or comment?

9
submitted 2 months ago by to c/lemmyapps@lemmy.world
 
 

Hi,

A little while back we introduced old.retrolemmy.com. This is not really interesting on its own, but I wondered if we could also get it running on Retrofed. And this was successful by way of a proxy. The cool side effect the proxy had is that lemmy-only apps now also work if you enter old.retrofed.com in your preferred app.

This made the idea of preservation come up, and @Die4Ever@retrolemmy.com wondered if the proxy could be modified to also work on lemmybb and translate to older API versions. And after a while I got forum.retrolemmy.com to work with lemmybb - an old software for lemmy last updated 3 years ago - that makes the fediverse look and work like an old phpbb forum of older days. Most functions are working and functioning as intended, but there can still be some bugs here and there. Some we could probably fix, but some can also be attributed to the older software and it's quirks.

If you notice any bugs, you can message me, or reply here.

Also, this project got pretty big, but if you want to use it yourself, its at Github. It has full 0.17, limited 0.18 and full 0.19 support for the frontend, and lemmy(current) or piefed for the backend.

This thread is posted via forum.retrolemmy.com

Edit: Known limitations:

  • No 2fa. As this was only added in lemmy version 0.18.x
  • No last reply date/time. This can be enabled, but will call a ton of API calls for every page load, making the site unusable.

If you want to better interact with people that are using LemmyBB, remember to occasionally sort your front page by "New Comments" (in PieFed it's just called "Active"). Otherwise the BB users might start bumping threads without other people knowing :(

10
App for Lemmy (sopuli.xyz)
submitted 5 months ago by to c/lemmyapps@lemmy.world
 
 

Development is a difficult work ik. But I was hoping that we could have a good looking app. I recently came across an app called Anisync which looks amazing

11
 
 

Note: Apologies for duplicate posts; not sure what happened there. I went back and deleted two of them, but if that doesn't federate, please feel free to remove them.

1.5.0

This version is nearly a year in the making, and I'm glad to finally have it out the door.

Major Goals Achieved in this Version

  1. Give the entire UI a nice overhaul, move more things into reusable components, and generally polish everything up.
  2. Reduce memory waste by not storing unnecessary/redundant data in components
  3. Fix as many longstanding bugs and feature omissions as possible.
  4. Provide additional capabilities for mods and admins
  5. Give users more control over the content they see.
  6. Increase the health and safety of the overall platform
  7. Provide a better "default" experience, especially for new and guest users.

Get Tesseract

Screenshots

Screenshots

New Instance Selector

Settings, Filter Policies, Community Groups, and User Tagging

Media Browser

Language Selector and Ability to Browse and Insert Media You've Already Uploaded

New Community Group Manager

Deployment Notes for Admins and Self-Hosters

"Lock to Instance" is No Longer Implicit

In prior releases, locking Tesseract to the configured instance was the default behavior. I asked if this was intentional or just because no one ever strays from the default settings, but absolutely no one replied to that post, so I just made the decision myself.

Now, unless configured otherwise, Tesseract will allow adding accounts from any instance. This is to allow people to easily switch between alts on different instances without having to use a 3rd party hosted version of Tesseract.

If you wish to lock Tesseract to just the configured instance, you MUST set the environment variable to do so:

PUBLIC_LOCK_TO_INSTANCE=true


NSFW Communities are Hidden by Default

By default, NSFW communities (not NSFW posts) are hidden (unless you are an admin a mod).

Users can go to Settings -> Filters -> Communities and uncheck the options to filter/hide those.

If you want to override this behavior, for example, if you're running a dedicated NSFW instance, you may do so by adding the following two environment variables:

  • PUBLIC_FILTER_NSFW_COMMUNITIES_BY_DEFAULT=false
  • PUBLIC_HIDE_NSFW_COMMUNITIES_BY_DEFAULT=false

If you want them filtered but not hidden by default, only set PUBLIC_HIDE_NSFW_COMMUNITIES_BY_DEFAULT to false. If you want them fully visible by default, set both to false

This only changes the default settings for new users; existing profiles will keep whatever their current settings are.


Increased Calls to /api/v3/modlog

At minimum, you will see a 4x increase in the number of calls to /api/v3/modlog.

Don't panic! That behavior is, counter-intuitively, intentional. However, if you have restrictive rate limits, you may need to account for this (I've tested on several different instances and have not had any problems).

Why? It is currently faster and less resource intensive to make four scoped requests to getModlog than it is to request the full modlog in one call. Additionally, old and irrelevant actions that aren't performed frequently (transfer community, add/remove mod, etc) are not cluttering up the modlog results.

On average, and tested against multiple instances, this seems to be about 40% faster than requesting the full modlog in one go.

By default, the modlog now only looks up the following actions (and their opposites):

  • Ban Instance
  • Ban Community
  • Remove Post
  • Remove Comment

Those are the most frequently needed calls, and when the modlog loads, it does 4 simultaneous requests scoped to each of those actions.

If you need the full results, there is an option on the modlog page to switch to searching it in full which will use the "classic" behavior. Additionally, if you are only interested in a specific action type, selecting that action will scope the modlog lookup accordingly without having to do a full query.


Bugfixes

Note that the bugfixes mentioned here are only ones that didn't involve a rewrite of the underlying components. Lots of other bugs were fixed in the process of refactoring and re-implementing (and probably new bugs created :sigh:)

  • Performance optimizations: Some sub-components that made up the Post component still had full embedded modals inside rather than triggering the system modals to open and load the data on-demand. Moving these integrated modals out reduced CPU and memory consumption. Additionally, redundant and/or usless data in community, user, post and comment items (such as full copies of the community sidebar, redundant Person info, etc) are discarded before rendering components.

  • "Scroll to Top" in footer of comment section was not justified correctly.

  • Sometimes when viewing a single comment therad and then clicking "View Full Thread" to load the comments in full, they wouldn't load due to a race condition.

  • Not really a bug, but sometimes when clicking "Load X More..." under a comment that appears to have more replies, a warning would show up that none were returned. This is most often because the next-level reply is by someone you've blocked or has been removed by a moderator. The warning toast message is now more descriptive to indicate this.

  • Feed "jumps" sometimes in Firefox.

    • I thought I had this fixed but started seeing it again. Basically when the infinite scroll buffer fills up, it removes older posts from the beginning of the buffer. Most of the time, this is invisible. Occasionally in FF it would trigger unwanted reactivity and cause the feed position to jump down.
    • Removed that buffer entirely and keep all posts
  • "Limit Comment Height" feature was buggy and didn't always show the expand/collapse button. Just removed this feature since the div height of the comment body isn't reactive enough to make this work reliably.

  • If there was an API error during a mod action from the mod modal, the spinner remained and the button stayed disabled

  • Edit community group modal did not close properly after save or delete

  • "Block User" action in the user profile modal now has a confirmation step.

  • Better error handling in user profile modal when user is not found

  • Fixed weird gap between "Search for Alts" and "Modlog History..." in user profile modal.

  • User Profile Modal and User Feeds: Don't display type/sort selectors, search field, or pagination buttons if user fails to load or is not found

  • Known badge images are now rendered and linked properly without being resized and rendered as a zoomable image.

  • Added support to add "badge" to markdown image syntax to prevent it from being rendered like a regular image

    • ![Alt Text](https://example.com/image.jpg "badge") Which is simiilar to how custom emojis are formatted.
    • Other clients should ignore this
  • "Mark Post as Read on Scroll" feature has been changed. Instead of marking them as read on scroll, it will mark the whole batch as read upon load. If the option to fade read titles is enabled, they will be faded on the next load.

  • The search page was a dumpster fire. Completely re-wrote it.

  • Fixed Loops lookup after the project updated it's web UI (more below in the "Deprecated: Legacy Loops Support").

  • User->Settings->TOTP Setup: Don't generate secret/QR code until modal is opened.

  • Fixed missing loading indicator when denying a registration application.

  • Searching for alts within the user profile modal will now let you tweak the search term and search inline (e.g. to remove trailing numbers, etc)

  • If currently connected instance is down, application no longer fails to load. Also allows you to switch to an alt.

  • Attempted to work around the 300 comment limit bugs 4543 and 5861 but found a new bug in that when switching from max_depth to limit and page, no page number above 10 will work. In theory, that would let Tesseract display up to 500 comments instead of 300, but due to duplicates, the actual number is only a bit larger than the 300 limit used with max_depth. Given the additional complexity of making parallel calls to getComments, merging those results, and error handling each, I've opted to revert back to max_depth and live with the 300 comment limit until it's addressed at the API level.

  • Markdown images are now full-width and height-bound.

  • Squash notification and mark replies and mentions as read if you've voted on them.

  • Badge images (img.shields.io, etc) are attempted to be accounted for and exempted from being turned into standard markdown images.

    • To always have them show unprocessed, add "badge" to the title portion of the image markdown code (similar to how emojis have "emoji" for the title text).
    • e.g. ![](https://example.com/stupid-badge.png "badge")
    • Any image that is the "text" component of a hyperlink will also render unprocessed and should not need the "badge" text (though it wouldn't be a bad idea to include that anyway).
    • e.g. [![](https://example.com/stupid-badge.png)](https://example.com/stats.php)
  • Re-implement MBFC modal using the standard shallow-routing system modals. Re-base modal into system modal container and no longer embed it within the MBFC badge.


Infrastructure

Upgraded NodeJS Runtime

Updated NodeJS runtime from 22 to 25

Breaking Changes

I tried to make the transition and internal migration to the new filter framework as seamless as possible, there is at least one breaking change.

Your filter keywords are now processed as regexes. In most cases, this won't affect you at all. However, if any of your keywords have punctuation marks or any characters that are regex modifiers, then the keywords may not work as expected:

  • It may be invalid when converted to regex. In which case, it will gracefully fail and be skipped.
  • It may compile to a valid regex, but not have the intended effect (e.g. may throw false positives).

After your first load of 1.5.0, your existing community, user, and keyword filters will have been automagically migrated to the new format. You should double check the keyword filters by going to Settings -> Filters -> Keywords and checking for any that use non-alphanumeric characters.

Image Proxy Deprecation Notice

The current image proxy/cache is being deprecated due to piss poor performance under load. It is still as functional as it ever was, but will not receive any further work. If/when it breaks, it will be removed. I am likely going to reimplement it as a separate service that doesn't share the event loop with the main application.

Legacy Loops Support Deprecation Notice

Loops is still supported. However, the Loops project has started providing the correct video tags in the OpenGraph data when looking up the metadata, so the embed video URL is now available by default. The result is that there is no longer a need for a dedicated Loops rendering component since the embed video URL allows it to work correctly with the standard Video render component.

However, for any posts linking to a Loops video prior to that, there is no embed video metadata so the Loops component still needs to lookup the video URL on the fly.

I've updated the metadata lookup API in Teseract to extract the video URL from the newly available OpenGraph tags. Older Loops posts will need to use this. This should be a viable long-term solution assuming they don't disallow remote embeds at some point.

Since Loops now provides the embed video data directly, I'm marking the dedicated Loops component as deprecated and will no longer be maintaining it. It will remain for the foreseeable future so older Loops posts can work, but if it breaks at any point (or if I redo the renderers again), it'll be removed rather than fixed/updated.

The good thing now is that Loops support is no longer limited to the main "loops.video" instance since I no longer need to identify a post as "Loops" in order to fetch the metadata.

"Save Settings to Lemmy" Removed

Previous versions let you abuse the theme field in your profile to store a copy of the Tesseract settings. This was extremely useful, especially to sync settings between devices.

Sadly, all good things must come to an end. That trick is still possible, but with the expansion of the filter policies, the user tagging, and groups now having the ability to attach a filter policy, there is just too much JSON to try to cram into that field.

I'm working on a way to save those to the Tesseract server itself, but it's only at the planning stages at present.

For now, the only way to transfer Tesseract settings is exporting to JSON, copying the export, and importing it to the new device/browser.


New Features

User Tagging

You can now add an arbitrary number of tags to any user. Tags are limited to 25 characters and can also be used with the filter policies explained below.

Tags can be managed from Settings -> Tags


Community Grouping

This feature has existed for a while, but it got a facelift and overhaul in this release. You can now select icons, search within groups, and there's better integration with the rest of the application.

Additionally, groups can have filter policies attached to them which gives you really fine-grained control over the content you see in them.

Groups can be managed from Settings -> Groups or by clicking the "Folder" icon in the community profile modals.


Filtering Subsystem Rewrite and Enhancement

This is definitely the most involved new feature in this version and largely responsible for the lengthy development time.

The filtering subsystem has been completely re-written and is much more granular and much more powerful.

There are now two levels you can filter: globally and per community group.

Previously, the filtering was global and the terms "filter" and "hide" were used interchangeably, but in this release, "filter" means the content is still visible but collapsed into a stub you can expand to see. "Hide" means the UI will not show it at all.

Additionally, the filters can now be used without being logged in. So if you want to browse as a guest, you can tailor your experience just the same as you could if you were logged in.

Global filters apply to everything and behave like the filters in previous releases. Use these for things, people, keywords, domains, instances, or platforms that you never, ever want to see.

Community group filtering has the same options as global filtering, but those are only applied to communities that are members of the group you've defined.

Filtering Mechanisms

  1. Filter and/or hide accounts by minimum age
  2. Filter and/or hide bot accounts
  3. Filter and/or hide posts you've downvoted
  4. Filter and/or hide NSFW posts
  5. Filter and/or hide NSFW communities
  6. Hide removed comments in the comment section
  7. Filter and/or hide your deleted items (in the feed and profile)
  8. Filter and/or hide posts with a negative score (threshold is configurable from -1 to -30)
  9. Filter and/or hide comments with a negative score (threshold is configurable from -1 to -30)
  10. Filter and/or hide content from users that have specific tags
  11. Filter and/or hide users. Users can be added to the policy directly, by regex pattern, and/or by instance
  12. Filter and/or hide communities. Communities can be added to the policy directly, by regex pattern, and/or by instance
  13. Filter and/or hide content by keyword. Keywords are evaluated as regex patterns, so you can get really granular here.
  14. Filter and/or hide content by instance or platform. Hide all content from specific instances or even entire platforms such as Mastodon.
  15. Filter and/or hide posts that link to specific domains. Domains can be wildcards such as *.example.com and there are quick toggles for common domains that have multiple records such as Bluesky, Facebook, Reddit, Twitter/X, and YouTube.
  16. Filter and/or hide content that is not flagged with the specified languages. This is most useful at the community group level as it allows you to limit content in those groups to a specific subset of the languages selected in your profile.
  17. Add users, user regex patterns, communities, and/or community regex patterns to a list of exceptions where the policy rules are ignored.

Notes:

  1. If you've opted to hide things in the policy, then any inbox item that the policy flags (post/comment reply, mention, and/or DM) will be hidden and won't trigger the notification indicator. You can/will still see those in other clients as they won't hide them, and if you're sending notifications to email, they will still come through. The filtering is only within the Tesseract UI.
  2. Policies do not interact with one another. If a submission matches multiple policies (multiple group policies and/or your global policy), the most rectrictive action wins. So if you've filtered the keyword "Moustache" in your global policy and told it to hide matches, then any group-level keyword matches will be hidden even if those policies are set to only filter.
  3. Filtering works a little differently for mods and admins. See the "Mod/Admin Tools" section below for details.

Example Filter Policy Usage

Example 1: Making a (mostly) politics-free meme experience

This combines the use of user tags, community groups, keywords, and instance filtering.

  1. Add all the meme communities to a group and enable the option in the group to use it as a filter group
  2. Populate the keyword list in the policy with all the hot-button words that apply
  3. Add specific users to the policy that only ever seem to post politics. If they use several alts with the same name on different instances, use a regex instead.
  4. As you're browsing, tag users who are "always on" and can't seem to help themselves from injecting politics into everything.
  5. Add the "always on" tag to the meme group policy.
  6. If everyone from the instance example.com is preachy in the meme communities, add example.com to the policy under the "Users -> Instances" tab to filter all users from there.
  7. If all the meme communites from example.ml are preachy propaganda, add example.ml to the "Instances" tab.
  8. On each section (Users, Instances, Domains, Tags), set the "filter" or "hide" action as desired.
  9. Enjoy a better feed :)

Example 2: Hiding News and Politics with the Ability to Quickly Turn Them Back On

Add all of the news and politics communities to a group aptly named "News and Politics". If you need a break, edit the group and turn on the switch to make it a filter group. Optionally choose to completely hide those communities.

When you're ready to jump back in, edit the group again and turn off the "filter group" option.


Mentions and Direct Messages Can Be Disabled

In Settings -> Inbox there are two new options that will let you disable mentions (when some one @'s you) and/or direct messages.

When enabled, the following things happen under the hood:

  1. The item is silently marked as read when Tesseract polls for new notifications.
  2. The inbox notification is suppressed and doesn't factor into the unread count
  3. The item is not shown in the inbox
  4. The "Mentions" and/or "Direct Messages" tabs in the inbox are hidden
  5. When direct messages are disabled, the "Send Message..." option in the user profile modal is disabled.
  6. Other notifications are processed normally.

Note that the notifications are all still in your inbox. If you access your accont from another app, you will see them. If your account is configured to send notifications to email, you will still receive those. The items are only hidden in Tesseract.


Media Browser

You can now browse your uploads from your profile. Currently image and video uploads are supported and rendered correctly. I'm not sure how audio will work as I've not been able to test that.

Selecting an upload from the gallery will expand it and give you a few options:

  • Copy a link to the image
  • Delete the image
  • Search for the image. Lets you find posts/comments where you used it and is good to do before deleting an image.
  • Set it as a favorite for quick access later.

Select from Exising Media in Posts/Comments

When you're posting or commenting, the image button is now a menu. You can upload a new image or choose from your exisiting uploads. Selecting the latter will open the media gallery in a modal. When creating a post, you can only select one item for the post image, but when in the post body or commenting, you can select multiple.

Select the image(s) from the gallery, click "Insert...", add any alt text, and then insert it.

If you have anything in your favorites (reaction images, etc), you can click to the "Favorites" tab to access them quickly.


Progress Toolbar in the Infinite Scroll Feed

Okay, not really sure what to call this, but every so often in the feed, the system will insert a toolbar with buttons that will scroll you back to the top of the feed, refresh the feed, or truncate the feed to your current position.

"Refresh" and "Scroll to Top" are pretty self-explanatory. "Truncate" is the main reason for this toolbar.

When you truncate the feed, it removes all posts above the toolbar. This frees up memory and helps keep the app snappy. Otherwise, all post objects would still be listening for events (such a responding to view changes, filter policy updates, etc).

Clicking "Truncate" there removes all posts in the feed above the bar (ones you've already scrolled past, and your current position becomes the top of the feed.


Improved Block Management

Blocked users, communities, and instances are now alphabetized for easier review.

You can also search/filter your blocks to quickly find someone (or a communtity/instance) you wish to unblock.

There is also a meta filter you can search:

  • !banned will filter the list for blocked users who have been banned.

I only have anecdotal evidence, but it would make sense that it puts less load on the Lemmy server when there are less blocks to process when generating the feed or comment tree. Thus, removing banned users from your block list can potentially reduce load and lead to better performance.


Post Spoiler Flairs

If a post has the flair [spoiler] in its title (case insensitive), then the post body will be hidden behind a "click to reveal spoiler" overlay similar to the NSFW overlay blur.

Please stop abusing the NSFW tag for spoilers.


New View: Wide-Hybrid

Same as "hybrid" view but full-width. The same configuration you have setup for "hybrid" view will be used here except the feed margins will be disabled.


Language Selection and Management

Users

  • You can now manage your discussion languages in your profile settings. The available languages are limited to those set at the server level. e.g. If your instance only allow English, French, and Spanish, those are the only three that will be available to select.
  • You can now define the language when creating/editing posts and comments
  • The allowed languages for a community are now shown in the sidebar.
    • Note: Only on the community page. When on a post page with the community sidebar, the allowed languages are not available from the API without doing a separate call which is inefficient.
  • The site's configured languages are now available in the site sidebar

Mods

  • You can now set the allowed languages in the community settings. As with the user's languages, the list of available languages is limited to only those enabled by the site admins.

Admins

  • The site-level discussion languages can now be configured from the admin panel at Admin->Languages

New Font: Atkinson Hyperlegible

Saw mentions of this font going around, checked it out, and I like it. It seems to be designed for visually impaired, but it also helps dyslexics such as myself without being as wonky-looking as OpenDyslexic (no offense to OD's creators).

This is also the new default font for the application.


Post / Comment Tag Bar

At the bottom of posts and at the top of comments, there is a bar that will show any community groups, user tags, language, and software platform indicators. Each of those is configurable in Settings -> Posts and Comments -> Post Tags Bar.

The communitiy group indicator(s) are clickable to edit the group. Regular groups are green with a folder icon, and filter groups are black/white with a funnel icon.

User tags are a "person" icon and are not (currently) interactive.

The "Banned from Community" badge will show if you are banned from the post's community. Clicking it will take you to the modlog entry.


No More Thorns in Your Side

All þ characters are converted to th. The people who like to do this are obnoxious, and it stops now. I'm willing to deal with the 1 in a million false positive.


Defederation Indicator

Community and user cards will indicate if the item's home instance is defederated from your instance. The create post and other action buttons will also be disabled.


Blind Voting

When blind voting is enabled, scores will be hidden until you've cast a vote. This encourages you to both vote/participate as well as to vote based on the content without being influenced by the current score. While I'm not naive enough to think this will competely prevent dogpiling and bandwagon voting, it is a step in the right direction for those who choose to enable this option.

This can be configured in Setitings -> Posts/Comments -> Voting -> Blind Voting

Blind voting only applies for logged-in users who are not bots or banned from a community. Guests or accounts who cannot vote on a submission (bots, banned from community, etc), will always see the scores (unless show scores is disabled) as they cannot vote to trigger the reveal.

Admins: Enabling Blind Voting by Default

If you want to have blind voting enabled by default, you can set the following environment variable:

PUBLIC_ENABLE_BLIND_VOTING=true

Forcing Blind Voting

If you are running Tesseract for your instance and want to force blind voting to always be enabled, you can add the following environment variable to your deploy config:

PUBLIC_FORCE_BLIND_VOTING=true

When this env var is set, the blind voting option will be hidden and always active. This does not require the PUBLIC_ENABLE_BLIND_VOTING variable to be set.

Note: Blind voting only works when you are loggged in. When browsing as a guest, scores will be shown unless the option to hide scores is enabled.


Post Reply Muting

You can now mute replies on up to 25 posts. The option is available from the post action menu (three dots at top of post). Any replies to those posts will be silently marked as read and not included in the notifications. You will still see those replies in the inbox, but they'll be marked as read leaving your "unread" inbox clean for replies you are interested in. Muted posts have a "Muted" badge in the title to indicate that reply notifications will be discarded.

This also applies to comments on the muted post. For example, if you comment under your own post and then mute replies to that post, any replies to your comment will also be muted.

Behavior

  • If it is your own post, you will not receive notifications for any replies to the post while it is muted.
  • If it is someone else's post, you will not receive notifications for any replies to your comments to that post

Why Only 25 Posts?

Currently, the post reply muting list is stored along with the rest of your filter policy. This means it has a hard 5 MB limit due to using LocalStorage in the browser. Additionally, since your filter policy applies to all accounts in the application, the post's ActivityPub ID has to be used as the identifier rather than the post ID (to support accounts on different instances). Storing the ap_id string instead of the post id number increases storage use.

The muted post list acts like a FIFO: When you've already got 25 posts muted, the oldest will be un-muted to make room for the current one.

25 was chosen more or less arbitrarily. The point of this feature is not to give you the ability to post without having to get feedback (that's spam/bot behavior). It's to allow you to stop receiving notifications when the replies to a particular post go off the rails or start to get stale and repetitive (without resorting to deleting the post or mashing "mark all as read"). Usually after a day or so, that calms down, so if it becomes unmuted later, it might actually be a reply you want to see.


Re-Added Image Upload Proxy to the Tesseract API

Note that this is separate from the general purpose image proxy.

Some instances throw CORS errors when interacting with the pictrs endpoint to upload or delete images from a non-origin domain (e.g. a 3rd party hosted version of Tesseract). I re-implemented the upload proxy that was removed several versions ago and set it to act as a traansparent fallback if the direct image upload fails. I also added a proxy handler for deleting images as those were also getting blocked by CORS in some cases.


Search Revamp

The search has been revamped and no longer tries to be "too much". I took out the infinite scroll, moved the search scope filters out of the secondary navbar and into the page, and greatly simplifed the logic. And it works so much better. It also has the option to search for post URLs now.

The site/community search bar at the top of the app has also been enhanced.

  • Will detect activity pub URLs, resolve them, and take you directly to the content while skipping the actual search. This lets you quickly load a user/comment/community/post from a federated link. (e.g. paste in an actor ID for a user, and it takes you straight to their profile page. Paste in a post activity pub URL, and it will take you to the local copy of that post.)

    • Also works with both Lemmyverse and Threadiverse links for users, communities, posts, and comments. Haven't added LemShare yet since it uses a different format. Also not sure how widely-used LemShare is, so may not add support.
  • Search type prefixes to set the search type. You can now prefix the search query to set the search scope from the search box:

    • @user {query}: Searches only for users with the given query string
    • @users {query: Alias for @user
    • @community {query}: Searches only for communities with the given query string
    • @communities {query]: Alias for @community
    • @post {query}: Searches only for posts with the given query string
    • @posts {query}: Alias for @post
    • @comment {query}: Searches only for comments with the given query string
    • @comments {query}: Alias for @comment
    • @url {query}: Searches only for posts which have the provided URL as the post link
  • Search scope modifiers can scope the searches to local, all, subscribed, and/or only your submissions.

    • @all {query}: Searches everything. Default behavior and @all is currently kind of useless
    • @local {query}: Scopes the query to only local ites
    • @subscribed {query}: Scopes the query to only communities to which you are subscribed.
    • @me {query}: Scopes the search to only items you have submitted
  • Set the desired sort direction

    • @old {query}: Sorts by oldest first
    • @new {query: Sorts by newest first
  • Special searches:

    • @localusers will list all local users. Does not take any search parameters. To search for a local user, use @local @user keyword instead. Can only be combined with @old or @new to control the sort.
    • @allusers will show you all known users on your instance.

Example Search Queries

  • https://example.com/post/12345 will automatically resolve and then take you directly to the local copy of that post.

  • https://example.com/u/alice Will automatically resolve Alice and then take you directly to her profile page.

  • @users bob: Will search for users that have "bob" in their username or display name.

  • @community Dogs Searches for any community that has "dogs" in its name or display name.

  • @posts New York City Searches only for posts containing New York City

  • @comments New York City Searches only for comments containing "New York City"

  • @url https://example.com/foo/bar.htm Searches for any posts that link to exactly https://example.com/foo/bar.htm

Combining Scope Modifiers and Search Prefixes

The scope modifiers can also be combined with the search prefixes.

  • @me @local @comment Captain Picard will only search for comments you've made to local communities containing the text "Captain Picard"

  • @me @local @old @comment Captain Picard will only search for comments you've made to local communities containing the text "Captain Picard" sorting by oldest first.

  • @me @local @new @comment Captain Picard will only search for comments you've made to local communities containing the text "Captain Picard" sorting by newest first.

  • @local @comment Captain Picard will search for any comment containing "Captain Picard" only on local communities

  • @local @users Picard will search for any local users that have "Picard" in their username or display name

  • @subscribed @posts Picard will search only communities to which you are subscribed and return only posts containing "Picard"

  • @posts picard @subscribed @local @me will search for any posts containing "Picard" and scope it to only posts you've made to local communities to which you are subscribed.

  • @local @communities Star Trek will search for any local communities that contain "Star Trek" in their names.

  • @communities Star Trek @subscribed will search for any subscribed communities that contain "Star Trek" in their names.

  • @communities Star Trek @subscribed @local will search for any local subscribed communities that contain "Star Trek" in their names.

  • @local @url https://example.com/foo/bar.html will search only local posts with the given URL.


LemVotes Integration

It was requested to add a LemVotes link to posts/comments. I was initially against it, and still am, but decided "what the hell?" and added it anyway.

Post and comment action menus now have a "See Votes" option that will search for the item at lemvotes.org.

Since this is an external service, the only guarantee I can make is that the correct AP ID is being sent. Whether it finds the content or is working is out of my control.

Note: Right now, it loads in a modal in an iframe. If that tool ever changes to prohibit embeddng in an iframe, it will have to be turned into an external link.


Mod/Admin Tools

Banning/Unbanning Multiple Communities

In the previous releases, you could only ban a user from a single community or all communities. This is now more granular, and you can select individual communities for the actions. The expiry, remove content option, and reason are used for all actions as before.

Admins Area: Local User List

In Admin -> Local Users you can now list your instance's users. Since this is limited to what I can do with the /api/v3/search endpoint, the only sorting opitons are Old and New. You can also search for a local user from within this section.

Use Cases:

  • Keep an eye on new signups. It will show the number of posts and/or comments they've made
  • Take action against or interact with an account. Clicking their username will open the User Profile Modal for their account giving access to various tools such as their modlog history, submission history, ban/unban tools, vote aggregate history, and messaing options.
  • Check the status of any local account

Send a Welcome Message During Registration Approvals

You can now opt to send a welcome message via DM to newly approved accounts as part of the application approval process. Send a "welcome aboard" message, a getting started guide, or anything you feel might help new users get up and going with their account.

As with the application denial reason, you can set a template to load into this in Settings -> Moderation -> Registration Approval Welcome Message Template

Search for Alts in the Registration Application Menu is Now Localized

Rather than the "Search for Alts" button taking you to the search page in the previous releases, it now loads in a modal so you do not have to leave the application page.

Additionally, you can click on any alt from the results to load that alt's user profile modal in order to check post/comment history or modlog history. Very useful for vetting new accounts before you approve the application and doesn't require leaving the application workflow.

Set Site Content Warning

Both the field to set the content warning contents and a method of dipslaying it were both missing in prior releases.

As of 1.5.0, if any text is saved to the "Content Warning" field, then a modal will appear for all users the first time they visit the site. The modal will be shown in place of the UI until the visitor acknowledges it.

Defederate (or Re-Federate) Instances from the Instances Page

Rather than manually putting instance domains into the admin panel, admins will see a "Defederate" or "Re-Federate" button on instances listed on the /instances page.

12
 
 

Crossposted from https://lemmy.ml/post/47339272

Finally I can stay forever on lemmy even not opening the browser! 😂

Thinking of using it as a mod tool to see new posts in communities I moderate.

Sharing it early, maybe get some ideas on how to make it better.

https://github.com/tracyspacy/lemmy-tray

13
 
 

I am a full time Mlem user, absolutely love the app. I am not looking to replace it, however there is currently no development for being able to manage your media within the app.

I would also like to find an app that can save posts and comments as drafts. This is not a deal breaker however and would only be looking at that if it has media management.

14
 
 

I'm the Tesseract dev, and in the current build, any posts that aren't your own that have [spoiler] (case-insensitive) in the post title will hide all but the post's metadata (title, author, community, etc) and the vote/comment bar. Clicking "reveal" shows the post's contents.

The nitty-gritty implementation details are up to you, but can we, as a group, please come together and handle this flair consistently? I would really love to be able to disable the "Show NSFW" option without missing totally safe-for-work posts due to people abusing the NSFW attribute. I get why people do that, but I'm also tired of playing "porn or spoiler" roulette.

I haven't added this part yet, but I'm planning to put a "Spoiler" toggle on the create post form which will add [Spoiler] to the post title during the submission if the user didn't add it manually.

Or if other apps I'm not familiar with are already doing something like this, let's do that. Either way, let's get on the same page.

Edit: If there are any other special-case flairs that might be handled similarly, I'm all ears.

15
 
 

I told you it wasn't vaporware! By every stretch of the imagination this should probably be version 1.5 rather than a point release, but that may still change.

This is the longest stretch between updates, and I apologize, but I just needed to take some time away from....this. It's not finished yet, and not everything made it into the cutoff, but it's stable and feature complete enough to push out as a mature alpha / near beta. This is to allow some extra eyes / bug reports while I work to button everything else up. As far as stability goes, I always daily-drive the dev version, so everything I use works at least "good enough".

It's not generally available yet, but it is deployed to the hosted instance at https://tesseract.dubvee.org/


Notes Regarding Filtering Terminology

In the previous releases, "hide" was used to mean "collapse" or "minimize" but still show the content. In this release, "filter" means to minimize/collapse into a stub (you can click to reveal it) and hide actually hides the content completely.

Admins cannot fully hide anything with filters. If you're an admin and you set it to hide any content, it will always be minimized. This is to prevent blind spots. Similarly, moderators cannot fully hide things in communities they're in charge of.

Highlights

There are far too many changes to list in a post, and the changelog is a fustercluck right now, but here are the highlights:

  • Lots of visual tweaks and refinement
  • LOTS of bugfixes
  • Upload Manager: You can now manage your uploaded media from Profile->Media
    • View all your uploads
    • Delete an upload
    • Favorite certain uploads for quick reference later
    • Search for the post/comment where the upload was used
    • When posting/commenting, you can select select an image from your existing uploads
    • Use a custom upload as a custom emoji (not fully implemented yet)
  • Secondary Toolbar Can Be Hidden: The secondary navbar can be toggled on/off to give more vertical space in the app.
  • Defederation Indicator: Community cards will indicate if your instance is defederated from the community's home instance. The create post and other action buttons will also be disabled if that is true.
  • Blind Voting: When blind voting is enabled, scores will be hidden until you've cast a vote. This encourages you to both vote/participate as well as to vote based on the content without being influenced by the current score. Admins can also set blind voting to be the default if they want.
  • Post Reply Muting: You can now mute replies on up to 25 posts. The option is available from the post action menu (three dots at top of post). Any replies to those posts will be silently marked as read and not included in the notifications. You will still see those replies in the inbox, but they'll be marked as read leaving your "unread" inbox clean for replies you are interested in. Muted posts have a "Muted" badge in the title to indicate that reply notifications will be discarded. This also applies to comments on the muted post. For example, if you comment under a post and then mute replies to that post, any replies to your comment will also be muted.
  • Mentions and Private Messages Can Be Disabled: Well, not fully disabled. However, if you disable them, they will be silently marked as read and not trigger the notification indicator. They will also be hidden in the inbox. However, you can still see them if you turn them back on or access your account from another client.
  • Mentions, Replies, and DM's From Filtered Accounts Do Not Trigger Notifications: They will be silently marked as read in the background, not trigger the notification indicator, and be hidden in the inbox.
  • Search Revamp: The search page has been revamped and no longer tries to be "too much".
  • Search Prefixes: You can prefix your search to set the type. to set the search type. You can now prefix the search query to set the search scope from the search box:
    • user: {query}: Searches only for users with the given query string
    • users: {query: Alias for user:
    • community: {query}: Searches only for communities with the given query string
    • communities: {query]: Alias for community:
    • post: {query}: Searches only for posts with the given query string
    • posts: {query}: Alias for post:
    • comment: {query}: Searches only for comments with the given query string
    • comments: {query}: Alias for comment:
    • url: {query}: Searches only for posts which have the provided URL as the post link
  • LemVotes Integration: It was requested to add a LemVotes link to posts/comments. I was initially against it, and still am, but decided "what the hell?" and added it anyway. The post and comment action menus now have a "See Votes" option that will search for the item at lemvotes.org.
  • Enhanced Filtering: Too much to explain. Just look at Settings -> Filters and see what's there.
    • Filter users and communities by actor ID or Regex pattern
    • Filter content by platform
    • Filter out entire instances (including wildcards such as *.example.com to cover lemmy.example.com and piefed.example.com
    • Filter by domain (including wildcards)
  • Settings Revamped: The settings and quick settings have been combined into a configuration panel with a tabbed interface.
  • Admin Panel Revamp: The admin panel has also been refreshed to be easier to navigate.
  • Community Groups:
    • Can have their own filter policies
    • Can minimize or hide all posts to them
    • Groups can be used as community flairs
  • New Font: I added Atkinson Hyperlegible because I'm absolutely in love with that font.
  • Block Management: Managing your user, community, and instance blocks is now easier. You can search/filter them as well as use the meta search term !banned to see which ones are banned and, optionally, remove them from your blocks.
  • Allows adding accounts from multiple instances by default. Previously, it was locked to the deployed instance by default, but now it requires the admins to set an env var to disallow adding off-instance accounts.
  • So much more under the hood (see release notes when this is released).

Known Bugs

  • Import and exporting groups from Settings->Groups is not implemented yet
  • The "Tags' panel in the settings is not yet implemented
  • Adding a user/community to the filter exceptions exempts them from all rules. During testing, this was not found to be not desirable and only a subset of rules should be exempted for those.

What's Removed?

  • Legacy Loops support. Loops now has proper embed URLs in their metadata so rather than re-write the shim for old Loops posts, I just took it out. Posts linking to Loops posts should just work unless they were posted before Loops released their current UI.
  • Save / Load Settings to Lemmy API. With the addition of the filter policies, expanded community groups, and other settings you can store, it's just too much to store in the theme field in your profile. I'm brainstorming a way to save settings to your Tesseract instance, but that's probably not going to be in this release.

What Didn't Make the Cut?

  • Deezer embed support
  • User tagging (the settings tabs are there for it, but it has a placeholder

When Will it Officially Release?

Not sure. Depends if any major bugs are found during the alpha/beta phase and how much time I can devote to wrapping everything up.

16
 
 

This is probably the biggest thing keeping me from switching. Other apps almost feel claustrophobic with how little of the screen is used. At least last time I explored.

Edit: just tried again and Summit is pretty close I guess.

Edit: answering my own post now but with some customization that either didn't exist before or I missed I have gotten even closer.

17
 
 

Lemmy is not the same today as it was two years ago, and the app landscape is not the same either. There are a number of key improvements that we can work together to create.

We are looking for additional moderatorsThis is not a traditional moderation task. There is very little in terms of moderating comments and post content. Rather, we are looking especially for people willing to put in a little work on a monthly or bimonthly basis to improve existing projects.

Updating and Automating the Lemmy Apps DirectoryThe Apps "metathread" directory is woefully out of date. At present, no part of it is automated. I have been manually checking each app and updating information periodically, but this has proven unsustainable. I am sure that there is someone in this community who has the technical background to update it in a fully or partially automated way.

Updating join-Lemmy.org/appsIf the community megathread here is out of date, the "official" website is a fossil. This is the number one most visible place that people find apps. It's the top result in most web searches, it falls under the umbrella of the official project, etc. This community is not affiliated with the website, but it is OSS and they do accept pull requests. Someone with basic knowledge of github and a little free time could do a lot of good here.

App reviewsI'd love for people to share some specifics about the app you use and what you love about it. Do you have screenshots of a custom layout/palette you've set up? Let's show off what lemmy apps can do!

Info about PieFed supportSome apps have extended to other platforms of the fediverse, especially PieFed. How would we like to integrate and highlight that info? Should there be a special category or list in this community? A new community entirely?

Please share your thoughts and how you may be able to contribute. Like everything on lemmy, this community is what we collectively make of it. Thanks for making it great!

18
 
 

I'm sharing this here as well, since the census has sections on app / frontend usage. I'm hoping the results from this census will complement the results from the poll that @Xylight@lemdro.id ran recently :)

cross-posted from: https://lemmy.ca/post/57328037

Link: https://survey.fedecan.ca//s/cmjcnqzgd0002th01dh6naqm6


The census will close on January 15th, 2026.

A lot has changed since our last census in 2023! We would like to take another opportunity to learn about our growing community.

Everyone is welcome to fill out this survey. You do not need to be located in Canada, and you do not need to have an account on one of our platforms. If you do have an account on lemmy.ca, sh.itjust.works, piefed.ca, and/or pixelfed.ca, you can indicate that on the census in order to be included in those separate graphs/visualizations.

No question is mandatory. You may skip any question by either selecting “no answer (skip this question)”, or by leaving the question blank. Some questions will be hidden depending on your selections. For example, the Pixelfed specific questions will be hidden if you don't select that as one of the platforms you use.

Sections:

  • Section 1: Location
  • Section 2: Demographics
  • Section 3a: Instance Usage (Forum/Threadiverse)
  • Section 3b: Instance Usage (Pixelfed)
  • Section 4: Feedback / Closing questions

When results are ready, we will share them on our website and with posts on:

The questions were created with help from @Dave@lemmy.nz, based on the questions from their census this year :)

19
 
 

It’s been awhile since I’ve posted here. For anyone that was interested in Blorp in the past, but it was missing that one feature you needed, chances are that feature has been added/fixed.

My favorite features

  • The best multi account support in any Lemmy or PieFed app, guaranteed!
    • Started your post on the wrong account? No problem! Switch accounts and pickup where you left off
    • Trying to moderate a post from the wrong account? Switch accounts without needing to find your way back to the post.
    • Blorp was meticulously designed from the ground up so none of the links in the app break when you switch accounts. If the content federates with your instance, you’ll see it no matter what account you open the link on!
  • Draft posts
  • Light box feed, beautiful for browsing photography communities or cute cat/dog photos
  • PieFed specific features
    • Post flairs
    • Post poll voting
    • Comment thread locking
    • More to come!
  • Lemmy V1 support
  • Edit text as raw markdown or rich text!
  • Many hours fixing little bugs and annoyances

Please give Blorp a try if you haven’t already ❤️

Download

20
 
 

Curious on the usage statistics.

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

21
 
 
22
 
 

Looks like Summit met it’s match!

23
 
 

Resolved since Mlem has all the features I wanted:

https://mander.xyz/comment/22644935

It also solved one I hinted at in a few of my comments, what are the server's users actually like. That's exposed in a tab on a pane summarising a server but you can see some of the information online, like the endorsements here for lemmy.ml:

https://gui.fediseer.com/instances/detail/lemmy.ml

Edit of original question

Is there an iPhone client that makes it possible to do these three things in the app:

  1. To be able to see the different sidebars that are visible if you load these two sites (not only the side bar on server I'm registered to):
  1. To be able to scroll these community (sorry not channel) lists separately and independent of channels from other servers (sorry not instances) (and not only the channels on server I'm registered to):

  2. To be able to search "ask lemmy.ml" filtered by communities and see "https://lemmy.ml/c/asklemmy" show up in some way.

Original post

Maybe it's just the iPhone clients, but they seem to have issues with use cases for other instances, for example:

  • If I'm interested in news from a certain country, and there is an instance focused on that country, I basically need to get on the web to search if there is a useful channel on that instance. If you use on of the iPhone clients to search for a channel and only use the instance name then nothing seems to match show up. You can find users from those channels, channels that happen to use that set of characters, or when people write a channel from that instance, but the search doesn't seem to match channels on that instance.
  • Clients don't seem to offer a way to navigate to an instance and see all its channels. This is basically the same use case as above, but with more exploration and less targeted. Again, I seem to need to use the web.
  • I can't find a way to show the sidebar for an instance, besides the one I've registered for. For a lot of instance+channel combinations this really doesn't matter. But when it matters, it tends to matter a lot. I had a few situations in asklemmy@lemmy.ml where people basically resorted to saying the instance was lemmy.ml and I had to go look up why that would matter by switching to a browser. (Yeah... a newbie problem, and now I wonder how I could have missed it.)

So, incase this comes across as just statements, here are some questions:

  • Am I missing an obvious client / some buttons to click?
  • Is this just how communities and users grew to use the echo system?
  • Are the iPhone clients all from similar codebases or copying UI layout?
  • Is there some technical issue with the exposed search APIs?
24
 
 

Hi,

I recently switched to lemmy from reddit. I tried some of the mobile apps, and for now decided to use Boost.

While testing i figured out, that non of the apps i tried out are able to send push notifications while the apps aren't running. I have to open the app to recieve the notifications about e.g. new replies to my posts.

I am just curious: Is this a limitation of the lemmy software? Is this something that could be toggled by the instance hosts?

25
 
 

Ignore obnoxious comment signatures, make dogwhistles more transparent, remind yourself not to interact with certain topics, uncensor common celf-censorship euphemisms, or just apply some good 'ol censorship of your own. What I am imagining is a system that allows the user to set custom regular expression rules that get applied to all comments. There could be both global rules (that apply to every single comment) and user rules (that apply to all comments from just that user, similar to custom user labels).

What are your thoughts on having a feature like this in whatever app you use? Would you even find it useful at all? If the change is only visible to the user, is there any abuse potential?

Pictured here is a proof of concept showing Thunder with a simple "Cloud To Butt" function applied.

view more: next ›