diff --git a/.circleci/config.yml b/.circleci/config.yml index 04cf6d6fb..de6aa1ee6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,11 +15,11 @@ jobs: working_directory: packages/pl-api command: pnpm run build - run: - name: Install pl-fe deps + name: Install Nicolium deps working_directory: packages/pl-fe command: pnpm install - run: - name: Build pl-fe + name: Build Nicolium working_directory: packages/pl-fe command: pnpm run build - run: diff --git a/.vscode/pl-fe.code-snippets b/.vscode/nicolium.code-snippets similarity index 93% rename from .vscode/pl-fe.code-snippets rename to .vscode/nicolium.code-snippets index 9bc4b1bc2..0f47f494d 100644 --- a/.vscode/pl-fe.code-snippets +++ b/.vscode/nicolium.code-snippets @@ -1,5 +1,5 @@ { - // Place your pl-fe workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and + // Place your Nicolium workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: diff --git a/README.md b/README.md index 04eb37810..82c81a2a8 100644 --- a/README.md +++ b/README.md @@ -1,53 +1,52 @@ -# `pl-fe` +# Nicolium (formerly `pl-fe`) -[![Codeberg Repo stars](https://img.shields.io/gitea/stars/mkljczk/pl-fe?gitea_url=https%3A%2F%2Fcodeberg.org&logo=Codeberg)](https://codeberg.org/mkljczk/pl-fe) -[![GitHub Repo stars](https://img.shields.io/github/stars/mkljczk/pl-fe)](https://github.com/mkljczk/pl-fe) -[![GitHub License](https://img.shields.io/github/license/mkljczk/pl-fe)](https://github.com/mkljczk/pl-fe?tab=AGPL-3.0-1-ov-file#readme) +[![Codeberg Repo stars](https://img.shields.io/gitea/stars/mkljczk/nicolium?gitea_url=https%3A%2F%2Fcodeberg.org&logo=Codeberg)](https://codeberg.org/mkljczk/nicolium) +[![GitHub Repo stars](https://img.shields.io/github/stars/mkljczk/nicolium)](https://github.com/mkljczk/nicolium) +[![GitHub License](https://img.shields.io/github/license/mkljczk/nicolium)](https://github.com/mkljczk/nicolium?tab=AGPL-3.0-1-ov-file#readme) [![Weblate project translated](https://img.shields.io/weblate/progress/pl-fe)](https://hosted.weblate.org/engage/pl-fe/) ![trans rights btw](https://img.shields.io/badge/-rights_btw-wtf?style=flat&label=trans&labelColor=5BCEFA&color=F5A9B8) -`pl-fe` is a social networking client app. It works with any Mastodon API-compatible software, but it's focused on supporting alternative backends, like Pleroma or GoToSocial. +Nicolium is a social networking client app. It works with any Mastodon API-compatible software, but it's focused on supporting alternative backends, like Pleroma or GoToSocial. ## Goals -- **Feature-rich**: `pl-fe` includes a wide range of features, such as a WYSIWYG text editor, draft posts, and more. -- **Compatibility**: `pl-fe` is compatible with any Mastodon API-compatible software, treating alternative backends as first-class citizens. Chats, emoji reactions, groups, interaction policies? We support them all. Thanks to `pl-api`, which provides a unified interface for interacting with Mastodon API-compatible servers, implementation differences do not affect the user experience. -- **Unopinionated**: `pl-fe` doesn't impose any arbitrary limitations on the user. We do not specify a limit of reactions you can use on a single post and try to implement every feature available in the API. -- **Stay private**: `pl-fe` includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity. +- **Feature-rich**: Nicolium includes a wide range of features, such as a WYSIWYG text editor, draft posts, and more. +- **Compatibility**: Nicolium is compatible with any Mastodon API-compatible software, treating alternative backends as first-class citizens. Chats, emoji reactions, groups, interaction policies? We support them all. Thanks to `pl-api`, which provides a unified interface for interacting with Mastodon API-compatible servers, implementation differences do not affect the user experience. +- **Unopinionated**: Nicolium doesn't impose any arbitrary limitations on the user. We do not specify a limit of reactions you can use on a single post and try to implement every feature available in the API. +- **Stay private**: Nicolium includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity. ## Try it out -Want to test `pl-fe` with **any existing MastoAPI-compatible server?** Try [pl.mkljczk.pl](https://pl.mkljczk.pl) — enter your server's domain name to use `pl-fe` on any server! +Want to test Nicolium with **any existing MastoAPI-compatible server?** Try [pl.mkljczk.pl](https://pl.mkljczk.pl) — enter your server's domain name to use Nicolium on any server! -If you want to use `pl-fe` on your server, follow the installation instructions in the documentation. We offer guides for [Pleroma/Akkoma](https://pl.mkljczk.pl/docs/installing/pleroma/), [Iceshrimp.NET](https://pl.mkljczk.pl/docs/installing/iceshrimp/), [Mitra](https://pl.mkljczk.pl/docs/installing/mitra/), and [standalone installations](https://pl.mkljczk.pl/docs/installing/standalone/). +If you want to use Nicolium on your server, follow the installation instructions in the documentation. We offer guides for [Pleroma/Akkoma](https://pl.mkljczk.pl/docs/installing/pleroma/), [Iceshrimp.NET](https://pl.mkljczk.pl/docs/installing/iceshrimp/), [Mitra](https://pl.mkljczk.pl/docs/installing/mitra/), and [standalone installations](https://pl.mkljczk.pl/docs/installing/standalone/). ## Repository -The repository hosts `pl-fe`, but also libraries related to the project. Currently, this includes: - -- [pl-fe](./packages/pl-fe/) itself — a social networking client app -- [pl-api](./packages/pl-api) — a library for interacting with Mastodon API-compatible servers, focused on support for projects extending the official Mastodon API. It is used by `pl-fe`. -- [pl-hooks](./packages/pl-hooks) — a library including hooks for integrating with Mastodon API, based on `pl-api` and TanStack Query. It is intended to be used within `pl-fe`. Work in progress. +The repository hosts Nicolium, but also libraries related to the project. Currently, this includes: +- [Nicolium](./packages/pl-fe/) itself — a social networking client app +- [pl-api](./packages/pl-api) — a library for interacting with Mastodon API-compatible servers, focused on support for projects extending the official Mastodon API. It is used by Nicolium. +- [pl-hooks](./packages/pl-hooks) — a library including hooks for integrating with Mastodon API, based on `pl-api` and TanStack Query. It is intended to be used within Nicolium. Work in progress. ## Contributing -This project is hosted on [Codeberg](https://codeberg.org/mkljczk/pl-fe) and [GitHub](https://github.com/mkljczk/pl-fe). You can open issues on Codeberg or create pull requests on both platforms. +This project is hosted on [Codeberg](https://codeberg.org/mkljczk/nicolium) and [GitHub](https://github.com/mkljczk/nicolium). You can open issues on Codeberg or create pull requests on both platforms. You can find more information about setting up the development environment in [the documentation](https://pl.mkljczk.pl/docs/contributing/pl-fe/). -## FAQ / Common misconceptions +## ~~FAQ / Common misconceptions~~ -### What does the project name mean? +### ~~What does the project name mean?~~ -I named the project after my now-deprecated personal fork of Pleroma, called simply `pl`. They were meant to be recommended together. However, `pl-fe` evolved into something more serious than a little fork. This is a bad and confusing name, but I don't really care about branding. +~~I named the project after my now-deprecated personal fork of Pleroma, called simply `pl`. They were meant to be recommended together. However, `pl-fe` evolved into something more serious than a little fork. This is a bad and confusing name, but I don't really care about branding.~~ -> For a maintained fork of Pleroma focused on `pl-fe` compatibility, check out my new project, [Nicolex](https://codeberg.org/mkljczk/nicolex). +> For a maintained fork of Pleroma focused on Nicolex compatibility, check out my new project, [Nicolex](https://codeberg.org/mkljczk/nicolex). -I will bite people calling `pl-fe` *Polish front-end* or *Polish Soapbox*. And I don't mean sending them the [`Bite` activity](https://ns.mia.jetzt/as/) (which works in pl-fe on supported backends btw). +~~I will bite people calling `pl-fe` *Polish front-end* or *Polish Soapbox*. And I don't mean sending them the [`Bite` activity](https://ns.mia.jetzt/as/) (which works in pl-fe on supported backends btw).~~ ## License -`pl-fe` is a fork of [Soapbox](https://gitlab.com/soapbox-pub/soapbox/) and inherits a lot of code from [Mastodon](https://github.com/mastodon/mastodon/). +Nicolex is a fork of [Soapbox](https://gitlab.com/soapbox-pub/soapbox/) and inherits a lot of code from [Mastodon](https://github.com/mastodon/mastodon/). This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by @@ -64,7 +63,7 @@ along with this program. If not, see . --- -Follow [my Pleroma account](https://pl.fediverse.pl/@mkljczk) to stay up to date on `pl-fe` development. +Follow [my Pleroma account](https://pl.fediverse.pl/@mkljczk) to stay up to date on Nicolium development. This project is tested with BrowserStack. diff --git a/docs/building/pl-fe.md b/docs/building/nicolium.md similarity index 53% rename from docs/building/pl-fe.md rename to docs/building/nicolium.md index 67c9e7103..31d73fe57 100644 --- a/docs/building/pl-fe.md +++ b/docs/building/nicolium.md @@ -1,6 +1,6 @@ -# Building pl-fe +# Building Nicolium -Building pl-fe requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`. +Building Nicolium requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`. To enable `pnpm` using `corepack`, run the following command: @@ -8,17 +8,17 @@ To enable `pnpm` using `corepack`, run the following command: corepack enable pnpm ``` -You can now proceed to fetching pl-fe Git repository, installing dependencies, and building the project: +You can now proceed to fetching Nicolium Git repository, installing dependencies, and building the project: ```bash -# Clone the pl-fe repository -git clone https://codeberg.org/mkljczk/pl-fe.git -cd pl-fe +# Clone the Nicolium repository +git clone https://codeberg.org/mkljczk/nicolium.git +cd nicolium # Install dependencies pnpm install # Build the pl-api dependency pnpm -F pl-api build -# Build the pl-fe project +# Build the Nicolium project pnpm -F pl-fe build ``` @@ -27,5 +27,5 @@ The built files will be located in the `packages/pl-fe/dist` directory. You can Following environment variables can be used to customize the instance in build process: - `BACKEND_URL` - URL of the Mastodon-compatible instance to connect to. If not set, tries fetching /api/v1/instance from the origin and falls back to standalone mode. -- `FE_SUBDIRECTORY` - The path where pl-fe is mounted to. Defaults to `/`. +- `FE_SUBDIRECTORY` - The path where Nicolium is mounted to. Defaults to `/`. - `WITH_LANDING_PAGE` - Displays the landing page on the home page, when running in standalone mode. \ No newline at end of file diff --git a/docs/contributing/nicolium.md b/docs/contributing/nicolium.md new file mode 100644 index 000000000..4360bbd8e --- /dev/null +++ b/docs/contributing/nicolium.md @@ -0,0 +1,71 @@ +# Contributing to Nicolium + +The page intends to provide a technical overview of the Nicolium codebase and guidelines for potential contributors. + +## Used technologies + +Nicolium is a single page application built using the [React](https://react.dev/) framework. It uses [TypeScript](https://www.typescriptlang.org/) as the programming language and [Vite](https://vitejs.dev/) as the build tool. Routing is handled by [TanStack Router](https://tanstack.com/router/latest). Client state management is done using [Zustand](https://zustand-demo.pmnd.rs/) and server state management using [TanStack Query](https://tanstack.com/query/latest). + +!!! note + Important parts of Nicolium are currently being refactored to use a different set of libraries. You can find occurrences of tools being phased out, like Redux or TailwindCSS. Larger contributions should wait until the refactor is complete. + +Nicolium also uses `pl-api` library for interacting with the Mastodon-compatible backends. The goal of `pl-api` is to provide a unified, type-safe API for multiple backends extending Mastodon API in incompatible ways. You can find the `pl-api` source code in the `packages/pl-api` directory of the Nicolium repository. + +## Setting up development environment + +Setting up Nicolium requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`. +To enable `pnpm` using `corepack`, run the following command: + +```bash +corepack enable pnpm +``` + +You can now proceed to fetching Nicolium Git repository, installing dependencies, and—finally—running the development server: + +```bash +# Clone the Nicolium repository +git clone https://codeberg.org/mkljczk/nicolium.git +cd nicolium +# Install dependencies +pnpm install +# Build the pl-api dependency +pnpm -F pl-api build # Use `pnpm -F pl-api watch` if you want to develop pl-api alongside Nicolium +# Run the Nicolium development server (by default at http://localhost:7312) +pnpm -F pl-fe dev +``` + +The server supports hot module reloading, so any changes you make to the source code will be reflected in the browser automatically. + +!!! tip + You can install the [React Developer Tools](https://react.dev/learn/react-developer-tools) browser extension to inspect components, their props and state. It might help you understand the application better and identify performance problems. It is available for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/react-devtools/), [Chrome](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) (and compatible Chromium-based browsers) and [Edge](https://microsoftedge.microsoft.com/addons/detail/react-developer-tools/gpphkfbcpidddadnkolkpfckpihlkkil). + +## Testing + +Currently, tests are disabled in Nicolium. They will be reintroduced after the ongoing refactor is complete. + +## Contributing guidelines + +Nicolium hosts its repository on [Codeberg](https://codeberg.org/mkljczk/nicolium) and [GitHub](https://github.com/mkljczk/nicolium). While issues are only tracked on Codeberg, you can submit pull requests on both platforms. Remember to follow the [Code of Conduct](../code-of-conduct.md) when interacting with the community. +The project uses [ESLint](https://eslint.org/) and [Stylelint](https://stylelint.io/) for code style checking, which is automatically run on every commit using [Husky](https://typicode.github.io/husky). You can run the linters manually using the following command: + +```bash +pnpm -F pl-fe lint +``` + +While contributing code, try to follow the existing coding style. Common sense rules regarding contributions apply. Keep your changes focused on a single issue or feature. Do not create pull requests including larger changes you don't understand fully—whether it's from another project or some auto-generated code. + +## Localization + +[React Intl](https://formatjs.github.io/docs/react-intl/) is used for localizing Nicolium. All user-visible strings, unless provided by backend, should be made translatable. + +Before committing changes adding or modifying user-visible strings, make sure to extract the messages using the following command: + +```bash +pnpm -F pl-fe i18n +``` + +You can help translating Nicolium into your language on [Weblate](https://hosted.weblate.org/projects/pl-fe/). + + +Translation status + \ No newline at end of file diff --git a/docs/contributing/pl-api.md b/docs/contributing/pl-api.md index 8cf78e5e3..5ebaa541f 100644 --- a/docs/contributing/pl-api.md +++ b/docs/contributing/pl-api.md @@ -4,24 +4,23 @@ It uses a minimal set of dependencies, most importantly [Valibot](https://valibot.dev/) for remote data validation and guaranteeing type safety. Fetch API is used for making HTTP requests. -The development of `pl-api` happens inside the `pl-fe` monorepo. You can find the source code in the `packages/pl-api` directory of the `pl-fe` repository. +The development of `pl-api` happens inside the Nicolium monorepo. You can find the source code in the `packages/pl-api` directory of the Nicolium repository. ## Setting up development environment -Setting up `pl-fe` requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`. - +Setting up Nicolium requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`. To enable `pnpm` using `corepack`, run the following command: ```bash corepack enable pnpm ``` -You can now proceed to fetching pl-fe Git repository, installing dependencies, and running the development server: +You can now proceed to fetching Nicolium Git repository, installing dependencies, and running the development server: ```bash -# Clone the pl-fe repository -git clone https://codeberg.org/mkljczk/pl-fe.git -cd pl-fe +# Clone the Nicolium repository +git clone https://codeberg.org/mkljczk/nicolium.git +cd nicolium # Install dependencies pnpm install # Build the pl-api dependency @@ -32,7 +31,7 @@ This will start a Vite development server where you can use `pl-api` client insi ## Contributing guidelines -`pl-fe` monorepo is hosted on [Codeberg](https://codeberg.org/mkljczk/pl-fe) and [GitHub](https://github.com/mkljczk/pl-fe). While issues are only tracked on Codeberg, you can submit pull requests on both platforms. Remember to follow the [Code of Conduct](../code-of-conduct.md) when interacting with the community. +Nicolium monorepo is hosted on [Codeberg](https://codeberg.org/mkljczk/nicolium) and [GitHub](https://github.com/mkljczk/nicolium). While issues are only tracked on Codeberg, you can submit pull requests on both platforms. Remember to follow the [Code of Conduct](../code-of-conduct.md) when interacting with the community. The project uses [ESLint](https://eslint.org/) for code style checking. You can run the linter using the following command: diff --git a/docs/contributing/pl-fe.md b/docs/contributing/pl-fe.md deleted file mode 100644 index 512f463ef..000000000 --- a/docs/contributing/pl-fe.md +++ /dev/null @@ -1,73 +0,0 @@ -# Contributing to pl-fe - -The page intends to provide a technical overview of the `pl-fe` codebase and guidelines for potential contributors. - -## Used technologies - -`pl-fe` is a single page application built using the [React](https://react.dev/) framework. It uses [TypeScript](https://www.typescriptlang.org/) as the programming language and [Vite](https://vitejs.dev/) as the build tool. Routing is handled by [TanStack Router](https://tanstack.com/router/latest). Client state management is done using [Zustand](https://zustand-demo.pmnd.rs/) and server state management using [TanStack Query](https://tanstack.com/query/latest). - -!!! note - Important parts of `pl-fe` are currently being refactored to use a different set of libraries. You can find occurrences of tools being phased out, like Redux or TailwindCSS. Larger contributions should wait until the refactor is complete. - -`pl-fe` also uses `pl-api` library for interacting with the Mastodon-compatible backends. The goal of `pl-api` is to provide a unified, type-safe API for multiple backends extending Mastodon API in incompatible ways. You can find the `pl-api` source code in the `packages/pl-api` directory of the `pl-fe` repository. - -## Setting up development environment - -Setting up `pl-fe` requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`. - -To enable `pnpm` using `corepack`, run the following command: - -```bash -corepack enable pnpm -``` - -You can now proceed to fetching pl-fe Git repository, installing dependencies, and—finally—running the development server: - -```bash -# Clone the pl-fe repository -git clone https://codeberg.org/mkljczk/pl-fe.git -cd pl-fe -# Install dependencies -pnpm install -# Build the pl-api dependency -pnpm -F pl-api build # Use `pnpm -F pl-api watch` if you want to develop pl-api alongside pl-fe -# Run the pl-fe development server (by default at http://localhost:7312) -pnpm -F pl-fe dev -``` - -The server supports hot module reloading, so any changes you make to the source code will be reflected in the browser automatically. - -!!! tip - You can install the [React Developer Tools](https://react.dev/learn/react-developer-tools) browser extension to inspect components, their props and state. It might help you understand the application better and identify performance problems. It is available for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/react-devtools/), [Chrome](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) (and compatible Chromium-based browsers) and [Edge](https://microsoftedge.microsoft.com/addons/detail/react-developer-tools/gpphkfbcpidddadnkolkpfckpihlkkil). - -## Testing - -Currently, tests are disabled in `pl-fe`. They will be reintroduced after the ongoing refactor is complete. - -## Contributing guidelines - -`pl-fe` hosts its repository on [Codeberg](https://codeberg.org/mkljczk/pl-fe) and [GitHub](https://github.com/mkljczk/pl-fe). While issues are only tracked on Codeberg, you can submit pull requests on both platforms. Remember to follow the [Code of Conduct](../code-of-conduct.md) when interacting with the community. - -The project uses [ESLint](https://eslint.org/) and [Stylelint](https://stylelint.io/) for code style checking, which is automatically run on every commit using [Husky](https://typicode.github.io/husky). You can run the linters manually using the following command: - -```bash -pnpm -F pl-fe lint -``` - -While contributing code, try to follow the existing coding style. Common sense rules regarding contributions apply. Keep your changes focused on a single issue or feature. Do not create pull requests including larger changes you don't understand fully—whether it's from another project or some auto-generated code. - -## Localization - -[React Intl](https://formatjs.github.io/docs/react-intl/) is used for localizing `pl-fe`. All user-visible strings, unless provided by backend, should be made translatable. - -Before committing changes adding or modifying user-visible strings, make sure to extract the messages using the following command: - -```bash -pnpm -F pl-fe i18n -``` - -You can help translating `pl-fe` into your language on [Weblate](https://hosted.weblate.org/projects/pl-fe/). - - -Translation status - \ No newline at end of file diff --git a/docs/installing/iceshrimp.md b/docs/installing/iceshrimp.md index 51cd6b826..e9bc0b3d5 100644 --- a/docs/installing/iceshrimp.md +++ b/docs/installing/iceshrimp.md @@ -1,8 +1,8 @@ -# Installing pl-fe as Iceshrimp.NET frontend +# Installing Nicolium as Iceshrimp.NET frontend -Iceshrimp.NET does not have built-in support for alternative frontends. However, there are ways to use `pl-fe` as the frontend for Iceshrimp.NET by rerouting specific requests using a reverse proxy like Nginx. +Iceshrimp.NET does not have built-in support for alternative frontends. However, there are ways to use Nicolium as the frontend for Iceshrimp.NET by rerouting specific requests using a reverse proxy like Nginx. -While this is the only way to use some of Iceshrimp.NET-specific features with `pl-fe`, because of Iceshrimp.NET CORS configuration, remember that it doesn't have full feature parity with the default Iceshrimp.NET frontend. You might prefer using `pl-fe` [in standalone mode](./standalone.md) instead. +While this is the only way to use some of Iceshrimp.NET-specific features with Nicolium, because of Iceshrimp.NET CORS configuration, remember that it doesn't have full feature parity with the default Iceshrimp.NET frontend. You might prefer using Nicolium [in standalone mode](./standalone.md) instead. ## Example Nginx configuration @@ -13,7 +13,7 @@ map $http_upgrade $connection_upgrade { } map "$http_accept,$http_content_type" $maybe_activitypub { - default @plfe; + default @nicolium; "~application/json" @shrimp; "~application/activity\+json" @shrimp; @@ -37,7 +37,7 @@ server { try_files /dev/null $maybe_activitypub; } - location @plfe { + location @nicolium { try_files /index.html /dev/null; } diff --git a/docs/installing/mitra.md b/docs/installing/mitra.md index 75f3e75b8..8d48ac959 100644 --- a/docs/installing/mitra.md +++ b/docs/installing/mitra.md @@ -1,6 +1,6 @@ -# Installing pl-fe as Mitra frontend +# Installing Nicolium as Mitra frontend -Installing `pl-fe` as a frontend for Mitra is no different from installing the default Mitra Web frontend. Just extract the `pl-fe` files into the directory specified in `config.yaml` under `web_client_dir`, by default `/usr/share/mitra/www`. +Installing Nicolium as a frontend for Mitra is no different from installing the default Mitra Web frontend. Just extract the Nicolium files into the directory specified in `config.yaml` under `web_client_dir`, by default `/usr/share/mitra/www`. ```bash curl -O https://pl.mkljczk.pl/pl-fe.zip diff --git a/docs/installing/pleroma-akkoma.md b/docs/installing/pleroma-akkoma.md index aa80aed3e..1d6feabc9 100644 --- a/docs/installing/pleroma-akkoma.md +++ b/docs/installing/pleroma-akkoma.md @@ -1,8 +1,8 @@ -# Installing pl-fe as Pleroma/Akkoma frontend +# Installing Nicolium as Pleroma/Akkoma frontend ## Installation in instance static directory -The most straightforward way to install `pl-fe` as a frontend for Pleroma or Akkoma is to simply download it and place its files in the `/instance/static` directory of your Pleroma/Akkoma installation (usually `/opt/pleroma/instance/static` or `/opt/akkoma/instance/static`, accordingly). +The most straightforward way to install Nicolium as a frontend for Pleroma or Akkoma is to simply download it and place its files in the `/instance/static` directory of your Pleroma/Akkoma installation (usually `/opt/pleroma/instance/static` or `/opt/akkoma/instance/static`, accordingly). ```bash curl -O https://pl.mkljczk.pl/pl-fe.zip @@ -12,9 +12,9 @@ rm pl-fe.zip ## Installation via Pleroma/Akkoma frontend management -It is also possible to use the Pleroma frontend management tool. You can find more information about it in the [Pleroma documentation](https://docs.pleroma.social/backend/administration/frontends-management/). On Pleroma, you can use either the PleromaFE built-in admin dashboard or the older AdminFE to install `pl-fe` and set it as the server frontend. You don't have to provide any URL. It's right there in Pleroma. +It is also possible to use the Pleroma/Akkoma frontend management tool. You can find more information about it in the [Pleroma documentation](https://docs.pleroma.social/backend/administration/frontends-management/). You can use either the PleromaFE built-in admin dashboard or the older AdminFE to install Nicolium and set it as the server frontend. You don't have to provide any URL. It's right there in Pleroma/Akkoma. -On Akkoma, however, there is no `pl-fe` in the default available frontends list ([yet?](https://akkoma.dev/AkkomaGang/akkoma/pulls/945)). You can still install it, but you need to explicitly provide the URL to `pl-fe`. To install it from CLI, use: +To install it from CLI, use: ### OTP ```bash @@ -27,7 +27,7 @@ On Akkoma, however, there is no `pl-fe` in the default available frontends list mix pleroma.frontend install pl-fe --ref develop --build-url https://pl.mkljczk.pl/pl-fe.zip --build-dir . ``` -It is now possible to set `pl-fe` as the primary frontend in the configuration file or via AdminFE: +It is now possible to set Nicolium as the primary frontend in the configuration file or via AdminFE: ```elixir config :pleroma, :frontends, primary: %{ @@ -37,4 +37,4 @@ config :pleroma, :frontends, ... ``` -On Akkoma, it is also possible for individual users to select their preferred frontend to `pl-fe` by visiting `/akkoma/frontend` page on their Akkoma instance. \ No newline at end of file +On Akkoma, it is also possible for individual users to select their preferred frontend to Nicolium by visiting `/akkoma/frontend` page on their Akkoma instance. \ No newline at end of file diff --git a/docs/installing/standalone.md b/docs/installing/standalone.md index 70e8c7035..6d2ecf7c6 100644 --- a/docs/installing/standalone.md +++ b/docs/installing/standalone.md @@ -1,16 +1,16 @@ -# Standalone pl-fe installation +# Standalone Nicolium installation -To install `pl-fe` in standalone mode, allowing to sign in to any instance implementing Mastodon client API, you only need a static web server to serve the files. As usual on single page applications with client-side routing, the server must be configured to fallback to `index.html` for non-matching routes. +To install Nicolium in standalone mode, allowing to sign in to any instance implementing Mastodon client API, you only need a static web server to serve the files. As usual on single page applications with client-side routing, the server must be configured to fallback to `index.html` for non-matching routes. ## Example Caddy configuration ```caddy -pl-fe.example.com { - root * /var/www/pl-fe +nicolium.example.com { + root * /var/www/nicolium encode try_files {path} /index.html file_server } ``` -This assumes you're serving `pl-fe` under the pl-fe.example.com domain and the `pl-fe` files are located in `/var/www/pl-fe`. You can download `pl-fe` from `https://pl.mkljczk.pl/pl-fe.zip` or [build it from source](../building/pl-fe.md). \ No newline at end of file +This assumes you're serving Nicolium under the nicolium.example.com domain and the Nicolium files are located in `/var/www/nicolium`. You can download Nicolium from `https://pl.mkljczk.pl/pl-fe.zip` or [build it from source](../building/nicolium.md). \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index e77d78b61..87c048a51 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,4 +1,4 @@ -site_name: pl-fe Documentation +site_name: Nicolium (formerly pl-fe) Documentation site_url: https://pl.mkljczk.pl/docs/ theme: name: material diff --git a/packages/pl-api/README.md b/packages/pl-api/README.md index e8bf4b29f..0c5e3e4ab 100644 --- a/packages/pl-api/README.md +++ b/packages/pl-api/README.md @@ -37,8 +37,8 @@ For unsupported projects, it falls back to a basic feature set, though every met ## Projects using `pl-api` -* [`pl-fe`](https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-fe) is a web client for Mastodon-compatible servers forked from Soapbox. It uses `pl-api` for API interactions. -* [`pl-hooks`](https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-hooks) is a work-in-progress library utilizing `pl-api`. +* [Nicolium](https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-fe) is a web client for Mastodon-compatible servers forked from Soapbox. It uses `pl-api` for API interactions. +* [`pl-hooks`](https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-hooks) is a work-in-progress library utilizing `pl-api`. If you are using `pl-api` in your project, please open a pull request with a link to the project. diff --git a/packages/pl-api/llms.txt b/packages/pl-api/llms.txt index e69290a40..2e208cdb3 100644 --- a/packages/pl-api/llms.txt +++ b/packages/pl-api/llms.txt @@ -8,7 +8,7 @@ pl-api is a TypeScript/JavaScript library that provides a type-safe client for i - Version: 1.0.0-rc.94 - License: AGPL-3.0-or-later -- Homepage: https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-api +- Homepage: https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-api - Documentation: https://pl.mkljczk.pl/pl-api-docs - NPM package: https://www.npmjs.com/package/pl-api @@ -95,8 +95,8 @@ page1.items.forEach(account => console.log(account.username)); ## Projects using pl-api -- **pl-fe** - Web client for Mastodon-compatible servers (https://codeberg.org/mkljczk/pl-fe) -- **pl-hooks** - React hooks library for Mastodon APIs (https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-hooks) +- Nicolium - Web client for Mastodon-compatible servers (https://codeberg.org/mkljczk/nicolium) +- **pl-hooks** - React hooks library for Mastodon APIs (https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-hooks) ## Development @@ -159,8 +159,8 @@ stream.listen((event) => { ## Links -- Repository: https://codeberg.org/mkljczk/pl-fe -- Issues: https://codeberg.org/mkljczk/pl-fe/issues +- Repository: https://codeberg.org/mkljczk/nicolium +- Issues: https://codeberg.org/mkljczk/nicolium/issues - NPM package: https://www.npmjs.com/package/pl-api - API documentation: https://pl.mkljczk.pl/pl-api-docs - Mastodon API docs: https://docs.joinmastodon.org diff --git a/packages/pl-api/package.json b/packages/pl-api/package.json index 5ed4995bf..6f1bf1506 100644 --- a/packages/pl-api/package.json +++ b/packages/pl-api/package.json @@ -2,13 +2,13 @@ "name": "pl-api", "version": "1.0.0-rc.97", "type": "module", - "homepage": "https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-api", + "homepage": "https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-api", "repository": { "type": "git", - "url": "git+https://codeberg.org/mkljczk/pl-fe.git" + "url": "git+https://codeberg.org/mkljczk/nicolium.git" }, "bugs": { - "url": "https://codeberg.org/mkljczk/pl-fe/issues" + "url": "https://codeberg.org/mkljczk/nicolium/issues" }, "scripts": { "dev": "vite", diff --git a/packages/pl-fe/CHANGELOG.md b/packages/pl-fe/CHANGELOG.md index c7298b822..7bb1e0e96 100644 --- a/packages/pl-fe/CHANGELOG.md +++ b/packages/pl-fe/CHANGELOG.md @@ -6,7 +6,7 @@ Changes made since the project forked from Soapbox in April 2024. ### Major changes -- Switched to a separate library [`pl-api`](https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-api) for Mastodon API integration. It is mostly written from scratch, inheriting minor code parts from Soapbox/Mastodon. This also comes with improved compatibility with various Mastodon API extensions and abstracts out the implementation details. +- Switched to a separate library [`pl-api`](https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-api) for Mastodon API integration. It is mostly written from scratch, inheriting minor code parts from Soapbox/Mastodon. This also comes with improved compatibility with various Mastodon API extensions and abstracts out the implementation details. ### Added diff --git a/packages/pl-fe/app.json b/packages/pl-fe/app.json index 15128b523..26716204d 100644 --- a/packages/pl-fe/app.json +++ b/packages/pl-fe/app.json @@ -1,7 +1,7 @@ { - "name": "pl-fe", + "name": "Nicolium", "description": "Mastodon-compatible social media front-end.", "keywords": ["fediverse"], - "website": "https://codeberg.org/mkljczk/pl-fe", + "website": "https://codeberg.org/mkljczk/nicolium", "stack": "container" } diff --git a/packages/pl-fe/package.json b/packages/pl-fe/package.json index 6f9950f10..f32707683 100644 --- a/packages/pl-fe/package.json +++ b/packages/pl-fe/package.json @@ -1,20 +1,20 @@ { "name": "pl-fe", - "displayName": "pl-fe", + "displayName": "Nicolium", "version": "0.0.1", "type": "module", "description": "Mastodon-compatible social media front-end", - "homepage": "https://codeberg.org/mkljczk/pl-fe", + "homepage": "https://codeberg.org/mkljczk/nicolium", "repository": { "type": "git", - "url": "https://codeberg.org/mkljczk/pl-fe" + "url": "https://codeberg.org/mkljczk/nicolium" }, "keywords": [ "fediverse", "pleroma" ], "bugs": { - "url": "https://codeberg.org/mkljczk/pl-fe/issues" + "url": "https://codeberg.org/mkljczk/nicolium/issues" }, "scripts": { "start": "npx vite serve", diff --git a/packages/pl-fe/src/locales/en.json b/packages/pl-fe/src/locales/en.json index 7e9d5d11d..3f52907b5 100644 --- a/packages/pl-fe/src/locales/en.json +++ b/packages/pl-fe/src/locales/en.json @@ -1173,20 +1173,21 @@ "keyboard_shortcuts.toot": "to start a new post", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", - "landing.customizable.description": "pl-fe lets you choose between three themes and adjust accent color to your liking.", + "landing.customizable.description": "Nicolium lets you choose between three themes and adjust accent color to your liking.", "landing.customizable.title": "Customizable.", - "landing.description": "pl-fe is a feature-rich Fediverse web client.", - "landing.feature_rich.description": "pl-fe includes a lot features to improve your experience, like WYSIWYG text editor, draft posts and language detection.", + "landing.description": "Nicolium is a feature-rich Fediverse web client.", + "landing.feature_rich.description": "Nicolium includes a lot features to improve your experience, like WYSIWYG text editor, draft posts and language detection.", "landing.feature_rich.title": "Feature-rich.", - "landing.open_source.description": "pl-fe is free and open source software. You can participate in development, contribute to the project or report bugs.", + "landing.logo": "Nicolium (formerly pl-fe)", + "landing.open_source.description": "Nicolium is free and open source software. You can participate in development, contribute to the project or report bugs.", "landing.open_source.title": "Open source.", - "landing.pl_api.description": "pl-fe implements features not present in standard Mastodon API, like emoji reactions, chats or interaction policies.", + "landing.pl_api.description": "Nicolium implements features not present in standard Mastodon API, like emoji reactions, chats or interaction policies.", "landing.pl_api.title": "Get the most out of your Fediverse instance.", - "landing.private.description": "pl-fe includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity.", + "landing.private.description": "Nicolium includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity.", "landing.private.title": "Stay private.", "landing.sign_in": "Sign in", "landing.source_code": "Source code", - "landing.use_with_platform.description": "pl-fe works with any backend implementing Mastodon API.", + "landing.use_with_platform.description": "Nicolium works with any backend implementing Mastodon API.", "landing.use_with_platform.title": "Use with your favorite Fediverse platform.", "lightbox.close": "Close", "lightbox.expand": "Expand", diff --git a/packages/pl-fe/src/pages/developers/create-app.tsx b/packages/pl-fe/src/pages/developers/create-app.tsx index 4e2803eb4..32954c202 100644 --- a/packages/pl-fe/src/pages/developers/create-app.tsx +++ b/packages/pl-fe/src/pages/developers/create-app.tsx @@ -166,7 +166,7 @@ const CreateAppPage: React.FC = () => { }> @@ -175,7 +175,7 @@ const CreateAppPage: React.FC = () => { }> ( - pl-fe + - + } truncate={false} /> - + } truncate={false} /> - + } truncate={false} /> - + } truncate={false} /> - + } truncate={false} /> - + } truncate={false} /> - + diff --git a/packages/pl-fe/src/utils/sounds.ts b/packages/pl-fe/src/utils/sounds.ts index d618699a9..566089468 100644 --- a/packages/pl-fe/src/utils/sounds.ts +++ b/packages/pl-fe/src/utils/sounds.ts @@ -3,7 +3,7 @@ import boopOgg from '@/assets/sounds/boop.ogg'; import chatMp3 from '@/assets/sounds/chat.mp3'; import chatOgg from '@/assets/sounds/chat.ogg'; -/** pl-fe audio clip. */ +/** Nicolium audio clip. */ interface Sound { src: string; type: string; diff --git a/packages/pl-fe/src/utils/tailwind.ts b/packages/pl-fe/src/utils/tailwind.ts index 2b896bc50..7041d0c52 100644 --- a/packages/pl-fe/src/utils/tailwind.ts +++ b/packages/pl-fe/src/utils/tailwind.ts @@ -43,7 +43,7 @@ const fromBasicColors = ({ brandColor, accentColor }: { }); }; -/** Convert pl-fe Config into Tailwind colors */ +/** Convert Nicolium Config into Tailwind colors */ const toTailwind = (config: { brandColor: string; accentColor: string | null; diff --git a/packages/pl-fe/vite.config.ts b/packages/pl-fe/vite.config.ts index 3b9fd0a09..b8aaa70a7 100644 --- a/packages/pl-fe/vite.config.ts +++ b/packages/pl-fe/vite.config.ts @@ -63,8 +63,8 @@ const config = defineConfig(({ command }) => ({ }, manifestFilename: 'manifest.json', manifest: { - name: 'pl-fe', - short_name: 'pl-fe', + name: 'Nicolium', + short_name: 'Nicolium', description: 'Mastodon-compatible social media front-end', icons: [ { diff --git a/packages/pl-hooks/package.json b/packages/pl-hooks/package.json index cf1bbc491..cb56fad19 100644 --- a/packages/pl-hooks/package.json +++ b/packages/pl-hooks/package.json @@ -2,13 +2,13 @@ "name": "pl-hooks", "version": "0.0.14", "type": "module", - "homepage": "https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-hooks", + "homepage": "https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-hooks", "repository": { "type": "git", - "url": "https://codeberg.org/mkljczk/pl-fe" + "url": "https://codeberg.org/mkljczk/nicolium" }, "bugs": { - "url": "https://codeberg.org/mkljczk/pl-fe/issues" + "url": "https://codeberg.org/mkljczk/nicolium/issues" }, "scripts": { "dev": "vite",