diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 0000000..9f23033
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,5 @@
+if (process.env.NODE_ENV === "production") {
+  module.exports = {
+    plugins: [require("autoprefixer"), require("cssnano")]
+  };
+}
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 0000000..6616037
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,66 @@
+var path = require("path");
+var webpack = require("webpack");
+var MiniCssExtractPlugin = require("mini-css-extract-plugin");
+
+module.exports = {
+  entry: "./index.jsx",
+  output: {
+    path: path.resolve(__dirname, "dist"),
+    filename: "bundle.js"
+  },
+  resolve: {
+    extensions: ["*", ".js", ".jsx"]
+  },
+  module: {
+    rules: [
+      {
+        test: /\.(js|jsx)$/,
+        exclude: /(node_modules)/,
+        use: {
+          loader: "babel-loader",
+          options: {
+            presets: ["@babel/preset-env", "@babel/preset-react"]
+          }
+        }
+      },
+      {
+        test: /\.(sa|sc|c)ss$/,
+        use: [
+          {
+            loader: MiniCssExtractPlugin.loader
+          },
+          {
+            loader: "css-loader"
+          },
+          {
+            loader: "postcss-loader"
+          },
+          {
+            loader: "sass-loader",
+            options: {
+              implementation: require("sass")
+            }
+          }
+        ]
+      },
+      {
+        test: /\.(png|jpe?g|gif|svg)$/,
+        use: [
+          {
+            loader: "file-loader",
+            options: {
+              outputPath: "images"
+            }
+          }
+        ]
+      }
+    ]
+  },
+  plugins: [
+    new webpack.HotModuleReplacementPlugin(),
+    new MiniCssExtractPlugin({
+      filename: "bundle.css"
+    })
+  ],
+  mode: "development"
+};