Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sgrove/omchaya
ClojureScript + Om client for Kandan (http://kandanapp.com/)
https://github.com/sgrove/omchaya
Last synced: 5 days ago
JSON representation
ClojureScript + Om client for Kandan (http://kandanapp.com/)
- Host: GitHub
- URL: https://github.com/sgrove/omchaya
- Owner: sgrove
- License: mit
- Created: 2014-02-17T22:45:15.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-04-11T22:41:09.000Z (over 10 years ago)
- Last Synced: 2024-08-01T12:19:38.790Z (3 months ago)
- Language: Clojure
- Size: 7.77 MB
- Stars: 219
- Watchers: 6
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - sgrove/omchaya - ClojureScript + Om client for Kandan (http://kandanapp.com/) (others)
README
# Omchaya
A [ClojureScript](https://github.com/clojure/clojurescript) + [Om](https://github.com/swannodette/om) frontend for [Kandan](http://kandanapp.com/). An example app that's actually useful.
![Omchaya Screenshot](/assets/images/screenshot.png "Omchaya in action")
## Project features
* Reasonable mobile support
* Composable plugin system (Thank you real data structures!)
* Mentions
* Emoji
* Youtube/Vimeo/Image embed
* /me support
* Inline-pastie
* RGB/Hex color embed
* Collaborative music player and queueing system
* Real-time narrowing search across people, media, music, and messages
* Keybindings
* Deep-linking## Getting the project
git clone https://github.com/sgrove/omchaya.git
cd omchaya## Example usage
Omchaya is just for local usage right now. Try a couple of commands:
@mention-a-name
/play
rgb(r,g,b)
#hheexx or #hex
Any youtube/vimeo/img/link will be picked up
Basic pastie support is there## Debug keybindings
* `ctrl-/`: Open the history player
* `ctrl-esc`: Open the state ([Ankha](https://github.com/noprompt/ankha)) inspector in an in-app window
* `ctrl-1`: Change the path to display for the state inspector window### I don't have Clojure, but I still want to see it!
Use the demo branch:
git checkout demo
scripts/run_server.sh
open http://localhost:9000/dev.html## Running locally
scripts/run_server.sh
This will compile the CLJS code to JS once and start the server hosting the assets.
## Developing locally
Start the auto recompiler for the CLJS code:
lein cljsbuild auto
Serve the assets:
python -m SimpleHTTPServer 9000
open http://localhost:9000/dev.html### Omchaya Design
* Rendering all done via Om/React
* Each component sends app-logic events to router via core.async channels
* State transition managed centrally via controller
* Imperative/side-effects restricted to post-controller![Omchaya Flow](/docs/resources/omchaya_flow.png "Omchaya Flow")
### Facebook React Devtools Support
Omchaya uses Om `> 0.5.1` to implement `IDisplayName` for components, so we can take advantage of the [Facebook React Devtools](https://github.com/facebook/react-devtools) `> 0.8` to see the structure of your web app in terms of the components you expect.
Here's an idea of what it looks like - notice the name of the tags shown:
![Facebook React Devtools <3 Omchaya](/docs/resources/facebook_react_devtools.png "Facebook React Devtools <3 Omchaya")
# License
Omchaya is released under the MIT license, see LICENSE for further details.
Copyright (c) 2014 BUSHIDO INC. unless otherwise mentioned.