diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 00000000..c133b14f
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,119 @@
+# Contributing | AngularFire
+
+Thank you for contributing to the Firebase community!
+
+ - [Have a usage question?](#question)
+ - [Think you found a bug?](#issue)
+ - [Have a feature request?](#feature)
+ - [Want to submit a pull request?](#submit)
+ - [Need to get set up locally?](#local-setup)
+
+
+## Have a usage question?
+
+We get lots of those and we love helping you, but GitHub is not the best place for them. Issues
+which just ask about usage will be closed. Here are some resources to get help:
+
+- Start with the [quickstart](../docs/quickstart.md)
+- Go through the [guide](../docs/guide/README.md)
+- Read the full [API reference](https://angularfire.firebaseapp.com/api.html)
+- Try out some [examples](../README.md#examples)
+
+If the official documentation doesn't help, try asking a question through our
+[official support channels](https://firebase.google.com/support/).
+
+**Please avoid double posting across multiple channels!**
+
+see
+## Think you found a bug?
+
+Yeah, we're definitely not perfect!
+
+Search through [old issues](https://github.com/firebase/angularfire/issues) before submitting a new
+issue as your question may have already been answered.
+
+If your issue appears to be a bug, and hasn't been reported,
+[open a new issue](https://github.com/firebase/angularfire/issues/new). Please use the provided bug
+report template and include a minimal repro.
+
+If you are up to the challenge, [submit a pull request](#submit) with a fix!
+
+
+## Have a feature request?
+
+Great, we love hearing how we can improve our products! After making sure someone hasn't already
+requested the feature in the [existing issues](https://github.com/firebase/angularfire/issues), go
+ahead and [open a new issue](https://github.com/firebase/angularfire/issues/new). Feel free to remove
+the bug report template and instead provide an explanation of your feature request. Provide code
+samples if applicable. Try to think about what it will allow you to do that you can't do today? How
+will it make current workarounds straightforward? What potential bugs and edge cases does it help to
+avoid?
+
+
+## Want to submit a pull request?
+
+Sweet, we'd love to accept your contribution! [Open a new pull request](https://github.com/firebase/angularfire/pull/new/master)
+and fill out the provided form.
+
+**If you want to implement a new feature, please open an issue with a proposal first so that we can
+figure out if the feature makes sense and how it will work.**
+
+Make sure your changes pass our linter and the tests all pass on your local machine. We've hooked
+up this repo with continuous integration to double check those things for you.
+
+Most non-trivial changes should include some extra test coverage. If you aren't sure how to add
+tests, feel free to submit regardless and ask us for some advice.
+
+Finally, you will need to sign our [Contributor License Agreement](https://cla.developers.google.com/about/google-individual)
+before we can accept your pull request.
+
+
+## Need to get set up locally?
+
+If you'd like to contribute to AngularFire, you'll need to do the following to get your environment
+set up.
+
+### Install Dependencies
+
+```bash
+$ git clone https://github.com/firebase/angularfire.git
+$ cd angularfire # go to the angularfire directory
+$ npm install -g grunt-cli # globally install grunt task runner
+$ npm install # install local npm build / test dependencies
+$ grunt install # install Selenium server for end-to-end tests
+```
+
+### Create a Firebase Project
+
+1. Create a Firebase project [here](https://console.firebase.google.com).
+2. Set the `ANGULARFIRE_TEST_DB_URL` environment variable to your project's database URL:
+
+```bash
+$ export ANGULARFIRE_TEST_DB_URL="https://.firebaseio.com"
+```
+
+3. Update the entire `config` variable in [`tests/initialize.js`](../tests/initialize.js) to
+correspond to your Firebase project. You can find your `apiKey` and `databaseUrl` by clicking the
+**Web Setup** button at `https://console.firebase.google.com/project//authentication/users`.
+
+### Download a Service Account JSON File
+
+1. Follow the instructions [here](https://firebase.google.com/docs/server/setup#add_firebase_to_your_app)
+on how to create a service account for your project and furnish a private key.
+2. Copy the credentials JSON file to `tests/key.json`.
+
+### Lint, Build, and Test
+
+```bash
+$ grunt # lint, build, and test
+
+$ grunt build # lint and build
+
+$ gulp test # run unit and e2e tests
+$ gulp test:unit # run unit tests
+$ gulp test:e2e # run e2e tests (via Protractor)
+
+$ grunt watch # lint, build, and test whenever source files change
+```
+
+The output files - `angularfire.js` and `angularfire.min.js` - are written to the `/dist/` directory.
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 00000000..5b3afafd
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,68 @@
+
+
+
+### Version info
+
+
+
+**Angular:**
+
+**Firebase:**
+
+**AngularFire:**
+
+**Other (e.g. Node, browser, operating system) (if applicable):**
+
+### Test case
+
+
+
+
+### Steps to reproduce
+
+
+
+
+### Expected behavior
+
+
+
+
+### Actual behavior
+
+
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 00000000..80efa774
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,31 @@
+
+
+
+### Description
+
+
+
+### Code sample
+
+
diff --git a/README.md b/README.md
index a62f69e2..f54bcc4d 100644
--- a/README.md
+++ b/README.md
@@ -91,23 +91,5 @@ $ bower install angularfire --save
## Contributing
-If you'd like to contribute to AngularFire, you'll need to run the following commands to get your
-environment set up:
-
-```bash
-$ git clone https://github.com/firebase/angularfire.git
-$ cd angularfire # go to the angularfire directory
-$ npm install -g grunt-cli # globally install grunt task runner
-$ npm install # install local npm build / test dependencies
-$ grunt install # install Selenium server for end-to-end tests
-$ grunt watch # watch for source file changes
-```
-
-`grunt watch` will watch for changes in the `/src/` directory and lint, concatenate, and minify the
-source files when a change occurs. The output files - `angularfire.js` and `angularfire.min.js` -
-are written to the `/dist/` directory. `grunt watch` will also re-run the unit tests every time you
-update any source files.
-
-You can run the entire test suite via the command line using `grunt test`. To only run the unit
-tests, run `grunt test:unit`. To only run the end-to-end [Protractor](https://github.com/angular/protractor/)
-tests, run `grunt test:e2e`.
+If you'd like to contribute to AngularFire, please first read through our [contribution
+guidelines](.github/CONTRIBUTING.md). Local setup instructions are available [here](.github/CONTRIBUTING.md#local-setup).