diff --git a/css/print/pdf.scss b/css/print/pdf.scss
index 96b774db173e95766a7b717f28ae1765befe489e..5eed0fb5b068b44ce6eba862a0b88d0a1e7d6cf1 100644
--- a/css/print/pdf.scss
+++ b/css/print/pdf.scss
@@ -2,7 +2,7 @@
  * This stylesheet is used to print reveal.js
  * presentations to PDF.
  *
- * https://github.com/hakimel/reveal.js#pdf-export
+ * https://revealjs.netlify.app/pdf-export/
  */
 
 html.print-pdf {
diff --git a/css/theme/README.md b/css/theme/README.md
index 5ebe72a1786e2ca940714218c24ab070dd36fbf4..b1b3a3428140c2fbf0c3cbba2e827d3a611a2901 100644
--- a/css/theme/README.md
+++ b/css/theme/README.md
@@ -1,10 +1,10 @@
 ## Dependencies
 
-Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceeding: https://github.com/hakimel/reveal.js#full-setup
+Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment installed before proceeding: https://revealjs.netlify.app/installation/#full-setup
 
 ## Creating a Theme
 
-To create your own theme, start by duplicating a ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled by Grunt from Sass to CSS (see the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/gruntfile.js)) when you run `npm run build -- css-themes`.
+To create your own theme, start by duplicating a ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled from Sass to CSS (see the [gulpfile](https://github.com/hakimel/reveal.js/blob/master/gulpfile.js)) when you run `npm run build -- css-themes`.
 
 Each theme file does four things in the following order:
 
diff --git a/demo.html b/demo.html
index f4b37be2862d329b2861d678e59634de5cdf36ea..8e26da8b5adceb140c00f86249d095675372896b 100644
--- a/demo.html
+++ b/demo.html
@@ -149,14 +149,14 @@
 						## Markdown support
 
 						Write content using inline or external Markdown.
-						Instructions and more info available in the [readme](https://github.com/hakimel/reveal.js#markdown).
+						Instructions and more info available in the [readme](https://revealjs.netlify.app/markdown/).
 
 						```[]
 						<section data-markdown>
 						  ## Markdown support
 
 						  Write content using inline or external Markdown.
-						  Instructions and more info available in the [readme](https://github.com/hakimel/reveal.js#markdown).
+						  Instructions and more info available in the [readme](https://revealjs.netlify.app/markdown/).
 						</section>
 						```
 					</script>
@@ -345,7 +345,7 @@
 
 				<section>
 					<h2>Speaker View</h2>
-					<p>There's a <a href="https://github.com/hakimel/reveal.js#speaker-notes">speaker view</a>. It includes a timer, preview of the upcoming slide as well as your speaker notes.</p>
+					<p>There's a <a href="https://revealjs.netlify.app/speaker-view/">speaker view</a>. It includes a timer, preview of the upcoming slide as well as your speaker notes.</p>
 					<p>Press the <em>S</em> key to try it out.</p>
 
 					<aside class="notes">
@@ -355,7 +355,7 @@
 
 				<section>
 					<h2>Export to PDF</h2>
-					<p>Presentations can be <a href="https://github.com/hakimel/reveal.js#pdf-export">exported to PDF</a>, here's an example:</p>
+					<p>Presentations can be <a href="https://revealjs.netlify.app/pdf-export/">exported to PDF</a>, here's an example:</p>
 					<iframe data-src="https://www.slideshare.net/slideshow/embed_code/42840540" width="445" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:3px solid #666; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
 				</section>
 
@@ -391,10 +391,10 @@ Reveal.on( 'customevent', function() {
 					<h2>Much more</h2>
 					<ul>
 						<li>Right-to-left support</li>
-						<li><a href="https://github.com/hakimel/reveal.js#api">Extensive JavaScript API</a></li>
-						<li><a href="https://github.com/hakimel/reveal.js#auto-sliding">Auto-progression</a></li>
-						<li><a href="https://github.com/hakimel/reveal.js#parallax-background">Parallax backgrounds</a></li>
-						<li><a href="https://github.com/hakimel/reveal.js#keyboard-bindings">Custom keyboard bindings</a></li>
+						<li><a href="https://revealjs.netlify.app/api/">Extensive JavaScript API</a></li>
+						<li><a href="https://revealjs.netlify.app/auto-slide/">Auto-progression</a></li>
+						<li><a href="https://revealjs.netlify.app/backgrounds/#parallax-background">Parallax backgrounds</a></li>
+						<li><a href="https://revealjs.netlify.app/keyboard/">Custom keyboard bindings</a></li>
 					</ul>
 				</section>
 
@@ -410,26 +410,24 @@ Reveal.on( 'customevent', function() {
 
 		</div>
 
-		<script type="module">
+		<script src="dist/reveal.js"></script>
+		<script src="plugin/zoom/zoom.js"></script>
+		<script src="plugin/notes/notes.js"></script>
+		<script src="plugin/search/search.js"></script>
+		<script src="plugin/markdown/markdown.js"></script>
+		<script src="plugin/highlight/highlight.js"></script>
+		<script>
 
-			import Reveal from '/dist/reveal.esm.js';
-			import Zoom from '/plugin/zoom/zoom.esm.js';
-			import Notes from '/plugin/notes/notes.esm.js';
-			import Search from '/plugin/search/search.esm.js';
-			import Markdown from '/plugin/markdown/markdown.esm.js';
-			import Highlight from '/plugin/highlight/highlight.esm.js';
-
-			// More info https://github.com/hakimel/reveal.js#configuration
+			// Also available as an ES module, see:
+			// https://revealjs.netlify.app/initialization/
 			Reveal.initialize({
 				controls: true,
 				progress: true,
 				center: true,
 				hash: true,
 
-				transition: 'slide', // none/fade/slide/convex/concave/zoom
-
-				// More info https://github.com/hakimel/reveal.js#plugins
-				plugins: [ Zoom, Notes, Search, Markdown, Highlight ]
+				// Learn about plugins: https://revealjs.netlify.app/plugins/
+				plugins: [ RevealZoom, RevealNotes, RevealSearch, RevealMarkdown, RevealHighlight ]
 			});
 
 		</script>
diff --git a/examples/slide-backgrounds.html b/examples/slide-backgrounds.html
index bcc8dbbcc55f37ac80915efa33035e6f565f7917..f4f65c24ca4ada3693dc985f2aec783b16feb45d 100644
--- a/examples/slide-backgrounds.html
+++ b/examples/slide-backgrounds.html
@@ -125,8 +125,8 @@
 		<script src="../dist/reveal.js"></script>
 		<script>
 
-			// Full list of configuration options available here:
-			// https://github.com/hakimel/reveal.js#configuration
+			// Full list of configuration options:
+			// https://revealjs.netlify.app/config/
 			Reveal.initialize({
 				center: true,
 
diff --git a/index.html b/index.html
index 5b7bedbe4a36dca9709600a0ef2e07e4a95c2e86..32ee75f237f2c19985d7daf0a7795451fc5a9ebc 100644
--- a/index.html
+++ b/index.html
@@ -22,15 +22,17 @@
 		</div>
 
 		<script src="dist/reveal.js"></script>
+		<script src="plugin/notes/notes.js"></script>
 		<script src="plugin/markdown/markdown.js"></script>
 		<script src="plugin/highlight/highlight.js"></script>
-		<script src="plugin/notes/notes.js"></script>
 		<script>
-			// More info about config & dependencies:
-			// - https://github.com/hakimel/reveal.js#configuration
-			// - https://github.com/hakimel/reveal.js#plugins
+			// More info about initialization & config:
+			// - https://revealjs.netlify.app/initialization/
+			// - https://revealjs.netlify.app/config/
 			Reveal.initialize({
 				hash: true,
+
+				// Learn about plugins: https://revealjs.netlify.app/plugins/
 				plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
 			});
 		</script>
diff --git a/package-lock.json b/package-lock.json
index 7277c18740e5ccfa5b0906d3d8d26788a4926600..29f9281c0b18f4394598561c91ec312b415a2a3e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "reveal.js",
-  "version": "4.0.0-dev",
+  "version": "4.0.0-rc.1",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {