diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f06235c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+dist
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..922d7a6
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,3 @@
+node_modules
+dist
+sample
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..8cc7d90
--- /dev/null
+++ b/README.md
@@ -0,0 +1,129 @@
+# react-gbajs
+
+> GBA emulator on your React project - easy and powerful to use!
+
+Just three steps to set it up ✨
+
+1 - Apply `GbaProvider`
+```jsx
+import { GbaProvider } from 'react-gbajs'
+
+const App = () => (
+
+ ...
+
+)
+```
+
+2 - Get `play` function from `GbaContext` and call it with the game ROM
+```jsx
+import { useContext } from 'react'
+import { GbaContext } from 'react-gbajs'
+
+const Component = () => {
+ const {
+ play,
+ } = useContext(GbaContext)
+
+ const onSomeHandle = () => {
+ const gameRom = getGameRom()
+ play(gameRom)
+ }
+
+ return (
+
+ )
+}
+```
+
+3 - And render the emulator using the default export
+
+```js
+import ReactGbaJs from 'react-gbajs'
+
+const Emulator = () => (
+
+)
+```
+
+Check a full example in [`/sample`](sample).
+
+## How it works
+
+This package is a React wrapper for [GBA.js](https://github.com/endrift/gbajs).
+
+`GBA.js` is vendored, with new features over the original version:
+- save and restore state
+- freeze address with a given value
+
+## Who is using
+
+
+
+
+
+ klo-gba.js, level editor for Klonoa: Empire of Dreams
+