    [:code "seq"] "." ]
 
    [demo-component {:comp lister-user
-                    :defs [:lister :lister-user]}]
-   ])
+                    :defs [:lister :lister-user]}]])
+
+(defn managing-state []
+  [:div
+   [:h2 "Managing state in Cloact"]
+
+   [:p "The easiest way to manage state in Cloact is to use Cloact's
+   own version of " [:code "atom"] ". It works exactly like the one in
+   clojure.core, except that it keeps track of every time it is
+   deref'ed. Any component that uses the atom is automagically
+   re-rendered."]
+
+   [:p "Let's demonstrate that with a simple example:"]
+   [demo-component {:comp counting-component
+                    :defs [:ns :click-count :counting-component]}]
+
+   [:p "Sometimes you may want to maintain state locally in a
+   component. That is very easy to do with an " [:code "atom"] " as well."]
+
+   [:p "Here is an example of that:"]
+   [demo-component {:comp local-state
+                    :defs [:ns :local-state]}]
+
+   [:p "This example also uses another feature of Cloact: a component
+   function can return another function, that is used to do the actual
+   rendering. It is called with the same arguments as any other
+   component function. This allows you to perform some setup of newly
+   created components, without resorting to React's lifecycle
+   events."]])
 
 
 (defn bmi-demo []

  [:div
   [:h1 "This will become a demo"]
   [intro]
   [bmi-demo]
   [:p "WIP"]])


(defn intro []
  [:div
   [:h2 "Introduction to Cloact"]

   [:p "Cloact provides a minimalistic interface between ClojureScript
and React. It allows you to define React components using nothing but
