diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,11 @@
 # Revision history for reflex-dom
 
+## 0.5.1
+
+* The default jsaddle backend on macOS when built from nix
+  is now jsaddle-wkwebview, matching the behaviour of cabal
+  builds.
+
 ## 0.5
 
 * Re-export new hydration widget "mainWidget" functions.
diff --git a/java/org/reflexfrp/reflexdom/MainWidget.java b/java/org/reflexfrp/reflexdom/MainWidget.java
--- a/java/org/reflexfrp/reflexdom/MainWidget.java
+++ b/java/org/reflexfrp/reflexdom/MainWidget.java
@@ -22,6 +22,7 @@
 import java.io.InputStream;
 import android.content.Intent;
 import android.content.ActivityNotFoundException;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import java.nio.charset.StandardCharsets;
 
@@ -45,11 +46,17 @@
     wv.setWebContentsDebuggingEnabled(true);
     // allow video to play without user interaction
     wv.getSettings().setMediaPlaybackRequiresUserGesture(false);
+    final AtomicBoolean jsaddleLoaded = new AtomicBoolean(false);
 
     wv.setWebViewClient(new WebViewClient() {
         @Override
         public void onPageFinished(WebView _view, String _url) {
-          wv.evaluateJavascript(initialJS, null);
+          Log.i("reflex", "onPageFinished");
+          boolean alreadyLoaded = jsaddleLoaded.getAndSet(true);
+          if(!alreadyLoaded) {
+            Log.i("reflex", "loading jsaddle");
+            wv.evaluateJavascript(initialJS, null);
+          }
         }
 
         // Re-route / to /android_asset
diff --git a/reflex-dom.cabal b/reflex-dom.cabal
--- a/reflex-dom.cabal
+++ b/reflex-dom.cabal
@@ -1,5 +1,5 @@
 Name: reflex-dom
-Version: 0.5
+Version: 0.5.2.0
 Synopsis: Functional Reactive Web Apps with Reflex
 Description:
   Reflex-DOM is a Functional Reactive web framework based on the Reflex FRP engine.
@@ -41,14 +41,9 @@
   default: False
   manual: True
 
-flag android
-  description: Build an Android app
-  default: False
-  manual: True
-
 library
   hs-source-dirs: src
-  if flag(android)
+  if os(android)
     hs-source-dirs: src-android
     other-modules: Reflex.Dom.Android.MainWidget
     build-depends:
@@ -62,10 +57,10 @@
     cpp-options: -DANDROID
     build-tools: hsc2hs
   build-depends:
-    base >= 4.7 && < 4.12,
+    base >= 4.7 && < 4.13,
     bytestring == 0.10.*,
-    reflex == 0.6.*,
-    reflex-dom-core >=0.5 && <0.6,
+    reflex >= 0.6.2,
+    reflex-dom-core >=0.5.2 && <0.6,
     text == 1.2.*
   if !impl(ghcjs)
     if flag(use-warp) && (os(linux) || os(osx))
@@ -83,7 +78,7 @@
           build-depends:
             jsaddle-webkit2gtk
         else
-          if !flag(android)
+          if !os(android)
             build-depends:
               jsaddle-webkit2gtk
 
