Pangora

129 readers
1 users here now

๐Ÿ An activitypub compatible forum and link aggregator. Downstream from Lemmy.

https://github.com/PangoraWeb

Kanban board


Info

Info

Pangora is the name of the lemmy soft fork thats being primarily worked on by members of programming.dev. Its aimed so that we can add features on top of lemmy and prioritize them based on what the instance needs while still being able to push changes upstream to lemmy if they accept them.

This also makes us more decoupled from lemmy so that if anything major happens to lemmy we can keep going with maintaining the site without any issues.


Credits

Credits

Icon base by Lorc under CC BY 3.0 with modifications to add a gradient


Pangora

Pangora-UI


founded 1 year ago
MODERATORS
1
 
 

Been a couple months since my last update and theres been some announcements and me settling into the project I said I was merging Pangora into.

The project has been announced now with the name Sublinks and is currently being worked on by a bunch of devs and lemmy admins to make progress towards parity with lemmy quickly

Ive been working on UI design for Sublinks (attached image is an early version of the home page) bringing in aspects I worked on in Pangora and refining them

Will be posting updates over in !sublinks@discuss.online with my progress on the UI!


This community will be dead for awhile until sublinks reaches parity and the new version of Pangora is forked from it

2
12
Pangora January Update (programming.dev)
submitted 10 months ago* (last edited 10 months ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Hey everyone! Got time to write up an update so figured I would update on events that have been happening around Pangora

Im going to be working on severely changing how the project is handled

Theres another project thats been getting made and rather than work on a separate thing than them ive decided to merge my work on pangora into their project

After that pangora will be soft forked (in both the front and back ends) for specific niche customizations but the majority of the development will be done in that other projects repository

They havent announced it publicly so ill let them be the ones to do that but if youre interested in helping develop it (or if youre an admin of an instance) feel free to reach out and I can add you to a chat for it (main languages used are java, typescript (next.js), and go)


In other news for the project I made a couple supporting sites


Overall this means that rather than work on a beta for the frontend ill be working on the other projects frontend to get pangora into there. Expect things like a beta when that other frontend is done and I can fork it properly

3
 
 

Thanks for all the effort so far!

4
 
 

Doing some testing with animations for the site

All pages have a little fade in effect with the content by default when switched to to ease the transition a bit

The donation page I also added some custom swipe in effects to

Will eventually be adding handling for prefers-reduced-motion to disable the swipe in effects although not in currently


There may be some changes to how I organize the repos to rename Pangora-UI to pangora and the backend to something else

More info in the future though

5
 
 

Added a couple more buttons so you can see active communities from all connected instances as well

In addition youll see that the active users today is much larger values due to the site & community stats update I did in the instance where it now takes into account post and comment likes in addition to post and comment creations

(Note this and other updates wont be pushed out to the beta site likely until after 0.19 releases and the instance updates to it since ive been messing with the new authentication system)

6
14
Pangora-UI Alpha 2 (programming.dev)
submitted 11 months ago* (last edited 11 months ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Pushed an update to https://beta.pangora.social that has the changes ive made to the site since the last alpha

Updates include:

  • Lists of active and new communities on the sidebar
  • Community names can have custom gradients
  • The post feeds works with javascript disabled
  • The posts in the post feed now have less transparency and the background on the post previews have less transparency
  • The post previews have been centered more
  • The URL now changes to match the post when looking at a post preview
  • A system theme has been added to the theme switcher and should be set by default
  • The icons in the post feed scope & sort buttons now are not trapped inside the button
  • The community view now allows you to sort posts
  • You can now view posts from multiple communities
  • code block text size has been made larger (might not work for comments)

Viewing posts from multiple communities

You can view posts from multiple communities at once by setting them all in the url. Separate each community by a plus.

for example https://beta.pangora.social/c/programming+opensource will show you posts from both programming and opensource

If you want to add in a community in another instance add it in in the format community@domain

e.g. https://beta.pangora.social/c/programming+opensource+technology@lemmy.world+opensource@lemmy.ml

Wildcard

You can put a wildcard (star symbol *) instead of the instance domain to search for that community name in all instances

  • note that this will only pull from the biggest instances for now due to limitations from this being only in the frontend currently

e.g. https://beta.pangora.social/c/programming@* will get all communities named programming in different instances

Wildcard instance exceptions

You can make a wildcard ignore a certain instance by first adding a minus sign after the wildcard (-) to mark a new rule, then an exclamation mark (!) to mark a negation, and then the instance domain

e.g. https://beta.pangora.social/c/programming@*-!programming.dev-!lemmy.zip will get all communities named programming in different instances except for the ones in programming.dev and lemmy.zip

Composition

You can combine the above as much as you want to get complex queries. You may run into rate limits if you add an extremely large amount of communities though

Example Query

WARNING

This is implemented only in the frontend currently so certain aspects will be broken

Hot and active sorts for multiple communities will not work

7
21
submitted 11 months ago* (last edited 11 months ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Added in some sections on the right side of the screen in the home page that shows the 5 most active communities, and the 5 most recently made communities

This is essentially the equivalent of the trending communities section in lemmy-ui but isnt using the severely broken hot community sort

Section in lemmy ui below

Also you might notice that some communities now have different gradient colors. I added in support for different community gradients and set some values for some of them. (Note this is all hardcoded into the frontend current until I touch the backend).

It also affects the colors of the community names in post feeds such as is done below

As well I made the site sidebar card and the new community list sidebar cards show information when javascript is disabled. Ill be going through and trying to make that happen for as many things as possible

The site theme now also follows prefers-color-scheme by default


Ill likely be changing how the home feed is handled a bit so that it can support javascript being disabled before I push things out to beta.pangora.social

8
38
submitted 11 months ago* (last edited 11 months ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

I started implementing a feature that lets you see posts from multiple communities at the same time. Above ive got it pulling from 5 different communities.

Done by just listing all of the communities in the url with plus signs separating them. Its not pushed out to the pangora beta site right now but ill probably try to push out a build either this weekend or during the week

Currently just shows the first 50 from each, ill try to add some sort of addition to the backend in the future that will let me query for multiple communities so I can do the first 50 out of all of them so it doesnt have things out of order for the last post on a page and the first post on the next page

9
26
submitted 1 year ago* (last edited 1 year ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Hello everyone! I've pushed out a public alpha build to https://beta.pangora.social for people to start giving feedback on the design before it becomes more fleshed out

Feel free to check it out and say what you like or dont like in the comments here.


โš  Warning: This is an alpha, things are still very unfinished. You cant use this as an alternative to lemmy-ui yet since things such as logging in aren't supported

โš  Warning 2: If you attempt to use this on mobile currently it will be very broken


I constructed the UI by seeing what people liked from lemmy-ui, alexandrite, and photon and trying to match it up to how lemmy-ui is built so that it would be an easy switch between them

Main site mechanics that is different from lemmy-ui

  • Comments from cross-posts show up when looking at a post (will be changed in the future to only communities that community has whitelisted to do it for once I mess around in the backend more)
  • Comments and posts that have 0 or less score in terms of upvotes/downvotes will be collapsed by default
  • Clicking on a post in the post feed makes it show up overlayed on top of the feed similar to alexandrite's system instead of sending you to a new page. (hitting the name of the post when in this preview state will send you to the actual page)

Images:

10
12
submitted 1 year ago* (last edited 1 year ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Had some more free time to work on the pangora.social site so I pushed some support for the new fediseer tagging system so that it automatically populates instances in the instance selector.

Instances will populate in it if they:

  • Have more than 50 members
  • Are tagged with a tag for the site
  • Are not censured by programming.dev or some other instances
  • Can be found when the site checks for instances every day

A list of all tags that are used on the site can be seen at https://pangora.social/tags separated into categories.

I also pushed a little fix to the site so that if theres no instances in a category that category won't show up

11
2
submitted 1 year ago* (last edited 1 year ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Hey everyone! I'm back from doing things for Ludum Dare and am starting work back up on Pangora.

Spent a bit setting up a backend so I can start implementing some backend features such as flairs and started some progress on the admin settings in Pangora-UI

My current plan is to add two new features onto the backend and then clean up and add everything from lemmy-ui that hasnt been added already to get it ready to be publicly tested. After which will be aimed for a first release

Flairs

The first feature being added is going to be flairs which is the main thing that ive noticed has been lacking when interacting with lemmy.

Flairs are split up into four different types

  • instance flairs
  • community flairs
  • post flairs
  • user flairs

Instance Flairs

Instance flairs are flairs set on the instance/site level to show what kind of content your instance contains. For example for programming.dev we can instance tag ourself with programming and mander can tag themselves with science. This can then be shown in the site sidebar and to categorize instances in sites such as https://pangora.social .

The instance flairs available will be the same across instances so that a consistent instance flair naming system can be enforced but people can freely request new flairs from the repo if theres one thats missing.

Community Flairs

Community flairs are set on communities to show what kind of content that community contains. These can be created by instance admins and set on a community by community mods

A community flair for programming.dev might be gamedev (to put on godot, unreal_engine, gamedev_news, play_my_game, etc.)

Post Flairs

Post flairs can be set on posts to categorize posts in a community. In a community about godot some posts may be tagged as help if its a help request, or news if its something such as news from the godot blog.

These flairs can be created by community mods and have a setting to make them either only able to be set by mods or be able to be set by both mods and users.

User Flairs

User flairs are community-specific and can be set on a user in that community. People might add a flair onto themselves if theyre an official developer for a software, or for more cosmetic reasons to theme themselves around the community

Admin Permissions

Second thing I want to add is different permission levels for admins. Currently adding an admin to your site gives them access to basically everything on the site. This can cause issues if you for example only want to add someone who can accept applications but dont want to give them access to causing chaos with your site information.

Entering a new permission system for admins. How this is going to work is new roles are going to be able to be created in the site and set to have different permissions. You can create an accepter role that can only accept applications, an emoji master role that is able to create and delete emojis on the site, an admin trainee role that is able to do most things in the site that can easily be reversed, and a standard admin role that is able to do everything.

Permissions are going to be all booleans and able to be stored in one variable length integer per role with one bit per permission (with the bit set to 1 if that permission is given, and 0 if not)

Admins with the role managing permission are going to be able to create and manage roles below them to add some new ones to the site. Instance owners have every permission by default and are at the highest level in the role chain and this cannot be changed without transferring the site ownership.

Ending Note

Thanks everyone for joining and watching the progress here on pangora! If youre interested in helping out feel free to join the matrix and I can help get you set up with the codebase. https://matrix.to/#/#pangora:matrix.org . Backend is in rust and frontend is using Next.js with TypeScript

This is something I'm currently working on part time with most of my time going to university (and some time going to gamedev) but as progress is concentrated on a couple features it still should be getting some good amount of development done. Its also downstream from lemmy so any updates and bug fixes the lemmy devs make will also be merged into Pangora to help keep the two as close as possible (and ill be making pull requests into lemmy once flairs and admin permissions are stable for them to accept or not. )

For transparency on who I am. I'm a computer science student in Canada currently mostly doing work in gamedev and webdev. I try to run AMAs every so often here in !iama@programming.dev and should be doing another one soon if anyone wants to ask me some questions there. Ive been mostly doing work on managing communities here in the instance but ive been onboarding some new admins and will start mostly working on development of Pangora in the future.

12
 
 

Maybe this could be added to the sidebar?

13
2
submitted 1 year ago* (last edited 1 year ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Pushed an update to https://pangora.social to improve various aspects of the instance selector.

Instance Preview

Instead of directly sending someone to an instance it will instead show a preview of the instance so they can see info on it. Info includes:

  • A description of the instance
  • Name & Icon
  • The site administrators (hovering over an avatar gives a popup with info on them)
  • The instance uptime
  • Where the instance is hosted
  • The software and version used for the instance

Theres also a get another site button that pops up if theres more than 1 site for a certain category. When clicked it just gives another one in the category.

Category Shuffling

I changed around the locations of some of the categories and added some new ones. Certain categories will point to general instances until a specific instance is made for that category (but it exists with the general instances for now so I can automate adding stuff to it in the future)

Regions was added as a main category instead of being in other, and crypto and finance was moved into technology.

Pages

If theres too many subcategories for a category it now gets split up into different pages. Currently only happens in the regions category and replaces the old behaviour of using an other category to then send people to another section with more


Wanted to do another update before I start focusing a ton on ludum dare. There may be another update that gets pushed recentish to make instance owners be able to add themselves to categories but unknown when that will go out.

If you host an instance and you want it to be listed (and it isnt already) just let me know and ill add it.

14
2
submitted 1 year ago* (last edited 1 year ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Hey Everyone! Back with another update on pangora. This week has had a little less progress in terms of pangora-ui and more setting up various other aspects.

Pangora now has a main site at https://pangora.social. This will be used as the equivalent to join-lemmy.org and theres going to be a subdomain for testing out pangora-ui once it gets a bit more stable.

On the site currently theres some info about pangora and an instance selector for people to go through to find an instance they want to join. I made it so it sends people more often to what theyre interested in rather than a general purpose instance to help grow the niche instances more

Theres some misc pangora-ui changes but as theyre not big ill hold off on showing them off until the larger feature theyre part of is done

In addition I updated my remindme bot and moved it over to the pangora organization in github. In the future ill be moving the rest of my bots over as well.

Development will likely severely slow down for a bit while I focus on ludum dare and some events after ludum dare but I should be back with another update in a few weeks.

15
 
 

Hey everyone. back with a weekly progress update on pangora

Ive set up the Pangora-UI repo a bit more to make contributing to the project easier. Theres a contributing.md file where I walk through the different things the project uses and theres now issue templates for bug reports and feature requests so you can easily add one of the two here.

Theres now a functional log in page for the frontend and when logged in it replaces the log in and sign up buttons in the navbar with your profile picture (and when clicked opens up a dropdown)

Logging out works as well


For communities ive added a hide community button for admins that when clicked hides the community from the instance. This makes it so that no posts from the community show up anywhere on the site but the community itself still shows up. When a user subscribes to the community then posts show up for them normally again (but only them).

This was built into the lemmy backend but did not exist in lemmy-ui. The feature is useful to do things like stop bot communities (such as lemmit.online communities) from spamming the instance but still allow users to see them if they want


Ive started work on the modlog to get that starting to function

Currently only have removed comments and removed posts working and theres a load more button at the bottom that you can click to load the next 50 actions in the same page

In addition theres a local sort tab where you can see anything related to your local instance. This shows things that involve a moderator on your instance, a user on your instance, or a communtiy on your instance

(user is blank there as the removedpost action doesnt give user information)

Will be working with the backend next to try to improve this a bit more since currently theres things like me not being able to fetch only local actions and needing to filter through all actions (which can make pages appear blank sometimes due to no local actions done recently)


Ive started work on a logo for the project!

This is my current draft of one that ill be using for the next bit. Eventually ill be refining it a bit more

16
2
submitted 1 year ago* (last edited 1 year ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

Back with another update on Pangora-UI. Ive been working on adding the community list as well as making the entire thing semi-functional

Ive got some basic functionality in for most things and next up im going to be going through them one at a time and adding in all relevant features starting with the homepage.

I worked on the community list showing all communities in the instance, and all connected instances. This by default has the same information as lemmy-ui but you can toggle columns on and off to tailor it. (For example you can add a column for users/day, remove the comments column, etc.)

Communities will have badges on them if they fulfill certain conditions (top most condition here has priority)

  • New (full star): Communities made in the last week
  • New (half star): Communities made in the last month
  • Active: The top 2.5% communities in terms of subscribers gained in the last day (Maximum 5 chosen in local and 20 in All)
  • Hot: Top 10% of communities in terms of the most recent subscribers relative to their total subscriber amount (Maximum 100 in local, none in all)
  • Top: Top 5% of communities in terms of the most total subscribers (Maximum 100 in local and none in all)

Communities in the list have up to 100 characters of their description so that you can get an idea of what the community is before clicking on it

The list supports infinite scrolling, loading the 50 next communities when you get to the bottom

Community stats are now colored based on how high it is compared to the highest value for that stat. Blue is the highest and it goes down through green to red

Ive cleaned up the theme switching a bit and also added a button for it in the navbar

Communities and their posts can now be viewed (no sorts or pages for now)

Added a little donation area

Added a custom 404 page


Comparison between Pangora-UI and Lemmy-UI


Next up from me will be home page cleanup to fix some issues that have been happening with that and adding in features to it

Progress may be a bit slower from me from now on as university is starting back up but ill share something every week. If anyone else is also interested in contributing let me know. We have a matrix space at https://matrix.to/#/#pangora:matrix.org

17
 
 

Back with another update on programming.dev's new frontend thats being built

Have a lot more progress done in terms of post content. Post views are almost done, just need to finish up some more aspects of the comments + add in mod options

New features since my last post

  • Posts can now be viewed
  • Comments are shown when looking at posts

  • If a post has an image, you can click on the thumbnail to get a larger image popup

  • Comments can be collapsed/expanded by clicking on the colored bar on the side (and are automatically collapsed if they have a score of 0 or below). Collapsed comments show the upvotes, the creator, and up to 100 characters of the content

  • Markdown is supported in the sidebar and in messages. This has all of the markdown in lemmy-ui + some extra ones. The extra markdown is: code blocks, latex, table of contents, task lists, and anchors

  • The home page was improved a bit in terms of design and has had trending communities and the sidebar added to it. (The post sorts are still a work in progress hence why they look unfinished + are two different designs)


Here are some comparisons between Pangora-UI and Lemmy-UI!

18
0
Pangora-UI Day 2 Progress (programming.dev)
submitted 1 year ago* (last edited 1 year ago) by Ategon@programming.dev to c/pangora@programming.dev
 
 

End of the second day of since ive started working on the pangora UI. Ive for the most part settled on a design and been going through cleaning it up and adding some functionality

Feel free to give some feedback on how you think it looks. The empty space on the right is going to have the trending communities and site information like the mockup I made here

Communities all have a blue purple gradient until I can get community colors into the backend to properly populate that like in my mockup

Things added since my last post:

  • Hotkeys for all elements of the navbar to quickly choose one. (ex. you can hit x to switch to the communities tab without needing to touch your mouse)
  • Popups when you hover over a button on the navbar for a bit explaining what the option is

  • Taglines now populate with the same functionality as lemmy-ui (including markdown)
  • Posts now populate in the feed (but with no parameters yet)
  • Posts animate in when you scroll down to them

  • Light mode with hotkey toggle to toggle between light and dark

Things coming up

Planning to add in the post sorts and add in the sidebar on the right with the trending communities and instance info. Also going to be starting work on being able to view posts.

Planning to get the post feed + post viewing done by the weekend so that the UI can be tested (although youll have to run it locally for now).

Should be getting it up on a domain soon for testing

19
 
 

Programming.dev has a soft fork of lemmy that is being developed so that we can focus on things that the instance needs (such as actual code blocks). This will still get changes made to lemmy but just have the new features on top of that. If a feature is general enough to be in lemmy itself we can try to get it pushed upstream.

Originally made this community a bit ago under a different name but after I was informed that the name was already in use brought it back up as Pangora! (hopefully no issues this time) A pangora is a type of moth and its also a combination of the words pangolin and pandora.

Im currently working on improving the instance UI in a repository named pangora-ui. No changes have been pushed yet as im stick mocking up designs with no functionality yet but ill be sharing some progress on that and on changes made to pangora in this community. Pangora-UI is a completely different project from lemmy-ui and its being built using Next.js with typescript, tailwind, NextUI, and Framer Motion

Heres the most recent design ive been working on (still a bit rough but you can get an idea of what im going for):

(That search bar says search comments but can be set to search the different categories like all, communities, users, etc. using the dropdown beside it)

If anyone is interested in helping out with development there is a matrix space for pangora here: https://matrix.to/#/#pangora:matrix.org . Anyone you can contribute would be extremely helpful as we have nobody doing this full time yet. Even things like giving feedback on designs I send is great so that I can get more feedback on things as im working on it

The pangora github repositories can be found here: https://github.com/PangoraWeb