GithubHelp home page GithubHelp logo

mastodon / joinmastodon Goto Github PK

View Code? Open in Web Editor NEW
238.0 18.0 146.0 63.75 MB

The official Mastodon project homepage

Home Page: https://joinmastodon.org

JavaScript 6.79% SCSS 0.95% TypeScript 91.56% Dockerfile 0.69%
mastodon

joinmastodon's Introduction

joinmastodon.org

This repository contains the source for joinmastodon.org, the informational site and landing portal for the Mastodon project.

You can submit translations via Crowdin (note: you will need to be logged-in to Crowdin for the link to work correctly). Read more below.

Development

To build and run the site locally, you'll need to have Node.js version 20 installed, which you can download from the Node.js website or install via tools like fnm or nvm. For dependency management, yarn is used, it should be automatically be installed when you install Node.js, if it's not available you can use corepack enable and corepack prepare yarn@1 to install it.

Installation

yarn
yarn run dev

See package.json for more scripts.

Contributing

See CONTRIBUTING for more information. All interactions with this and other repositories that are part of the Mastodon project are subject to the Mastodon Code of Conduct.

Built with

Translations

Translations are managed via Crowdin and distributed with react-intl. Submit translations at Crowdin. Note that you will need to be logged-in to an account on the Crowdin website for the link to the project to work correctly. The project will not accept translations submitted via other means, as they would fall outside of the workflow described below.

The basic translation workflow is:

  1. Translatable messages are declared in the source files using the <FormattedMessage> component.
  2. Default messages are extracted to locales/en.json by running yarn extract.
  3. The locale files are synced with the Crowdin project. Any new messages in the source file(locales/en.json) are made available for translation for other languages. Any new translated messages are downloaded back to the repo into corresponding locale files (e.g. locales/es.json).
  4. On build, each locale loads its corresponding messages from getStaticProps() (example).

Internationalized Routing

Localized versions of each page are hosted at dedicated URLs, making it easier for web crawling in users' preferred language. (docs)

Image optimization

Raster images should be added at the maximum resolution they'll be displayed at. If art direction is not required, mobile images will be generated automatically. (docs)

Deployment

Next.js should be hosted using a Node.js server. (see instructions). The reasons that this has been chosen over a static HTML export are:

joinmastodon's People

Contributors

aditoo17 avatar andypiper avatar boffire avatar cassidyjames avatar cybertailor avatar danielgamage avatar dependabot[bot] avatar drequivalent avatar gargron avatar geopjr avatar github-actions[bot] avatar hakabahitoyo avatar kovah avatar koyuawsmbrtn avatar latrani avatar mikabusante avatar mkljczk avatar mlcohen avatar nclm avatar neet avatar noppefoxwolf avatar olistik avatar renchap avatar renovate[bot] avatar rscmbbng avatar sevan avatar sftblw avatar unextro avatar varun-s22 avatar ykzts 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

joinmastodon's Issues

Replace the press kit by an Identihub page

Identihub is a new FLOSS project to create a simple assets-downloads/visual-guidelines page for a project, with logos, colours and images ready to download. The page can be hosted on https://identihub.co or self-hosted (https://github.com/uracreative/identihub).

Could Mastodon benefit from it? So that journalists, instance admins, users and other projects can find the image they need. The ZIP file that is currently the press kit becoming a web page.

It would have:
– All the logo variations,
– The four colours,
– All the elephant illustrations,
– And something that is afaik missing, nice screenshots of the Mastodon UI.

Not working

joinmastodon.org is not offering a list of instances, says "no results. . . for now"
Seems that instances.social is down. Have left a report there as well. Seems like a bad time for this to go down, since many people are looking for alternatives to Facebook...

Add "Getting started" button to "How it works" section

Supposed I want to learn more before joining.
This section...

image

...would send me to this section...

image

Now that I know about how Mastodon works, my desire to actually join is there - but there is no button to let me go on.

My suggestion:

Add a "Get started" - button:
image
to the "How it works" section.

Remove national flags in the language selector

I suppose that the national flags in the language selector should be removed, because

  • The national flag of the United Kingdom is representing for English language.
  • The national flag of United Arab Emirates is representing for Arabic language.

But many other countries speaks these languages.

Top contributors

As there is list of sponsors, there should also be list of top contributors of Mastodon source code, and list of translators for each language. I think that because they are making Mastodon better directly (not through donations), they deserve place for them even more.

Enhancement: make sure people know they can pick any server and join with "get started" button

A compliant I have seen about joinmastodon.org is that clicking "get started" simply sends you to the "sign up" section without even explaining stuff like "joining any of these servers puts you in the Fedverse". A one-line summary for "how it works" should be added to the "get started" anchor so people know what they are doing with the "here is where I can sign up:" thing.

There is some "how it works" info on the join home page, it's just people are not guaranteed to read it. A video is nice, but not everyone has the time to watch it; the text description is at the bottom, so people may as well get confused and close the page without looking at it.

enhancement: "Notable users" info

As a way to show Mastodon's reach, possibly as part of the feature list (#4), there could be a list of orgs using Mastodon, e.g. Pixiv, Numerama, etc.

Sponsor on Liberapay

9 months ago Mastodon joined Liberapay to accept donations. This is a open source and non-profit donation platform for libre creators and project like Mastodon. Could the link to Liberapay also be added beside the Patreon option?

"Become a sponsor" on the homepage and the sponsor page now links only to Patreon. This could be changed to "Sponsor on Patreon" and second button "Sponsor on Liberapay".

Mastodon's profile on Liberapay.

License?

I can't find any info how is joinmastodon licensed…

Create a link that opens in given locale

It would be nice to have a link that already opens with a given locale. Something in the query string would already be enough, a subdomain would be perfect :)

Add support for browsers without Javascript

Hi,

When using a browser without Javascript enabled, joinmastodon.org only shows a black page.
Given that this is a static page, would it be possible to send browsers the static HTML page directly?

JSON context URL http://joinmastodon.org/ns wrongly outputs HTML homepage

Causes friendica/friendica#10740

The URL http://joinmastodon.org/ns is used as a JSON @context URL with an expected JSON output . This output is used for JSON-LD compacting and expanding.

However today it outputs the HTML homepage of the website, even with the HTTP header Accept: application/ld+json. This makes any JSON-LD compacting or expanding operation on a JSON-LD document including http://joinmastodon.org/ns in their @context list fail with no possible recovery.

Please restore the former JSON content of the https://joinmastodon.org/ns URL which is used by several ActivityPub projects including https://github.com/superseriousbusiness/gotosocial and Friendica.

Poor indication of awesome huge instance list

The only indication of mastodon runnign on many servers is hidden in the few pixels of the custom styled scroll bar in the top right:

image

My suggestion would be to either make a prominent statement about the actual number of servers running, – or – have a more prominent scroll bar style. Key is to not be shy about the length of that list.

Instance not listed

Since some days I've reopened registrations on my instance mastodonten.de. The instance is listed on instances.org but doesn't appear on joinmastodon. Since some days there are always the same instances shown (but there are so much more on instances.social?)

I would like to have listed mastodonten.de on joinmastodon.org.

Compress Images?

Hey there! What are your thoughts on compressing images to save bandwidth and improve page speed? Here's a summary of results I got from non-lossy compression:

screen shot 2017-10-21 at 2 01 04 pm

And here's what it looks like with lossy compression:

screen shot 2017-10-21 at 2 02 13 pm

Personally I think the lossiness look identical enough for the savings, and we could review the before/after in a PR. Just let me know which one you want and I'll send a PR.

Sign up wizard categories are redundant

For the part where you choose "I am a ...", some of the choices return exactly the same results. For example, "a developer" and "a sysadmin" is exactly the same set of instances.

Perhaps either collapse this into a more generalistic "techie" category, or rethink the usage of categories? Invariably, there will be some overlap between use-cases and some niches might be much closer than others.

Translations

Since this is becoming Mastodon’s official website, it should be multilingual! It’s currently not really possible to send the link to anyone not reading English since they won’t get anything, ever though Mastodon itself is well localised and the community covers a wide range of languages.

Add a "Mobile application" section

It would be great for new user to easily know that there is already several mobile application existing and avoiding them the trouble of looking for one or missing one that might suit their need better.

Chinese/Japanese font-family are not able to be "font-weight: 500"

Thanks for merge Japanese translation 👍

Btw its SCSS seems to specified font-weight as 500 for <strong> elements. I think it's nice design,
But sadly Chinese/Japanese characters usually doesn't have deference between font-weight: 400 and 500.

Screenshot:

2017-09-17 16 33 10

Because we're using over 2000 characters and some are not supported such as 500, 700 etc. (If a designer designed 2000 letters in nine ways from 100 to 900, they must die.)

Anyway, could you change the strong element's style for font-weight: 600 / or apply a language-specific class such as .ja to parent elements such as body and apply styles appropriate for each languages?

How can a "instance picker" support a healty federated grouth

Idea.

Choses an (informed) arbitrary number for a healthy base of users for an instances. Say 20-200 users then base the ordering on user GROWTH in this range.

Then new instances are responsible to push there install into view and they should then organically grow with referrals based on visibility before dropping back to self grouth after they reach a sustainable size.

Healthy "federated" grouth rather than a few huge instances.

Just one idea.

Performance - Reflow issues

I noticed some performance issues lately on joinmastodon.org, appearing a few seconds after what looks like the initial load.

A quick profiling seems to point to the react-custom-scrollbars triggering a massive reflow for a couple of seconds, but I'll investigate more in-depth.

Screenshot of the profiling + JSON profile are attached

image
joinmastodon-reflow-profile.json.zip

Make the <title> translatable

As of now, the <title> is static. Since there's a catch phrase there, it might be a good idea to translate it to different languages.

Elephant go on top of navbar

Hi 👋
A very small graphic issue.
When I choose Deutsch the elephant on top of the website go on top of the navbar.
Screenshot below.
Screenshot_2020-09-25 Mastodon

Weblate

Title is self-explanatory, joinmastodon.org should be translatable on Weblate.

Finding sites by Tag/catogory

It's not a good step to take the hierarchy root (category) rather than the horizontal root (tags) and folksonamy/ tag cloud.

The step to use top defined category is a judgment. Me feels a misstep can understand it easer to have a fixed list but doing it right is not usually the easiest thing to do.

Can we look at this agen.

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.