diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -2,13 +2,13 @@
 <p align="center">
 
 <a href="https://haskell-miso.org">
-  <img width=10% src="https://emojipedia-us.s3.amazonaws.com/thumbs/240/apple/96/steaming-bowl_1f35c.png">
+  <img width=10% src="https://em-content.zobj.net/thumbs/240/apple/325/steaming-bowl_1f35c.png">
    </a>
 <p align="center">A <i>tasty</i> <a href="https://www.haskell.org/"><strong>Haskell</strong></a> front-end framework</p>
 </p>
 
 <p align="center">
-  <a href="https://haskell-miso-slack.herokuapp.com">
+  <a href="https://join.slack.com/t/haskell-miso/shared_invite/zt-1w80x404h-AF2Be_BDQixNMadzadnUNg">
 <img src="https://img.shields.io/badge/slack-miso-E01563.svg?style=flat-square" alt="Miso Slack">
   </a>
   <a href="https://haskell.org">
@@ -56,6 +56,7 @@
   - [File Reader](#file-reader)
   - [WebVR](#webvr)
   - [Pixel Card Wars](#pixel-card-wars)
+  - [Currency Converter](#currency-converter)
 - [Haddocks](#haddocks)
   - [GHC](#ghc)
   - [GHCJS](#ghcjs)
@@ -98,7 +99,7 @@
 ### Nix
 `Nix` is a more powerful option for building web applications with `miso` since it encompasses development workflow, configuration management, and deployment. The source code for [`haskell-miso.org`](https://github.com/dmjio/miso/tree/master/examples/haskell-miso.org) is an example of this.
 
-If unfamiliar with `nix`, we recommend [@Gabriel439](https://github.com/Gabriel439)'s ["Nix and Haskell in production"](https://github.com/Gabriel439/haskell-nix) guide.
+If unfamiliar with `nix`, we recommend [@Gabriella439](https://github.com/Gabriella439)'s ["Nix and Haskell in production"](https://github.com/Gabriella439/haskell-nix) guide.
 
 To begin, make the following directory layout:
 ```bash
@@ -219,7 +220,7 @@
   - [Link](https://threejs.haskell-miso.org/) / [Source](https://github.com/dmjio/miso/blob/master/examples/three/Main.hs)
 
 ### Simple
-  - [Link](https://simple.haskell-miso.org/) / [Source](https://github.com/dmjio/miso/blob/master/exe/Main.hs)
+  - [Link](https://simple.haskell-miso.org/) / [Source](https://github.com/dmjio/miso/blob/master/examples/simple/Main.hs)
 
 ### File Reader
   - [Link](https://file-reader.haskell-miso.org/) / [Source](https://github.com/dmjio/miso/blob/master/examples/file-reader/Main.hs)
@@ -230,6 +231,9 @@
 ### Pixel Card Wars
   - [Link](https://www.schplaf.org/hgames/darkcraw/) / [Source](https://github.com/smelc/miso-darkcraw)
 
+### Currency Converter
+  - [Link](https://functora.github.io/apps/currency-converter) / [Source](https://github.com/functora/functora.github.io/tree/master/ghcjs/currency-converter)
+
 ## Haddocks
 
 ### GHCJS
@@ -450,9 +454,9 @@
 
 ## Benchmarks
 
-[According to benchmarks](https://rawgit.com/krausest/js-framework-benchmark/master/webdriver-ts-results/table.html), `miso` is among the fastest functional programming web frameworks, second only to [Elm](http://elm-lang.org).
+[According to benchmarks](https://krausest.github.io/js-framework-benchmark/current.html), `miso` is among the fastest functional programming web frameworks, second only to [Elm](http://elm-lang.org).
 
-<a target="_blank" href="https://rawgit.com/krausest/js-framework-benchmark/master/webdriver-ts-results/table.html"><img src="https://cdn-images-1.medium.com/max/1600/1*6EjJTf1mhlTxd4QWsygCwA.png" width="500" height="600" /></a>
+<a target="_blank" href="https://krausest.github.io/js-framework-benchmark/current.html"><img src="https://cdn-images-1.medium.com/max/1600/1*6EjJTf1mhlTxd4QWsygCwA.png" width="500" height="600" /></a>
 
 ## Maintainers
 
diff --git a/jsstring-src/Miso/String.hs b/jsstring-src/Miso/String.hs
--- a/jsstring-src/Miso/String.hs
+++ b/jsstring-src/Miso/String.hs
@@ -42,7 +42,7 @@
 -- | String type swappable based on compiler
 type MisoString = JS.JSString
 
-#ifdef __GHCJS__
+#ifdef ghcjs_HOST_OS
 -- | `ToJSON` for `MisoString`
 instance ToJSON MisoString where
   toJSON = String . textFromJSString
diff --git a/miso.cabal b/miso.cabal
--- a/miso.cabal
+++ b/miso.cabal
@@ -1,5 +1,5 @@
 name:                miso
-version:             1.8.3.0
+version:             1.8.4.0
 category:            Web, Miso, Data Structures
 license:             BSD3
 license-file:        LICENSE
@@ -48,7 +48,7 @@
 executable tests
   main-is:
     Main.hs
-  if !impl(ghcjs) || !flag(tests)
+  if !(impl(ghcjs) || arch(javascript)) || !flag(tests)
     buildable: False
   else
     ghcjs-options:
@@ -121,7 +121,7 @@
     Miso.Mathml.Element
     Miso.String
     Miso.WebSocket
-  if !impl(ghcjs)
+  if !(impl(ghcjs) || arch(javascript))
     exposed-modules:
       Miso.TypeLevel
   other-modules:
@@ -130,7 +130,7 @@
     -Wall
   hs-source-dirs:
     src
-  if impl(ghcjs) || flag (jsstring-only)
+  if impl(ghcjs) || arch(javascript) || flag (jsstring-only)
     hs-source-dirs:
       jsstring-src
   else
@@ -151,17 +151,17 @@
     tagsoup,
     text,
     transformers
-  if impl(ghcjs)
+  if impl(ghcjs) || arch(javascript)
     build-depends:
       ghcjs-base
   else
     build-depends:
       servant-lucid
-  if impl(ghcjs) || flag (jsaddle)
+  if impl(ghcjs) || arch(javascript) || flag (jsaddle)
     if flag (ios)
       cpp-options:
         -DIOS
-  if impl(ghcjs)
+  if impl(ghcjs) || arch(javascript)
     js-sources:
       jsbits/diff.js
       jsbits/delegate.js
diff --git a/src/Miso.hs b/src/Miso.hs
--- a/src/Miso.hs
+++ b/src/Miso.hs
@@ -26,7 +26,7 @@
   , module Miso.Event
   , module Miso.Html
   , module Miso.Subscription
-#ifndef __GHCJS__
+#ifndef ghcjs_HOST_OS
   , module Miso.TypeLevel
 #endif
   , module Miso.Types
@@ -46,7 +46,7 @@
 import qualified Data.Sequence as S
 import qualified JavaScript.Object.Internal as OI
 
-#ifndef __GHCJS__
+#ifndef ghcjs_HOST_OS
 import           Language.Javascript.JSaddle (eval, waitForAnimationFrame)
 #ifdef IOS
 import           Miso.JSBits
@@ -67,7 +67,7 @@
 import           Miso.Html
 import           Miso.Router
 import           Miso.Subscription
-#ifndef __GHCJS__
+#ifndef ghcjs_HOST_OS
 import           Miso.TypeLevel
 #endif
 import           Miso.Types
@@ -82,7 +82,7 @@
   -> (Sink action -> JSM (IORef VTree))
   -> JSM ()
 common App {..} m getView = do
-#ifndef __GHCJS__
+#ifndef ghcjs_HOST_OS
 #ifdef IOS
   mapM_ eval [delegateJs,diffJs,isomorphicJs,utilJs]
 #else
diff --git a/src/Miso/FFI.hs b/src/Miso/FFI.hs
--- a/src/Miso/FFI.hs
+++ b/src/Miso/FFI.hs
@@ -59,12 +59,12 @@
 import           GHCJS.Marshal
 import           GHCJS.Types
 import qualified JavaScript.Object.Internal as OI
-#ifdef __GHCJS__
+#ifdef ghcjs_HOST_OS
 import           Language.Javascript.JSaddle hiding (obj, val)
 #else
 import           Language.Javascript.JSaddle hiding (Success, obj, val)
 #endif
-import           Miso.String hiding (elem)
+import           Miso.String
 
 -- | Run given `JSM` action asynchronously, in a separate thread.
 forkJSM :: JSM () -> JSM ()
diff --git a/src/Miso/Html/Types.hs b/src/Miso/Html/Types.hs
--- a/src/Miso/Html/Types.hs
+++ b/src/Miso/Html/Types.hs
@@ -58,14 +58,14 @@
 import qualified Lucid                      as L
 import qualified Lucid.Base                 as L
 import           Prelude                    hiding (null)
-import           Servant.API                (Get, HasLink, MkLink, toLink)
+import           Servant.API                (Get, HasLink(MkLink, toLink))
 import           Text.HTML.TagSoup.Tree     (parseTree, TagTree(..))
 import           Text.HTML.TagSoup          (Tag(..))
 
 import           Miso.Effect
 import           Miso.Event
 import           Miso.FFI
-import           Miso.String hiding (elem, reverse)
+import           Miso.String                hiding (reverse, elem)
 
 -- | Core type for constructing a `VTree`, use this instead of `VTree` directly.
 data View action
diff --git a/src/Miso/Subscription/WebSocket.hs b/src/Miso/Subscription/WebSocket.hs
--- a/src/Miso/Subscription/WebSocket.hs
+++ b/src/Miso/Subscription/WebSocket.hs
@@ -87,7 +87,7 @@
   WS.addEventListener socket "error" $ \v -> do
     liftIO (writeIORef closedCode Nothing)
     d' <- WS.data' v
-#ifndef __GHCJS__        
+#ifndef ghcjs_HOST_OS
     undef <- ghcjsPure (isUndefined d')
 #else
     let undef = isUndefined d'
diff --git a/src/Miso/WebSocket.hs b/src/Miso/WebSocket.hs
--- a/src/Miso/WebSocket.hs
+++ b/src/Miso/WebSocket.hs
@@ -27,7 +27,7 @@
 
 import GHC.Generics
 import Prelude                hiding (map)
-#ifdef __GHCJS__
+#ifdef ghcjs_HOST_OS
 import GHCJS.Marshal
 #endif
 
@@ -98,7 +98,7 @@
    -- ^ OtherCode that is reserved and not in the range 0999
   deriving (Show, Eq, Generic)
 
-#ifdef __GHCJS__
+#ifdef ghcjs_HOST_OS
 -- Defined here to avoid an orphan instance
 instance ToJSVal CloseCode
 instance FromJSVal CloseCode
