Open-source components of F-List and F-Chat 3.0. This repo builds the client as an Electron desktop app, a mobile bundle, or a web bundle.
- @CodingWithAnxiety, Rose, rose@f-list.net
- @AnikoAniko, Aniko, aniko@f-list.net
electron/- Electron desktop appmobile/- Cordova/Capacitor-style mobile appwebchat/- Web buildscss/- Theme sources
- Node.js 22 (see
.nvmrc) - pnpm 10
- (optional) fnm
- Clone the repo
pnpm i
pnpm -C electron buildorpnpm -C electron watchpnpm -C electron start
pnpm -C electron build:distpnpm -C electron pack
electron/build/build.mjs wraps electron-builder. Builds run natively unless you pass --docker (Linux and Windows targets only).
pnpm -C electron build:win(Windows, nsis)pnpm -C electron build:linux(Linux, deb + AppImage)pnpm -C electron build:mac(macOS, dmg + zip)- Or call directly:
node electron/build/build.mjs --os linux --format deb AppImagenode electron/build/build.mjs --os windows --arch x64 ia32node electron/build/build.mjs --os linux --dockerto build inside Docker
pnpm -C mobile buildorpnpm -C mobile watch- Android:
cd mobile/android && ./gradlew assembleDebug - iOS: open
mobile/ios/F-Chat.xcodeprojin Xcode and run
pnpm -C webchat buildorpnpm -C webchat watch- Webchat uses the root webpack config, so make sure the root dependencies are installed first.
- Output is written to
webchat/dist - The compiled
main.jsexpects a global:const chatSettings: {account: string, theme: string, characters: ReadonlyArray<string>, defaultCharacter: string | null};and a page that normalizes to 100% height.
See the wiki for theme creation details: https://wiki.f-list.net/F-Chat_3.0/Themes
pnpm -C scss installpnpm -C scss build- Output CSS lands in
scss/css
Dependency upgrades should be done deliberately and verified.
- Lockfile:
pnpm-lock.yaml(created on firstpnpm install) - Updates:
pnpm update - Audit outdated:
pnpm outdated
Read CONTRIBUTING.md.