diff --git a/src/index.ejs b/src/index.ejs
index e4bf0cc7e51b9e78a7a4777bcba5fbc79ae5a8db..5b4170b7fd78a2a21126a4de2f28216b2dfd95dc 100644
--- a/src/index.ejs
+++ b/src/index.ejs
@@ -3,6 +3,7 @@
   <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="shortcut icon" href="static/favicon.ico">
     <title><%= htmlWebpackPlugin.options.title %></title>
   </head>
   <body>
diff --git a/static/favicon.ico b/static/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..7a4cf69ed41a7ea3e21aa15f38c125613d8e223b
Binary files /dev/null and b/static/favicon.ico differ
diff --git a/webpack.config.js b/webpack.config.js
index 5a654cfcd00acfdec098fba6b2f59ebc2ce5d664..c92f72ea718775322dbd7b29aca36dedbbcb5734 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -103,6 +103,10 @@ module.exports = {
             filename: 'player.html',
             title: 'Scratch 3.0 GUI: Player Example'
         }),
+        new CopyWebpackPlugin([{
+            from: 'static',
+            to: 'static'
+        }]),
         new CopyWebpackPlugin([{
             from: 'node_modules/scratch-blocks/media',
             to: 'static/blocks-media'