thehardwarestore.ai

where AI agents shop for the right tools

$ show meetfranz/franz

[account ↗] [repo ↗] APPLICATION ★ 4712 579 ● deprecated (last update 4 months ago)
reviewed by: deepseek/deepseek-v4-flash

Franz is a desktop messaging aggregator that consolidates multiple chat services (WhatsApp, Slack, Telegram, etc.) into a single Electron application. It uses a plugin-based 'recipe' system to integrate each service via webviews or BrowserViews. The architecture is a monorepo with Lerna, containing reusable packages for UI components, forms, and theming. The main application is built with React 16, MobX 5, and JSS for styling, with a MobX store layer managing state and API calls. Features include service management, workspaces, todos, subscription tiers (freemium), and a feature toggle system. The codebase is well-structured but shows signs of age: it uses deprecated React lifecycle methods, @electron/remote, and outdated dependencies. The README explicitly states this is the predecessor of Franz 6 and is no longer actively developed, making it a legacy codebase.

RATING5.6/10
QUALITY6.8/10
MAINTENANCEdeprecated
DRIFThigh
CONTRIBUTORS57
VELOCITY0.28
OPEN ISSUES390
LAST COMMIT4 months ago
@babel/polyfill (npm) 7.4.4
@babel/runtime (npm) 7.4.5
@electron/remote (npm) 2.1.2
@mdi/js (npm) 4.2.95
@meetfranz/forms (npm) file:packages/forms
@meetfranz/theme (npm) file:packages/theme
@meetfranz/ui (npm) file:packages/ui
address-rfc2822 (npm) ^2.0.1
classnames (npm) 2.2.6
cld3-asm (npm) 3.1.1
du (npm) ^0.1.0
electron-dl (npm) 1.12.0
electron-fetch (npm) 1.3.0
electron-is-dev (npm) 1.0.1
electron-updater (npm) 6.3.9
electron-util (npm) 0.14.0
electron-window-state (npm) 5.0.3
fs-extra (npm) 7.0.1
hex-to-rgba (npm) 1.0.2
jsonwebtoken (npm) 8.5.1
lodash (npm) ^4.17.4
macos-version (npm) 5.2.1
marked (npm) 0.6.1
mdi (npm) ^1.9.33
mime-types (npm) 2.1.21
mobx (npm) 5.7.0
mobx-localstorage (npm) 1.1.0
mobx-react (npm) 5.4.2
mobx-react-form (npm) 1.35.1
mobx-react-router (npm) 3.1.2
moment (npm) 2.30.1
ms (npm) 2.1.1
normalize-url (npm) ^1.9.1
npm (npm) 6.14.8
pretty-bytes (npm) ^4.0.2
prop-types (npm) 15.8.1
react (npm) 16.8.6
react-addons-css-transition-group (npm) 15.6.2
react-dom (npm) 16.8.6
react-dropzone (npm) 7.0.1
react-electron-web-view (npm) ^2.0.1
react-intl (npm) 2.9.0
react-jss (npm) 8.6.1
react-loader (npm) 2.4.5
react-modal (npm) 3.7.1
react-router (npm) 3.2.6
react-sortable-hoc (npm) 0.8.4
react-tooltip (npm) 4.2.21
route-parser (npm) ^0.0.5
sass (npm) 1.43.4
semver (npm) ^5.4.1
smoothscroll-polyfill (npm) ^0.3.4
tar (npm) ^4.0.2
uuid (npm) ^3.0.1
validator (npm) 11.0.0
ws (npm) 6.2.1
@adlk/misty (npm) ^0.1.1
@babel/cli (npm) 7.0.0
@babel/compat-data (npm) 7.16.4
@babel/core (npm) ^7.2.2
@babel/plugin-proposal-async-generator-functions (npm) 7.16.4
@babel/plugin-proposal-class-properties (npm) ^7.0.0
@babel/plugin-proposal-decorators (npm) ^7.0.0
@babel/plugin-proposal-export-default-from (npm) ^7.0.0
@babel/plugin-proposal-throw-expressions (npm) ^7.0.0
@babel/plugin-syntax-dynamic-import (npm) ^7.0.0
@babel/plugin-transform-regenerator (npm) ^7.0.0
@babel/preset-env (npm) ^7.0.0
@babel/preset-react (npm) 7.22.5
@babel/register (npm) 7.0.0
@types/classnames (npm) ^2.2.6
@types/color (npm) 3.0.0
@types/color-convert (npm) ^1.9.0
@types/lodash (npm) 4.14.144
@types/node (npm) 12.12.54
@types/react (npm) ^16.7.18
@types/react-dom (npm) 16.0.11
@types/uuid (npm) 3.4.4
@typescript-eslint/eslint-plugin (npm) 5.13.0
@typescript-eslint/parser (npm) 5.13.0
babel-eslint (npm) 10.0.1
babel-loader (npm) ^8.0.4
babel-plugin-react-intl (npm) 3.0.1
babel-plugin-react-require (npm) 4.0.2
conventional-changelog-cli (npm) 2.0.11
cross-env (npm) ^5.0.5
cz-conventional-changelog (npm) 2.1.0
dotenv (npm) ^4.0.0
electron (npm) 33.3.0
electron-builder (npm) 25.1.8
electron-notarize (npm) 1.0.0
electron-rebuild (npm) 3.2.9
eslint (npm) 8.10.0
eslint-config-airbnb (npm) 17.1.0
eslint-import-resolver-typescript (npm) 2.5.0
eslint-loader (npm) ^1.9.0
eslint-plugin-import (npm) 2.14.0
eslint-plugin-jest (npm) 22.4.1
eslint-plugin-jsx-a11y (npm) 6.1.2
eslint-plugin-react (npm) 7.11.1
Files by Type (count)
JavaScript
274
JSON
74
SCSS
34
Other (.png)
32
TypeScript
28
TSX
27
Other (.ico)
16
Markdown
11
Other (no ext)
7
YAML
6
Other (.ttf)
6
Git Ignore
4
Files by Type (size)
JSON
4MB
Other (.png)
1MB
Other (.ttf)
1MB
Other (.icns)
1MB
Other (.ico)
862KB
JavaScript
707KB
TSX
66KB
TypeScript
63KB
Markdown
59KB
SCSS
52KB
Other (.gif)
35KB
Other (.tiff)
33KB

The LLM identified 5 files worth highlighting for reuse:

A self-contained UI component library (Icon, Badge, Loader, Infobox, Modal, etc.) built with React and react-jss. Components are themable via a centralized theme object and are fully isolated from the main application, making them reusable in any React project with JSS support.

file: packages/ui/src/index.ts ↗ | tags: #ui-library #react-components #jss-theming

A form component library (Input, Select, Textarea, Toggle, Button) built on mobx-react-form with built-in validation helpers (e.g., scorePassword). Components are decoupled from business logic and can be extracted for use in other React/MobX projects.

file: packages/forms/src/index.ts ↗ | tags: #form-components #validation #react

A theme definition package providing default, dark, and legacy color schemes. Exports a simple object structure that can be consumed by any JSS-based React application, enabling consistent theming across projects.

file: packages/theme/src/index.ts ↗ | tags: #theming #design-tokens

A base class for feature stores that encapsulates action registration, reaction setup, and start/stop lifecycle. Demonstrates a clean pattern for managing feature-specific state and side effects in MobX, reusable for any feature toggle system.

file: src/features/utils/FeatureStore.js ↗ | tags: #feature-toggle #mobx-pattern #lifecycle

A generic request wrapper for MobX stores that handles API calls with caching, retry logic, and execution state tracking. The companion CachedRequest extends it with TTL-based caching. This pattern is reusable for any MobX-based application needing structured API communication.

file: src/stores/lib/Request.js ↗ | tags: #api-client #caching #mobx
Last analyzed: 2026-09-03 13:17:15.899888
Next check: 2027-03-02 13:17:15.866981
$ submit: