                                     (max 1 (* vw 2))))
                      :canvas-node canvas
                      :ctx         (.getContext canvas "2d")
-                     :show-about? true
+                     :show-about? (not skip-howto?)
                      :media-error nil})
-                  (js/setTimeout start! 500))))
+                  (js/setTimeout start! 500)
+                  (.setItem js/localStorage ls-key "1"))))
             (aset "srcObject" data)))
-        (swap! app-state assoc :media-error data)))))
+        (do
+          (swap! app-state assoc :media-error data :previous-grant? false)
+          (.clear js/localStorage))))))
 
 
 (defn make-gif [app ms]

          (recur (inc tick)))))))


(defn get-camera! []
  (swap! app-state assoc :camera-waiting? true)
  (take!
    (media/get-media)

             "view cellf source"))

        no-stream?
          (if previous-grant?
            (dom/div nil "One moment…")
            (dom/div nil
              (dom/h1 nil "Hi")
              (dom/p nil (:intro1 strings))
              (dom/p nil (:intro2 strings))
              (apply dom/button
                (if camera-waiting?
                  [#js {:className "wait"} "hold on"]
                  [#js {:onClick get-camera!} "✔ ok"]))))

        result-gif
          (dom/div nil
