{"id":15105719,"url":"https://github.com/bdx-town/mangane","last_synced_at":"2026-04-01T23:01:54.221Z","repository":{"id":40477894,"uuid":"386728117","full_name":"BDX-town/Mangane","owner":"BDX-town","description":"Alternative frontend for Akkoma","archived":false,"fork":false,"pushed_at":"2026-02-22T20:01:48.000Z","size":126821,"stargazers_count":205,"open_issues_count":47,"forks_count":34,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-28T00:42:38.085Z","etag":null,"topics":["akkoma","mastodon","pleroma"],"latest_commit_sha":null,"homepage":"https://bdx.town","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BDX-town.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"bdxtown","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2021-07-16T18:21:01.000Z","updated_at":"2026-03-27T13:39:13.000Z","dependencies_parsed_at":"2026-03-09T10:01:12.230Z","dependency_job_id":null,"html_url":"https://github.com/BDX-town/Mangane","commit_stats":{"total_commits":4597,"total_committers":56,"mean_commits":82.08928571428571,"dds":0.3254296280182728,"last_synced_commit":"eb2413a9e8be0d3a521006f5de0c6561dcbad847"},"previous_names":["cl0v1s/mangane-ui"],"tags_count":111,"template":false,"template_full_name":null,"purl":"pkg:github/BDX-town/Mangane","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BDX-town%2FMangane","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BDX-town%2FMangane/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BDX-town%2FMangane/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BDX-town%2FMangane/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BDX-town","download_url":"https://codeload.github.com/BDX-town/Mangane/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BDX-town%2FMangane/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["akkoma","mastodon","pleroma"],"created_at":"2024-09-25T20:42:23.816Z","updated_at":"2026-04-01T23:01:53.028Z","avatar_url":"https://github.com/BDX-town.png","language":"TypeScript","funding_links":["https://ko-fi.com/bdxtown"],"categories":[],"sub_categories":[],"readme":"![Mangane](./app/icons/mangane-full-horizontal.svg)\n\nMangane is an alternative frontend for Pleroma, Akkoma and Mastodon with a focus on ease of use, readability and custom branding.\n\nThis project is developped for [BDX-town](http://bdx.town/) Akkoma instance. Akkoma is a fork of Pleroma who mostly adds features, exposing them through new API endpoints. As of today, Akkoma and Pleroma API are compatible.\n\nMangane inherit from Pleroma the native large compatibility with Mastodon API.\n\nMoreover, Mangane already has a feature detection system allowing us to adapt the experience following what platform is used as a backend.\n\nWe are speaking about Akkoma here since we are planning to add Akkoma specific features to the project without breaking any existing compatibility.\n\n## Manifesto\n\nMangane is a fork of an existing project driven by a fundamental disagreement regarding the opinions and actions of its maintainer. This manifesto serves as a declaration of our motivations and the principles that guide the development of Mangane.\n\n### Our Vision\nMangane aims to provide a more accessible interface compared to the majority of existing software interfaces. We recognize that many platforms overlook the importance of user-friendliness and fail to incorporate familiar design patterns that users are accustomed to. By leveraging well-established user interface conventions, we strive to create an inclusive environment that welcomes users from diverse backgrounds and skill levels.\n\n### Supporting Akkoma and Promoting Sustainability\nOne of the primary reasons Mangane embraces Akkoma is because of its alignment with our software's objectives. Akkoma has been chosen not only for its capabilities but also because it can operate efficiently on modest hardware configurations. This choice reflects our commitment to energy efficiency and sustainability, allowing users to engage with technology while minimizing their environmental impact.\n\n### Transparency and Accountability\nWe understand the importance of demonstrating our good intentions and the integrity of our project. To that end, we invite interested parties to explore the following resources as evidence of our commitment to ethical practices:\n\n* [Manifesto of bdx.town (available in French)](https://bdx.town/about)\n* [Rules of bdx.town (available in French)](https://bdx.town/about/rules)\n* [Publicly accessible blocklist of bdx.town](https://bdx.town/api/v1/instance) (pleroma -\u003e metadata -\u003e federation -\u003e mrf_simple -\u003e reject)\n\nThese resources provide insight into the principles upheld by the individuals involved in Mangane and showcase our dedication to creating a safe and respectful digital environment.\n\n![UI Mixed](./docs/ui-mixed.png)\n![UI Dark](./docs/ui-dark.png)\n![UI Light](./docs/ui-light.png)\n\n## How does it work?\n\nMangane is a [single-page application (SPA)](https://en.wikipedia.org/wiki/Single-page_application) that runs entirely in the browser with JavaScript.\n\nIt has a single HTML file, `index.html`, responsible only for loading the required JavaScript and CSS.\nIt interacts with the backend through [XMLHttpRequest (XHR)](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest).\n\nHere is a simplified configuration example with Nginx:\n\n```nginx\nlocation /api {\n  proxy_pass http://backend;\n}\n\nlocation / {\n  root /opt/mangane;\n  try_files $uri index.html;\n}\n```\n\n(See [`mastodon.conf`](https://github.com/BDX-town/Mangane/blob/master/installation/mastodon.conf) file for a full example.)\n\nMangane incorporates much of the [Mastodon API](https://docs.joinmastodon.org/methods/), [Pleroma API](https://api.pleroma.social/), and more.\nIt detects features supported by the backend to provide the right experience for the backend.\n\n# :rocket: Deploy on Pleroma/Akkoma\n\nInstalling Mangane on an existing Pleroma or Akkoma instance is easy.\nLog in with SSH your server and follow those instructions depending on your configuration.\n\n## Download\n\nFirst you need to download Mangane on your server.\n\n#### For OTP install\n\n```sh\n/opt/pleroma/bin/pleroma_ctl frontend install mangane --ref dist --build-url https://github.com/BDX-town/Mangane/releases/latest/download/static.zip\n```\n*Note: The pleroma_ctl path may vary on your system, if you are using Akkoma it's probably in /opt/akkoma/bin/*\n\n#### For Mix/Source install\n\n```sh\nmix pleroma.frontend install mangane --ref dist --build-url https://github.com/BDX-town/Mangane/releases/latest/download/static.zip\n```\n\n#### With Admin FE \n\nIf database configuration is enabled, you can also install Mangane from the Admin interface of Pleroma/Akkoma. \nJust fill the form at Frontend/Available like this.\n\n![admin-fe](./docs/admin-ui-1.png)\n\n### Activation\n\nThen you need to activate the frontend so it will be available to your users.\n\n#### With Config.exs file\n\nEdit your configuration files to add/edit the `config :pleroma, :frontends` section like this \n\n```\nconfig :pleroma, :frontends,\n  primary: %{\n    \"name\" =\u003e \"mangane\",\n    \"ref\" =\u003e \"dist\"\n  }\n```\n\n#### With Admin FE (database configuration enabled)\n\nJust fill the form at Frontend/frontends/Primary like this.\n\n![admin-fe](./docs/admin-ui-2.png)\n\n\n**That's it!** :tada:\n\nMangane is now installed.\nThe change will take effect immediately, just refresh your browser tab, and Mangane will replace the default Pleroma FE or Akkoma FE interface. \nYou may need to restart Pleroma/Akkoma for the change to take effect.\n\nIf you notice some issue with UI colors, please take a look at the Troubleshooting section.\n\n## Install in other environments\n\n#### Yunohost server\n\nIf you use Akkoma or Pleroma packaged application for [Yunohost](https://yunohost.org), a Debian system dedicated to self hosting, you can install Mangane from the command line `pleroma_ctl`) or with Pleroma’s admin interface (Admin FE). More instructionh can be found in [Installing on Yunohost](./docs/administration/yunohost.md) documentation page.\n\n#### Deploy on Mastodon\n\nMangane is developed and tested only for Pleroma and Akkoma, this mean that there is _no_ explicit support to be installed as a frontend for a Mastodon instance.  If you want to try anyway, procede with caution.\n\n# Upgrade\n\nTo upgrade Mangane, run the install commands again, on top of actual version.\n\n```\n/opt/pleroma/bin/pleroma_ctl frontend install mangane --ref dist --build-url https://github.com/BDX-town/Mangane/releases/latest/download/static.zip\n```\n\nIf you want, you can also upgrade from the admin interface (Admin FE), doing a _new_ installation.\n\n# Running locally\n\nTo get it running, just clone the repo:\n\n```sh\ngit clone https://github.com/BDX-town/Mangane.git\ncd Mangane\n```\n\nEnsure that Node.js and Yarn are installed, then install dependencies:\n\n```sh\nyarn\n```\n\nFinally, run the dev server:\n\n```sh\nyarn dev\n```\n\n**That's it!** :tada:\n\nIt will serve at `http://localhost:3036` by default.\n\nYou should see an input box - just enter the domain name of your instance to log in.\n\nTip: you can even enter a local instance like `http://localhost:3000`!\n\n### Troubleshooting: `ERROR: NODE_ENV must be set`\n\nCreate a `.env` file if you haven't already.\n\n```sh\ncp .env.example .env\n```\n\nAnd ensure that it contains `NODE_ENV=development`.\nTry again.\n\n## Developing against a live backend\n\nYou can also run Mangane FE locally with a live production server as the backend.\n\n\u003e **Note:** Whether or not this works depends on your production server. It does not seem to work with Cloudflare or VanwaNet.\n\nTo do so, just copy the env file:\n\n## Local Dev Configuration\n\nThe following configuration variables are supported supported in local development.\nEdit `.env` to set them.\n\nAll configuration is optional, except `NODE_ENV`.\n\n#### `NODE_ENV`\n\nThe Node environment.\nMangane checks for the following options:\n\n- `development` - What you should use while developing Mangane FE.\n- `production` - Use when compiling to deploy to a live server.\n- `test` - Use when running automated tests.\n\n#### `BACKEND_URL`\n\nURL to the backend server.\nCan be http or https, and can include a port.\nFor https, be sure to also set `PROXY_HTTPS_INSECURE=true`.\n\n**Default:** `http://localhost:4000`\n\n#### `PROXY_HTTPS_INSECURE`\n\nAllows using an HTTPS backend if set to `true`.\n\nThis is needed if `BACKEND_URL` is set to an `https://` value.\n[More info](https://stackoverflow.com/a/48624590/8811886).\n\n**Default:** `false`\n\n# Yarn Commands\n\nThe following commands are supported.\nYou must set `NODE_ENV` to use these commands.\nTo do so, you can add the following line to your `.env` file:\n\n```sh\nNODE_ENV=development\n```\n\n#### Local dev server\n- `yarn dev` - Run the local dev server.\n\n#### Building\n- `yarn build` - Compile without a dev server, into `/static` directory.\n\n#### Translations\n- `yarn manage:translations` - Normalizes translation files. Should always be run after editing i18n strings.\n\n#### Tests\n- `yarn test:all` - Runs all tests and linters.\n\n- `yarn test` - Runs Jest for frontend unit tests.\n\n- `yarn lint` - Runs all linters.\n\n- `yarn lint:js` - Runs only JavaScript linter.\n\n- `yarn lint:sass` - Runs only SASS linter.\n\n# Contributing\n\nWe welcome contributions to this project. To contribute, first review the [Contributing doc](docs/contributing.md)\n\nAdditional supporting documents include:\n* [Mangane History](docs/history.md)\n* Redux Store Map\n\n# Customization\n\nMangane supports customization of the user interface, to allow per instance branding and other features. Current customization features include:\n\n* Instance name, site logo and favicon.\n* Custom pages: e.g About, Terms of Service page, Privacy Policy page, Copyright Policy (DMCA).\n* Promo panel custom links (e.g. link to blog or documentation external site).\n* Mangane extensions.\n* Default instance settings (e.g. default theme).\n\nCustomization details can be found in the [Customization documentation](docs/customization.md)\n\n# Troubleshooting\n\n## Unable to upload some files (notably svg files)\n\nIt's a [known issue](https://git.pleroma.social/pleroma/pleroma/-/issues/2768#note_97928) with the `exiftool` filter.\nTo solve these upload problems, go to your admin-fe, search the upload section and remove `exiftool` from the enabled filters.\n\n## Messy colors / style configuration\n\nAkkoma recently changed their Content Security Policy (Content-Secutiry-Policy HTTP response header) to make it more strict.\nIf you notice any issue with your UI style configuration, please update your HTTP server configuration to override Akkoma's CSP header so the `style-src` section is set to `'self' 'unsafe-inline';`\n\nHere is an example configuration for nginx:\n```\n# add style-src for mangane\nproxy_hide_header Content-Security-Policy;\nadd_header Content-Security-Policy \"upgrade-insecure-requests;script-src 'self';connect-src 'self' blob: https://example.com wss://example.com;media-src 'self' https:;img-src 'self' data: blob: https:;default-src 'none';base-uri 'self';frame-ancestors 'none';style-src 'self' 'unsafe-inline';font-src 'self';manifest-src 'self';\" always;\n```\n*Please replace https://example.com with your own domain*\n\n# License \u0026 Credits\n\nMangane is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nMangane is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with Mangane.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\nMangane make use of code from other opensource and free software under various licenses:\n\n- Mangane is a fork of [Soapbox](https://soapbox.pub) a frontend for Rebased, Pleroma and Mastodon, licensed under AGPL v3 or later.\n\n- `static/sounds/chat.mp3` and `static/sounds/chat.oga` are from [notificationsounds.com](https://notificationsounds.com/notification-sounds/intuition-561) licensed under CC BY 4.0.\n\n- [Tailwind CSS](https://github.com/tailwindlabs/tailwindcss) licensed by Tailwindlab under the simple permissive MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbdx-town%2Fmangane","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbdx-town%2Fmangane","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbdx-town%2Fmangane/lists"}