diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..f33ecb9
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,74 @@
+# Contributing
+
+We love contributions! If you want to run the project locally to test out changes, run the examples, or just see how things work under the hood, read on below.
+
+## Local development
+
+This runtime consumes specific tied-down versions of the [JS/WASM runtime](https://github.com/rive-app/rive-wasm) to have better control over changes that occur in that downstream runtime.
+
+### Installation
+
+1. Clone the project down
+2. Run `npm i` in the shell/terminal at the base of the project to install the dependencies needed for the project
+
+### Local dev server
+
+To start the local dev server to reflect any changes made to the core `src/` files, run the following in a terminal tab:
+
+```
+npm run dev
+```
+
+### Running the example storybook locally
+
+We use Storybook to deploy our examples out onto a public-facing page for folks to view and see code examples for. It also serves as the place we'll include any example suites. These story files are stored in `examples/**.stories.mdx`. `.mdx` is an extension Storybook supports to support both `jsx` (React files) and `md` (markdown) in one file.
+
+To run Storybook, run the following command in the terminal:
+
+```
+npm run storybook
+```
+
+Any changes made in any files should reflect automatically, including the `.mdx` example files, and `src/` files.
+
+### Testing
+
+We also have a suite of unit tests against the high-level component and various hooks exported in the `test/` folder. When adding new components, changing the API, or underlying functionality, make sure to add a test here!
+
+To run the test suite:
+
+```
+npm test
+```
+
+## Making changes
+
+When you're ready to make changes, push up to a feature branch off of the `main` branch. Create a pull request to this repository in Github. When creating commit messages, please be as descriptive as possible to the changes being made.
+
+For example, if the change is simply a bug fix or patch change:
+
+```
+git commit -m "Fix: Fixing a return type from useRive"
+```
+
+Or if it's simply a docs change:
+
+```
+git commit -m "Docs: Adding a new link for another example page"
+```
+
+For minor/major version releases, also ensure you preface commit messages with:
+
+```
+git commit -m "Major: Restructuring the useRive API with new parameters"
+```
+
+These messages help make the changelog clear as to what changes are made for future devs to see.
+
+When pull requests are merged, the runtime will automatically deploy the next release version. By default, patch versions are published. If you want to set the next version as a minor/major version to be released, you have to manually update the `package.json` file at the root of the project to the verison you want it to.
+
+You can find the deploy scripts in `.github/`
+
+## Bumping the underlying JS/WASM runtime
+
+Many times, fixes to the runtime and feature adds come from the underlying JS/WASM runtime. In these cases, just bump the `@rive-app/canvas` and `@rive-app/webgl` versions to the verison you need to incorporate the fix/feature. Run `npm i` and test out the change locally against the Storybook examples and run the test suite to make sure nothing breaks, and then submit a PR with just the `package.json` change if that's all that's needed.
diff --git a/README.md b/README.md
index d932f02..478131b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@

+[](https://rive-app.github.io/rive-react)


@@ -6,229 +7,58 @@

-React runtime for [Rive](https://rive.app).
+A React runtime library for [Rive](https://rive.app).
-A wrapper around the [JS/Wasm runtime](https://github.com/rive-app/rive-wasm), providing full control over the js runtime while providing components and hooks for React applications.
+This library is a wrapper around the [JS/Wasm runtime](https://github.com/rive-app/rive-wasm), giving full control over the js runtime while providing components and hooks for React applications.
-
+## Table of contents
-## What is Rive
+- :star: [Rive Overview](#rive-overview)
+- 🚀 [Getting Started & API docs](#getting-started)
+- :mag: [Supported Versions](#supported-versions)
+- :books: [Examples](#examples)
+- :runner: [Migration Guides](#migration-guides)
+- 👨💻 [Contributing](#contributing)
+- :question: [Issues](#issues)
+
+## Rive Overview
[Rive](https://rive.app) is a real-time interactive design and animation tool that helps teams create and run interactive animations anywhere. Designers and developers use our collaborative editor to create motion graphics that respond to different states and user inputs. Our lightweight open-source runtime libraries allow them to load their animations into apps, games, and websites.
:house_with_garden: [Homepage](https://rive.app/)
-:blue_book: [Docs](https://help.rive.app/getting-started/welcome-to-rive)
+:blue_book: [General help docs](https://help.rive.app/)
-🛠 [Resources](https://rive.app/resources/)
+🛠 [Resources for building in Rive](https://rive.app/resources/)
## Getting Started
-Follow along for a quick start in using the Rive React runtime.
+Follow along with the link below for a quick start in getting Rive React integrated into your React apps.
-### Installation
+[Getting Started with Rive in React](https://help.rive.app/runtimes/overview/react)
-There are two main variants of the React runtime:
+[API documentation](https://help.rive.app/runtimes/overview/react/parameters-and-return-values)
-1. **Recommended** Using [Canvas2D](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D)
+## Supported Versions
-```
-npm i --save @rive-app/react-canvas
-```
-
-2. Using [WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API)
-
-```
-npm i --save @rive-app/react-webgl
-```
-
-Read more in our [web runtime docs](https://github.com/rive-app/rive-wasm/blob/master/WEB_RUNTIMES.md) around the differences. For most cases and smallest bundle size, we recommend using the `react-canvas` package.
-
-_Note: This library is using React hooks so the minimum version required for both react and react-dom is 16.8.0._
-
-### Usage
-
-Rive React provides a basic component as it's default import for displaying simple animations. Include the code below in your React project to test out an example Rive animation.
-
-```js
-import Rive from '@rive-app/react-canvas';
-
-function Example() {
- return ;
-}
-
-export default Example;
-```
-
-### Props
-
-- `src`: File path or URL to the .riv file to display.
-- `artboard`: _(optional)_ Name to display.
-- `animations`: _(optional)_ Name or list of names of animtions to play.
-- `stateMachines`: _(optional)_ Name of state machine to play.
-- `layout`: _(optional)_ Layout object to define how animations are displayed on the canvas. See [Rive.js](https://github.com/rive-app/rive-wasm#layout) for more details.
-- _All attributes and eventHandlers that can be passed to a `canvas` element can also be passed to the `Rive` component and used in the same manner._
-
-#### Styles and Classes
-
-When rendering out a Rive component, in the DOM, it will show as a `
` element that contains the `