This also, incidentally, helps to keep track of all the
supported features! (Also, comparing with the DOAP of
ConverseJS is motivation to go add more features here 😅)
|
||
---|---|---|
public | ||
screenshots | ||
src | ||
.gitignore | ||
badge-bananahackers.png | ||
convo.doap | ||
COPYING | ||
package.json | ||
README.md | ||
rollup.config.js | ||
tsconfig.json | ||
yarn.lock |
Installation
This app is published to the BananaHackers WebStore. So if you have the BananaHackers WebStore client, you can install Convo directly by searching for it or open the page on your computer to QR-beam it to your phone.
If you don't have the BananaHackers store, you can download the latest release as a .zip file from the Releases page.
To install the .zip file, you will have to use one of the following methods:
- If you have an older device, you can simply install the .zip using OmniSD, assuming you have set that up.
- Alternatively, you can: extract the .zip file, extract the
application.zip
file you find inside (a zip-in-a-zip!) and sideload the resulting folder using ADB and WebIDE (for KaiOS 2.x) or the official appscmd tool (for KaiOS 3.x) - Finally, if you want to get the latest changes you can clone the repo and build it yourself as described in the next section.
Development and testing
yarn dev
builds the app in watch mode and serves the site. Great for testing
it out in a desktop browser.
Enabling XMPP stanza printing
If you want Convo to print out all the XMPP stanzas
to the console as they come in, you can open the file
src/routes/Login.svelte
, and search for a line looking
like:
loglevel: 'warn',
Edit that line to replace warn
with debug
loglevel: 'debug',
In future, this and other options in that code block will be made into settings that can be toggled from within the app itself, for easier access.
Deploying to a device
- Connect your device to your computer and make sure it appears in WebIDE.
yarn build
- In WebIDE, load the
/public
folder as a packaged app.
Contributing
Pull requests are welcome. Feel free to pick up any of the issues or work on your own feature. (If it's some wacky feature, maybe discuss it first by making a new issue!)
The good news is that Convo is based on ConverseJS, which already supports a wide range of features. So adding a "feature" to Convo often involves just implementing the UI to expose a pre-existing ConverseJS feature!
If you're not sure where to start, you can always join the XMPP chatroom!
Donations
Besides code, you can also contribute financially. I haven't been finding the time to work on Convo, so your funds would help me make more time to work on it.
I charge about 7.50 USD per hour for the freelance projects I take on, so I will dedicate a corresponding amount of time for any donations that come in. (Of course, I will also be putting in extra work when I'm able, but funding would help establish a baseline since I won't have to decide between working on this and earning my daily bread 🍞)
Recommended companion apps
Since Convo is in a very early stage, it is recommended to have an additional XMPP running on your desktop, laptop, or smart(er)phon. This will let you perform operations that can't be done through Convo directly (such as setting up a bridge or accepting contact requests). Recommendations for stable apps are as follows, with a preference for stability over looks since you'll probably not be using that app as much as the KaiOS one:
- Gajim - Linux, Windows
- Conversations - Android
- Monal IM - iOS and MacOS
- Dino - Linux (less group chat and moderation features, but has a responsive design to work on mobile devices)
Credits and Licensing
- This project is based on the KaiOS Svelte starter (MIT)
- UI components from KaiOS-native-UI (WTFPL)
- XMPP/Jabber support from ConverseJS (headless version, MPL-2.0)
- Icon created from a combination of FontAwesome's comment icon and Icons8's XMPP icon
The project itself is licenced under the GNU General Public Licence version 3.0, or, at your convenience, any later version. For more information, see the COPYING
file.