Coder Social home page Coder Social logo

lemmynet / joinlemmy-site Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 54.0 7.09 MB

Official website for Lemmy

Home Page: https://join-lemmy.org/

License: GNU Affero General Public License v3.0

Shell 0.14% JavaScript 1.61% Dockerfile 0.25% CSS 0.08% TypeScript 97.93%

joinlemmy-site's People

Contributors

aeharding avatar benja810 avatar dessalines avatar gazconroy avatar grahhnt avatar harcesz avatar ismailkarsli avatar jason-watkins avatar jgrim avatar jorgesumle avatar linux-cultist avatar mani-sh-reddy avatar mrusme avatar nethad avatar nutomic avatar povoq avatar renovate[bot] avatar rikudousage avatar ruudschilders avatar security-chief-odo avatar sleeplessone1917 avatar sortekanin avatar sunaurus avatar tealk avatar tedvdb avatar ticoombs avatar tmpod avatar xirgo avatar xyphyn avatar zoggy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

joinlemmy-site's Issues

Replace async API docs with lemmy-js-client typedoc

As much as I appreciate all the work put into the async API, its become quite unruly, and very difficult to add data to / document changes. What we've always needed is a auto-generated doc system, which unfortunately, doesn't quite exist for our back end, actix.

I've always referred to our lemmy-js-client, because its quite easy to read, up to date, and its what most app developers currently are using anyway for API docs. But now I realized it's possible to use typedoc to auto-generate great API docs for us:

image

This documentation generation can be bundled into this repo, by pulling in lemmy-js-client, building the docs, and outputting them at the current API docs location.

Federated users per month

The instance list currently only shows the number of local active users per instance. This can give the false impressions that small instances are almost dead. It would be good if we could also show the number of federated active users which can be seen from that instance. This can be especially useful to make small instances look more active.

I implemented this functionality in lemmy-stats-crawler. Now it just needs to be added on the site, probably below the existing (local) number of active users per instance.

Collect basic visitor statistics

I think this would help us to better understand where visitors are coming from and what they are interested in. Plausible seems like a good, lightweight selfhosted option without privacy problems (doesnt even use cookies).

Add filters for instances page

Maybe by language, region? Not sure.

I spose a lot of this will depend on the data format coming back from the crawler.

Line breaks in menu

This seems to happen when menu items have multiple words in them. There is also a horizontal scroll being forced at a certain window width (instead of changing into a multiline menu).

Screenshot_20220224_175527

Related, on mobile the menu is at the bottom of the page, which seems hard to find. Might be better to keep the same multiline menu, but at the top of the page.

Mention NLnet as sponsor

They are giving us 50k euro per year, that should be enough to make them a gold sponsor at least.

Also the title "support" for this page is completely wrong and needs to be changed to "donations". Support is where users go looking for documentation or a help desk.

https://join-lemmy.org/support

Auto-generate instance data

I wrote a basic crawler which collects stats and metadata from Lemmy instances. We could use that to generate the list of instances automatically, based on certain criteria, such as:

  • Instances which federate with a set of trusted instances (or at most x hops away)
  • Min/max number of users
  • Open registrations

Here's what we need to do to make this work:

  • Make instance description and other data machine readable (here's how Peertube does it
  • Parse it in the crawler, and return it in a useful format (json, csv or whatever)
  • Generate the HTML with that data

Make apps page pretty

Now that there are two official apps, you might as well turn this from a markdown page into one similar to the instances one.

AsyncAPI definition improvements suggestion

Hi folks. I'm one of maintainers at AsyncAPI.
I promised some time ago to @gazconroy that I will try to find time to look at your AsyncAPI doc and suggest some improvements.

So here I am ๐Ÿ˜„ I recently produced a lot of content around WebSocket API. Some articles and videos and example so my knowledge in the topic is super refreshed and can jump it.

Let me know if you are interested and how to approach it.

โ˜ฎ๏ธ

GitHub organization still points to join.lemmy.ml

Wasn't sure where to open an issue about your GitHub setup, this seems the most appropriate.

#52 changed the domain from join.lemmy.ml to join-lemmy.org but the GitHub org still points to the old domain:

screenshot

Cheers!

Improve a sentence internationalization on the instances page

The instances list uses a component that shows the number of users per month. For example: "40 users / month".

This sentence is not build with just one internationalized string like this: "{{users}} users / month"

Instead of it, the source code split the sentence into many strings (src/shared/components/instances.tsx, line 82):

{numToSI(users_active_month)} {i18n.t("users")} /{" "} {i18n.t("month")}

In order to make this sentence easier to translate to other languages (different grammars, right-to-left writing...), all the text should be inside one string: "{{users}} users / month"

To make things even better, the internationalization should distinguish the singular and plural forms of the sentence:

  • "{{users}} users / month" --> "40 users / month"
  • "{{users}} user / month" --> "1 user / month"

NOTE: this fix will eliminate an automatic error shown by Weblate in the Basque translation of the word "users".

Rename instance list page?

It is currently called /join, which can be ambiguous, and join.lemmy.ml/join just sounds weird. Why not call it join.lemmy.ml/instances instead?

Revise sort order of Lemmy Instances on https://join-lemmy.org/instances

This is sort of a which came first question - the chicken or the egg?

What comes first - the users or the content?

Once of the nice things about federated systems like Lemmy is users on other instances can participate in your communities. So the attractiveness of the instance should really be measured by the number of users in a community regardless if they signed up on your instance or not.

At the moment, based on the sort order on https://join-lemmy.org/instances some instances are ranking higher in terms of "users per month" but when you look at the commmunities list for that instance the number of users per month can be a lot higher of lower.

My suggestion is to base the sort order on the number of users per month for the highest ranking community on that instance. That way people interested in joining will see the instances with the most engaging content/communities. At the end of the day - getting them engaged in the content/community is going to grow long term users.

Use all language headers

Currently you're only using the first:

  // Setting the language for non-js browsers
  let lang = req.headers["accept-language"]
    ? req.headers["accept-language"].split(",")[0]
    : "en";
  i18n.changeLanguage(lang);

Deploy site automatically

Now that we have our own drone.io server, we can use it to run builds based on cron. So we could configure it to build joinlemmy once every day at a fixed time, and then setup a cronjob on our server to pull the updated image an hour later. This would mainly be useful to get rapid updates of new documentation, and updates of the instance list.

Create a news/blog section

It would have multiple advantages to publish announcements and news about the project via join-lemmy.org:

  • .org tld is better than .ml, less likely to be blocked
  • makes it clearer that lemmy the software is not identical with the lemmy.ml instance
  • could look more "professional"

The implementation could be relatively easy in this way: We make a Lemmy community specifically for project announcements (or reuse lemmy.ml/c/lemmy), and fetch the post listing via API from join-lemmy.org to display. Individual posts are also rendered on join-lemmy.org, with a comments link that goes to lemmy.ml. This has the advantage that posts still federate and can be commented on. It will required a community setting to let only mods create posts.

Instead of using the post listing, we could hardcode a list of announcements which are fetched. This would be useful in order to populate the blog section with all of our past announcements. Disadvantage is that every new post would require editing that list manually.

Better API documentation

We currently have this, but afaik thats written by hand and not fully up to date. It would be nice if we could auto-generate better API docs in some way, because a lot of people want to write clients right now. This would also make it easier to keep up to date with future changes.

Add RSS feed for news

So that people can easily follow announcements and new releases without manually checking the site.

Supports webmentions for news

Lemmy already sends webmention when a link gets posted. We could use this to show under each news item links to Lemmy posts where that news was linked. For that joinlemmy would have to receive webmentions, store them, and render them at the end of the post. It could optionally use nodeinfo to ensure that the webmention was sent by a Lemmy instance.

Switch to inferno.

Due to the lack of proper i18n support, it might just be better to not use zola, and switch to inferno. Then we could take advantage of the proper i18n support, templating, etc.

  • Convert to using inferno. Generate the static pages, resources, etc from it.
  • Add the new strings from a new joinlemmy-translations repo for weblate.

Allow instances to opt-out from join-lemmy.org/instances

My home instance doesn't advertise and in 99.9% of cases interact exclusively within the lemmyverse. The majority of membership applicants does not read the sidebar and doesn't give the impression they know what the instance is about. On top of that there's a surprising amount of garbage applications.

The only place we know that externally advertise our presence is join-lemmy.org/instances.

We'd like the possibility to opt-out to the directory on join-lemmy.org until we have the infrastructure and volunteers to handle this situation.

Use a language switcher

Currently, the join-lemmy site uses the language that is set by the user's browser. Though this is the desired behavior, it would be handy to also have the ability to switch to whatever language you want. For example, my browser's language is set to English, but it's not my native language.

Localization support

I think its very important to have translated versions of this site in different languages, to make it accessible for people who don't speak English.

This should be relatively straightforward, by moving all texts into an external file, and setting up weblate for translations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.