Prose Web application. Built in TypeScript / VueJS.
The Prose project was originally announced in a blog post: Introducing Prose, Decentralized Team Messaging in an Era of Centralized SaaS. This project is the Web implementation of the Prose app.
Copyright 2023, Prose Foundation - Released under the Mozilla Public License 2.0.
Tested at NodeJS version: v20.5.0
The Prose Web app consists mostly of VueJS views, bound to core libraries, namely the client and views cores, that are common to all platforms Prose runs on.
The app uses the core client library to connect to XMPP. It calls programmatic methods in order to interact with its internal database and the network. It binds as well to an event bus to receive network events, or update events from the store. Messages are shown in their own view, which is provided by the core views library.
This decoupling makes things extremely clean, and enables common code sharing between platforms (eg. Web, macOS, etc.).
To install all the build dependencies, you first need to install NodeJS (version 12
and above).
Then, hit:
npm install
Building the Prose Web app is done per-target environment. Please check below for build instructions based on your target environment.
To build Prose for a production environment (with all optimizations, meaning the build will be slower), hit:
npm run build
To build Prose for a development environment (that is, a live development server streaming changes live), hit:
npm run dev
If it is desired to build against a local prose-core-client
(repository) containing a built prose-sdk-js
package, you may pass a PROSE_CORE_CLIENT_PATH
environment variable with the relative path to the core client library:
PROSE_CORE_CLIENT_PATH="../prose-core-client" npm run dev
On a second terminal, you may also watch for changes in the prose-core-client
repository:
find crates bindings/prose-sdk-js/src Cargo.toml | entr -r cargo xtask wasm-pack build --dev
Any change happening in the core will trigger a compilation run, which itself will trigger a HMR event in the Web app (this may reload the whole app).
If you would like to source a local prose-core-views
(repository) build, you may pass a PROSE_CORE_VIEWS_PATH
environment variable with the relative path to the core views library:
PROSE_CORE_VIEWS_PATH="../prose-core-views" npm run dev
π The Prose Web app reference design can be found there.
As Prose is still being developed, update videos can be found on the Prose blog, month by month:
Licensing information can be found in the LICENSE.md document.
If you find a vulnerability in any Prose system, you are more than welcome to report it directly to Prose Security by sending an encrypted email to security@prose.org. Do not report vulnerabilities in public GitHub issues, as they may be exploited by malicious people to target production systems running an unpatched version.