Welcome to Kahla. Kahla is a cross-platform business messaging app. Kahla also achieved one target to use one copy of code and target all platforms.
Try it here: web.kahla.app
Kahla currently targets Windows, Linux, macOS, Android, iOS, and Windows Mobile.
Kahla is built with Angular 7 and typescript. And Kahla Server is built with .NET Core.
For more document about Kahla project and Kahla API, please view document here.
For our official website, please view here.
How to develope
To develope Kahla, you need to install the following components:
- Nodejs and npm
We strongly suggest using Visual Studio Code to develope this project.
Visual Studio Code to open the directory directly.
How to run
How to run in browser
Excute following command in the root directory of this repository to restore all dependencies.
Excute following command to run and start a debug server at
How to run as desktop app
Currently we are using Electron to target Windows, Mac and Linux platform.
Supports Windows 7+, Linux and macOS 10.9+.
npm run electron
How to run as mobile app
Currently we are using Apache Cordova to target Android and iOS platform.
Before running, please prepare your Android development environment and an Android device.
Run the following commands to run on an Android device.
npx cordova platform add android npx cordova run android
How to publish
How to publish to a web server
ng build --prod
If you want to create Chinese version, please use the following command instead.
ng build --prod --local zh --i18n-file ./src/message.zh.xlf
How to publish as Electron production version
Please view here for Electron distribution document.
Please view here for Electron builder document.
And you will publish the distributable version of Kahla desktop.
How to publish as Cordova production version
Please view here for Cordova distribution document.
For more info please view Kahla Wiki
How to contribute
There are many ways to contribute to the project: logging bugs, submitting pull requests, reporting issues, and creating suggestions.
Even if you have push rights on the repository, you should create a personal fork and create feature branches there when you need them. This keeps the main repository clean and your personal workflow cruft out of sight.
We're also interested in your feedback for the future of this project. You can submit a suggestion or feature request through the issue tracker. To make this process more effective, we're asking that these include more information to help define them more clearly.