diff --git a/guide/english/react/context-api/index.md b/guide/english/react/context-api/index.md
new file mode 100644
index 0000000000..eee8cf4b22
--- /dev/null
+++ b/guide/english/react/context-api/index.md
@@ -0,0 +1,151 @@
+---
+title: Context API
+---
+
+# Context API
+
+The Context API has been implemented in the 16.3 version of React.
+
+It existed before, but was in beta, and thus, unadvised to work with.
+
+The goal of Context API is to allow developers to have an easy communication between components, without needing them to be closely related (Parent/Children components).
+This also reduce the need for prop drilling (passing down the props through several components), which allows for a cleaner code, easier to maintain and update.
+
+This get to its full potential when we want to share data that will be accessed by multiple components.
+
+This is based around two things : a Provider and a Consumer.
+
+## Provider
+
+On a file created exclusively to provide data, TimeProvider.js, let’s say we want to share some time between components.
+
+```javascript
+// Import createContext
+import React, { createContext, Component } from 'react';
+
+// Initialize a context with a time value to it
+export const TimeContext = createContext({
+ time: '',
+});
+
+// Create the TimeProvider class to be used by index.js as a provider and initialize a default value
+class TimeProvider extends Component {
+ state = {
+ time: '17:00',
+ };
+
+ // Passing the state that we just set as value to be used by our consumer and returning its children
+ render() {
+ return (
+ It’s {value.time} !
It’s 17:00 !
+``` + +### Modify the context dynamically +In order to change the time that we’ll provide to the ShowTime component, we need to give our context a function, that can be used by the consumer to update a value. + +Let’s just add it to our Provider +```javascript +// utils.TimeProvider.js +... +// This time we initialize a function to set the time +export const TimeContext = createContext({ + time: "", + setTime: () => {} +}); + +// We define the setTime function to store the time we’ll give it +class TimeProvider extends Component { + state = { + time : "17:00", + setTime: time => this.setState({ time : time }) + }; + + render() { + return ( +It’s {value.time} !
} + setTime(e.target.value)} /> +