Opening an Issue

Bugs and enhancement ideas can be reported by opening an issue here:

If you found a bug, first, thanks for reporting it. We know it’s extra work, and we appreciate you taking the time to help make Vee better.

Second, the more information you provide, the better. Mozilla has a good guide for the amount and types of information to provide here:

Contributing Code & Assets

Enhancements and bug fixes are accepted in the form of GitHub pull requests from topic branches. The basic workflow looks like this:

  1. Fork
  2. Create a topic branch with a descriptive name, for example: port-react-to-vee.
  3. Add your enhancement or bug fix.
  4. Open a pull request from your topic branch to Vee, and provide a description of what’s in the PR and what it does.

Somebody will take a look at your PR and quickly give you some feedback or merge it into the codebase.

The Vee Contributor Agreement

Before your PR can be merged, please sign the Vee Contributor Agreement. Vee uses a modified version of the Oracle CA, which is designed so that both parties retain rights to use your contribution. There’s a lot of good info from Oracle on it’s CA in this FAQ.

More information on what Contributor Agreements are and why they are used can be found here.

Codebase Overview

There’s a lot in the codebase, in no particular order:

  • reup.clj, src/clj/vee/dev/entry.clj – Entry point into the dev side of Vee. Starts the source server, dev site compiler, etc. Look here if you’re going to improve the codebase / fix bugs.
  • src/clj – The ‘backend’ components for Vee, including the soruce reloading server, and the error stack-trace decoder.
  • src/cljs – The Vee mobile library, including UI elements, native API integrations, HTTP client, etc.
  • test/cljs and mobile/vee-test. Source and Titanium project for the vee test app. This is the app that opens when you run bin/ios-sim and is used for holding Vee examples and tests.
  • site/ – The dev site found at Some of this is generated from Clojure found in src/clj/dev/site.clj.