diff --git a/www/ghcup.css b/www/ghcup.css
index f5017693ad1ff3b7dfb00b16eaf7894d38525d84..e8e8d2788242f39da68ceeca4c4e739bcd3842f8 100644
--- a/www/ghcup.css
+++ b/www/ghcup.css
@@ -63,7 +63,7 @@ body#idx > * {
     margin-left: auto;
     margin-right: auto;
     text-align: center;
-    width: 30em;
+    width: 31em;
 }
 
 body#idx > #pitch {
@@ -88,7 +88,7 @@ body#idx p.other-platforms-help {
     background-color: rgb(250, 250, 250);
     margin-left: auto;
     margin-right: auto;
-    width: 46rem;
+    width: 45rem;
     text-align: center;
     border-radius: 3px;
     border: 1px solid rgb(204, 204, 204);
@@ -96,7 +96,7 @@ body#idx p.other-platforms-help {
 }
 
 .instructions > * {
-    width: 43rem;
+    width: 45rem;
     margin-left: auto;
     margin-right: auto;
 }
@@ -106,7 +106,9 @@ hr {
     margin-bottom: 2em;
 }
 
-#platform-instructions-unix > pre,
+#platform-instructions-linux > pre,
+#platform-instructions-mac > pre,
+#platform-instructions-freebsd > pre,
 #platform-instructions-win32 > pre,
 #platform-instructions-win64 > pre,
 #platform-instructions-default > div > pre,
diff --git a/www/ghcup.js b/www/ghcup.js
index 10277420edf0d0351b8112725aac88de201aa374..6085e540e48311c5bda7704d7f5633f4b5257c2b 100644
--- a/www/ghcup.js
+++ b/www/ghcup.js
@@ -1,4 +1,4 @@
-var platforms = ["default", "unknown", "win32", "win64", "unix"];
+var platforms = ["default", "unknown", "win32", "win64", "linux", "freebsd", "mac"];
 var platform_override = null;
 
 function detect_platform() {
@@ -10,41 +10,41 @@ function detect_platform() {
 
     var os = "unknown";
 
-    if (navigator.platform == "Linux x86_64") {os = "unix";}
-    if (navigator.platform == "Linux i686") {os = "unix";}
-    if (navigator.platform == "Linux i686 on x86_64") {os = "unix";}
-    if (navigator.platform == "Linux aarch64") {os = "unix";}
-    if (navigator.platform == "Linux armv6l") {os = "unix";}
-    if (navigator.platform == "Linux armv7l") {os = "unix";}
-    if (navigator.platform == "Linux armv8l") {os = "unix";}
-    if (navigator.platform == "Linux ppc64") {os = "unix";}
-    if (navigator.platform == "Linux mips") {os = "unix";}
-    if (navigator.platform == "Linux mips64") {os = "unix";}
-    if (navigator.platform == "Mac") {os = "unix";}
+    if (navigator.platform == "Linux x86_64") {os = "linux";}
+    if (navigator.platform == "Linux i686") {os = "linux";}
+    if (navigator.platform == "Linux i686 on x86_64") {os = "linux";}
+    if (navigator.platform == "Linux aarch64") {os = "linux";}
+    if (navigator.platform == "Linux armv6l") {os = "linux";}
+    if (navigator.platform == "Linux armv7l") {os = "linux";}
+    if (navigator.platform == "Linux armv8l") {os = "linux";}
+    if (navigator.platform == "Linux ppc64") {os = "linux";}
+    if (navigator.platform == "Linux mips") {os = "linux";}
+    if (navigator.platform == "Linux mips64") {os = "linux";}
+    if (navigator.platform == "Mac") {os = "mac";}
     if (navigator.platform == "Win32") {os = "win32";}
     if (navigator.platform == "Win64" ||
         navigator.userAgent.indexOf("WOW64") != -1 ||
         navigator.userAgent.indexOf("Win64") != -1) { os = "win64"; }
-    if (navigator.platform == "FreeBSD x86_64") {os = "unix";}
-    if (navigator.platform == "FreeBSD amd64") {os = "unix";}
-    if (navigator.platform == "NetBSD x86_64") {os = "unix";}
-    if (navigator.platform == "NetBSD amd64") {os = "unix";}
+    if (navigator.platform == "FreeBSD x86_64") {os = "freebsd";}
+    if (navigator.platform == "FreeBSD amd64") {os = "freebsd";}
+    // if (navigator.platform == "NetBSD x86_64") {os = "unix";}
+    // if (navigator.platform == "NetBSD amd64") {os = "unix";}
 
     // I wish I knew by now, but I don't. Try harder.
     if (os == "unknown") {
         if (navigator.appVersion.indexOf("Win")!=-1) {os = "win32";}
-        if (navigator.appVersion.indexOf("Mac")!=-1) {os = "unix";}
-        if (navigator.appVersion.indexOf("FreeBSD")!=-1) {os = "unix";}
+        if (navigator.appVersion.indexOf("Mac")!=-1) {os = "mac";}
+        if (navigator.appVersion.indexOf("FreeBSD")!=-1) {os = "freebsd";}
     }
 
     // Firefox Quantum likes to hide platform and appVersion but oscpu works
     if (navigator.oscpu) {
         if (navigator.oscpu.indexOf("Win32")!=-1) {os = "win32";}
         if (navigator.oscpu.indexOf("Win64")!=-1) {os = "win64";}
-        if (navigator.oscpu.indexOf("Mac")!=-1) {os = "unix";}
-        if (navigator.oscpu.indexOf("Linux")!=-1) {os = "unix";}
-        if (navigator.oscpu.indexOf("FreeBSD")!=-1) {os = "unix";}
-        if (navigator.oscpu.indexOf("NetBSD")!=-1) {os = "unix";}
+        if (navigator.oscpu.indexOf("Mac")!=-1) {os = "mac";}
+        if (navigator.oscpu.indexOf("Linux")!=-1) {os = "linux";}
+        if (navigator.oscpu.indexOf("FreeBSD")!=-1) {os = "freebsd";}
+        // if (navigator.oscpu.indexOf("NetBSD")!=-1) {os = "unix";}
     }
 
     return os;
diff --git a/www/index.html b/www/index.html
index b99b83b7160b88fdcf01fc7808698633239ddce2..b6439a0c20655c09b2e97648c3c1151b8988e37c 100644
--- a/www/index.html
+++ b/www/index.html
@@ -24,10 +24,22 @@
         the general purpose language <a href="https://www.haskell.org/">Haskell</a>
       </p>
 
-      <div id="platform-instructions-unix" class="instructions" style="display: none;">
+      <div id="platform-instructions-linux" class="instructions" style="display: none;">
         <p>Run the following in your terminal, then follow the onscreen instructions.</p>
         <pre>curl https://get-ghcup.haskell.org -sSf | sh</pre>
-        <p class="other-platforms-help">You appear to be running Unix. If not, <a class="default-platform-button" href="#">display all supported installers</a>.</p>
+        <p class="other-platforms-help">You appear to be running Linux. If not, <a class="default-platform-button" href="#">display all supported installers</a>.</p>
+      </div>
+
+      <div id="platform-instructions-mac" class="instructions" style="display: none;">
+        <p>Run the following in your terminal, then follow the onscreen instructions.</p>
+        <pre>curl https://get-ghcup.haskell.org -sSf | sh</pre>
+        <p class="other-platforms-help">You appear to be running Mac OS X. If not, <a class="default-platform-button" href="#">display all supported installers</a>.</p>
+      </div>
+
+      <div id="platform-instructions-freebsd" class="instructions" style="display: none;">
+        <p>Run the following in your terminal, then follow the onscreen instructions.</p>
+        <pre>curl https://get-ghcup.haskell.org -sSf | sh</pre>
+        <p class="other-platforms-help">You appear to be running FreeBSD. If not, <a class="default-platform-button" href="#">display all supported installers</a>.</p>
       </div>
 
       <div id="platform-instructions-win32" class="instructions">
@@ -65,7 +77,7 @@
 
         <!-- duplicate the default cross-platform instructions -->
         <div>
-          <p>If you are running Unix,<br/>run the following in your terminal, then follow the onscreen instructions.</p>
+          <p>If you are running Linux, Mac OS X or FreeBSD,<br/>run the following in your terminal, then follow the onscreen instructions.</p>
           <pre>curl https://get-ghcup.haskell.org -sSf | sh</pre>
         </div>
 
@@ -82,7 +94,7 @@
 
       <div id="platform-instructions-default" class="instructions">
         <div>
-          <p>To install Haskell, if you are running Unix,<br/>run the following
+          <p>To install Haskell, if you are running Linux, Mac OS X or FreeBSD,<br/>run the following
           in your terminal, then follow the onscreen instructions.</p>
           <pre>curl https://get-ghcup.haskell.org -sSf | sh</pre>
         </div>
@@ -126,7 +138,7 @@
 
       <div id="platform-instructions-default" class="instructions">
         <div>
-          <p>To install Haskell, if you are running Unix,<br/>run the following
+          <p>To install Haskell, if you are running Linux, Mac OS X or FreeBSD,<br/>run the following
           in your terminal, then follow the onscreen instructions.</p>
           <pre>curl https://get-ghcup.haskell.org -sSf | sh</pre>
         </div>