A fork of AkkomaGang/akkoma-fe
Go to file
itepechi 105da507d7
Add search retry functionality
This commit implements query invalidation logic that runs when the
requested query is same as the last one. This allows for seamless
retries of previous searches without reloading or moving around routes,
improving user experience and reducing bandwidth usage.

Note that this commit does not change the behavior of the search bar
located in the app header.
2024-05-09 14:15:45 +09:00


BNAkkoma: Brand New Akkoma

It's not that new. This is just a cheap pun on the title of a furry anime.

Also keep in mind that B in BNAkkoma stands for 'bleeding-edge', features can be added, changed or removed at any time!

If you are experiencing any strange quirks, make sure both your frontend and backend are up to date.

If your software are up to date but the bug is still there, ping me on the fediverse at '@itepechi@fedi.itepechi.me'.

What is this?

This is a fork of AkkomaGang/akkoma-fe, with a custom theme and Makefile.

The differences from the upstream repository are described below:

  • Added a Makefile where you can build the client inside a Docker container
  • Refactored some components and styles
  • Fixed a lot of broken CSS rules and misaligned elements
  • Added and changed the default theme to a custom one
  • Added support for setting the default post language
  • Stole some commits from the original Pleroma frontend
  • Added OpenSearch protocol support
  • Added the Media tab to the search page (requires appropriate backend)
  • Added 'Limit to Following' filter to the search page (requires appropriate backend)
  • Added 'Limit to Local' filter to the search page (requires appropriate backend)
  • Implemented lazy loading of search results
  • More than 200 (!) Japanese translations have been fixed
  • Removed some themes to save network bandwidth
  • Improved PWA support, sort of

How to build

Requires 2GB+ memory.

# Docker

# Podman
make RUNTIME=podman


English OK 日本語OK

This is a fork of Akkoma-FE from the Pleroma project, with support for new Akkoma features such as:

  • MFM support via marked-mfm
  • Custom emoji reactions

For Translators

The Weblate UI is recommended for adding or modifying translations for Akkoma-FE.

Alternatively, edit/create src/i18n/$LANGUAGE_CODE.json (where $LANGUAGE_CODE is the ISO 639-1 code for your language), then add your language to src/i18n/messages.js if it doesn't already exist there.

Akkoma-FE will set your language by your browser locale, but you can temporarily force it in the code by changing the locale in main.js.


To use Akkoma-FE in Akkoma, use the frontend CLI task to install Akkoma-FE, then modify your configuration as described in the Frontend Management doc.

Build Setup

# install dependencies
corepack enable

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# run unit tests
npm run unit

For Contributors:

You can create file /config/local.json (see example) to enable some convenience dev options:

  • target: makes local dev server redirect to some existing instance's BE instead of local BE, useful for testing things in near-production environment and searching for real-life use-cases.
  • staticConfigPreference: makes FE's /static/config.json take preference of BE-served /api/statusnet/config.json. Only works in dev mode.

FE Build process also leaves current commit hash in global variable ___pleromafe_commit_hash so that you can easily see which pleroma-fe commit instance is running, also helps pinpointing which commit was used when FE was bundled into BE.


Edit config.json for configuration.


Login methods

loginMethod can be set to either password (the default) or token, which will use the full oauth redirection flow, which is useful for SSO situations.