diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -4,6 +4,10 @@
 #### dev
 * ...
 
+#### 0.2.0.0
+* Use GHC 7.10 with Stackage `nightly-2015-07-09`
+* Use Stack
+
 #### 0.1.0.0
 * Fixes compilation issues with LTS Haskell 2.x
 
diff --git a/LambdaCms/Core/Foundation.hs b/LambdaCms/Core/Foundation.hs
--- a/LambdaCms/Core/Foundation.hs
+++ b/LambdaCms/Core/Foundation.hs
@@ -23,7 +23,7 @@
 import           Data.Text                  (Text, concat, intercalate, pack,
                                              unpack)
 import           Data.Text.Encoding         (decodeUtf8)
-import           Data.Time                  (getCurrentTime)
+import           Data.Time                  (getCurrentTime, utc)
 import           Data.Time.Format.Human
 import           Data.Traversable           (forM)
 import           Database.Persist.Sql       (SqlBackend)
@@ -33,7 +33,7 @@
 import           LambdaCms.Core.Models
 import           LambdaCms.Core.Settings
 import           LambdaCms.I18n
-import           Network.Gravatar           (GravatarOptions (..), Size (..),
+import           Network.Gravatar           (GravatarOptions(..), Size(..),
                                              def, gravatar)
 import           Network.Mail.Mime
 import           Network.Wai                (requestMethod)
@@ -319,20 +319,21 @@
     let rm = unpack . renderMessage y langs
     return $ HumanTimeLocale
         { justNow       = rm Msg.TimeJustNow
-        , secondsAgo    = rm . Msg.TimeSecondsAgo . pack
-        , oneMinuteAgo  = rm Msg.TimeOneMinuteAgo
-        , minutesAgo    = rm . Msg.TimeMinutesAgo . pack
-        , oneHourAgo    = rm Msg.TimeOneHourAgo
-        , aboutHoursAgo = rm . Msg.TimeAboutHoursAgo . pack
+        , secondsAgo    = (\_ x -> rm . Msg.TimeSecondsAgo $ pack x)
+        , oneMinuteAgo  = (\_   -> rm Msg.TimeOneMinuteAgo)
+        , minutesAgo    = (\_ x -> rm . Msg.TimeMinutesAgo $ pack x)
+        , oneHourAgo    = (\_   -> rm Msg.TimeOneHourAgo)
+        , aboutHoursAgo = (\_ x -> rm . Msg.TimeAboutHoursAgo $ pack x)
         , at            = (\_ x -> rm $ Msg.TimeAt $ pack x)
-        , daysAgo       = rm . Msg.TimeDaysAgo . pack
-        , weekAgo       = rm . Msg.TimeWeekAgo . pack
-        , weeksAgo      = rm . Msg.TimeWeeksAgo . pack
+        , daysAgo       = (\_ x -> rm . Msg.TimeDaysAgo $ pack x)
+        , weekAgo       = (\_ x -> rm . Msg.TimeWeekAgo $ pack x)
+        , weeksAgo      = (\_ x -> rm . Msg.TimeWeeksAgo $ pack x)
         , onYear        = rm . Msg.TimeOnYear . pack
         , locale        = lambdaCmsTimeLocale langs
         , dayOfWeekFmt  = rm Msg.DayOfWeekFmt
         , thisYearFmt   = "%b %e"
         , prevYearFmt   = "%b %e, %Y"
+        , timeZone      = utc
         }
 
 routeBestMatch :: RenderRoute master
diff --git a/LambdaCms/Core/Import.hs b/LambdaCms/Core/Import.hs
--- a/LambdaCms/Core/Import.hs
+++ b/LambdaCms/Core/Import.hs
@@ -7,7 +7,6 @@
 import           Yesod                      as Import hiding (Route (..))
 import           Yesod.Form.Bootstrap3      as Import
 
-import           Control.Applicative        as Import (pure, (<$>), (<*>), (<*))
 import           Data.Text                  as Import (Text)
 import           Text.Hamlet                as Import (hamletFile)
 
@@ -19,11 +18,4 @@
 --import           Settings.Development as Import
 --import           Settings.StaticFiles as Import
 
-#if __GLASGOW_HASKELL__ >= 704
-import           Data.Monoid          as Import (Monoid (mappend, mempty, mconcat), (<>))
-#else
-import           Data.Monoid          as Import (Monoid (mappend, mempty, mconcat))
-infixr 5 <>
-(<>) :: Monoid m => m -> m -> m
-(<>) = mappend
-#endif
+import           Data.Monoid                as Import ((<>))
diff --git a/LambdaCms/Core/Message.hs b/LambdaCms/Core/Message.hs
--- a/LambdaCms/Core/Message.hs
+++ b/LambdaCms/Core/Message.hs
@@ -9,8 +9,8 @@
        , dutchMessage
        ) where
 
-import           Data.Monoid (mappend)
 import           Data.Text   (Text)
+
 
 data CoreMessage =
     Dashboard
diff --git a/LambdaCms/I18n.hs b/LambdaCms/I18n.hs
--- a/LambdaCms/I18n.hs
+++ b/LambdaCms/I18n.hs
@@ -3,9 +3,10 @@
 module LambdaCms.I18n where
 
 import           Data.Text
+import           Data.Time.Format (defaultTimeLocale, TimeLocale)
 import           LambdaCms.I18n.Dutch
 import           LambdaCms.I18n.Italian
-import           System.Locale
+
 
 -- | Helper function to get the right time locale.
 lambdaCmsTimeLocale :: [Text] -> TimeLocale
diff --git a/LambdaCms/I18n/Dutch.hs b/LambdaCms/I18n/Dutch.hs
--- a/LambdaCms/I18n/Dutch.hs
+++ b/LambdaCms/I18n/Dutch.hs
@@ -1,7 +1,8 @@
 module LambdaCms.I18n.Dutch where
 
-import           System.Locale
+import           Data.Time.Format (TimeLocale(..))
 
+
 -- | Dutch time locale.
 dutchTimeLocale :: TimeLocale
 dutchTimeLocale =  TimeLocale
@@ -18,18 +19,10 @@
                   ("September", "Sep"), ("Oktober",   "Okt"),
                   ("November",  "Nov"), ("December",  "Dec")],
 
-        intervals = [ ("jaar",  "jaren")
-                    , ("maand", "maanden")
-                    , ("dag",   "dagen")
-                    , ("uur",   "uren")
-                    , ("min",   "mins")
-                    , ("sec",   "secs")
-                    , ("usec",  "usecs")
-                    ],
-
         amPm = ("", ""),
         dateTimeFmt = "%a %b %e %H:%M:%S %Z %Y",
         dateFmt = "%d-%m-%y",
         timeFmt = "%H:%M:%S",
-        time12Fmt = "%H:%M:%S"
+        time12Fmt = "%H:%M:%S",
+        knownTimeZones = []
     }
diff --git a/LambdaCms/I18n/Italian.hs b/LambdaCms/I18n/Italian.hs
--- a/LambdaCms/I18n/Italian.hs
+++ b/LambdaCms/I18n/Italian.hs
@@ -1,7 +1,8 @@
 module LambdaCms.I18n.Italian where
 
-import           System.Locale
+import           Data.Time.Format (TimeLocale(..))
 
+
 -- | Italian time locale.
 italianTimeLocale :: TimeLocale
 italianTimeLocale =  TimeLocale
@@ -18,18 +19,10 @@
                   ("Settembre", "Set"), ("Ottobre",   "Ott"),
                   ("Novembre",  "Nov"), ("Dicembre",  "Dic")],
 
-        intervals = [ ("anno",  "anni")
-                    , ("mese",  "mesi")
-                    , ("giorno","giorni")
-                    , ("ora",   "ore")
-                    , ("min",   "mins")
-                    , ("sec",   "secs")
-                    , ("usec",  "usecs")
-                    ],
-
         amPm = ("AM", "PM"),
         dateTimeFmt = "%a %b %e %H:%M:%S %Z %Y",
         dateFmt = "%d-%m-%y",
         timeFmt = "%H:%M:%S",
-        time12Fmt = "%H:%M:%S"
+        time12Fmt = "%H:%M:%S",
+        knownTimeZones = []
     }
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -47,7 +47,12 @@
 
 This section walk through the steps of setting up a site with LambdaCms.
 
+**NOTE:** We're currently in the process using
+[`stack`](https://github.com/commercialhaskell/stack), and upgrading to
+GHC 7.10. This means we will use Stackage's `nightly-2015-07-09` package
+set until LTS 3 is released.
 
+
 ### Prerequisites
 
 You need to be reasonably acquinted with Haskell in order to follow
@@ -60,7 +65,8 @@
 
 * the web technologies (HTTP, HTML, CSS, JS, REST),
 * RDBMS/SQL (LambdaCms makes use of a relational database), and
-* the Yesod web application framework (for which an [awesome book](http://yesodweb.com/book) exists).
+* the Yesod web application framework (for which an
+* [awesome book](http://yesodweb.com/book) exists).
 
 
 ### Non-Haskell dependencies
@@ -95,35 +101,9 @@
 site. This means you might have to install and setup a database server locally.
 
 
-### The tool chain
-
-Make sure to have **GHC** 7.8.3+, **cabal-install** 1.20+, **happy** and **alex**
-installed; and their binaries available from your shell's `$PATH`.
-
-Use the following command to check your system meets the requirements:
-
-```bash
-for c in ghc cabal happy alex; do $c -V | head -n1; done
-```
-
-When good to go the output should be similar to:
-
-```
-The Glorious Glasgow Haskell Compilation System, version 7.8.4
-cabal-install version 1.20.0.3
-Happy Version 1.19.5 Copyright (c) 1993-1996 Andy Gill, Simon Marlow (c) 1997-2005 Simon Marlow
-Alex version 3.1.4, (c) 2003 Chris Dornan and Simon Marlow
-```
-
-In case you are **not** good to go, you may want to follow the
-[per operating system installation guides on the haskell.org website](https://www.haskell.org/downloads)
-which provides instructions for installing the tool chain and setting
-up your `$PATH`.
-
-
 ### Create a project folder
 
-Choose a name for your project.  In below we chose `mysite`, which you
+Choose a name for your project.  In below we choose `mysite`, which you
 probably want to change. Make sure to choose a valid unix file name
 to avoid naming issues.  Now create a directory for your project and
 `cd` into it, by running the following commands:
@@ -133,45 +113,13 @@
 ```
 
 
-### Initialize a cabal sandbox
-
-To avoid running into version conflicts with other Haskell projects
-you might be working on from the same system, we setup a cabal sandbox.
-
-From within your project's folder run the following commmand:
-
-```bash
-cabal sandbox init
-```
-
-
-### Using LTS Haskell
-
-To avoid spending too much time on build issues we use and recommend
-[LTS Haskell](https://github.com/fpco/lts-haskell#readme).
-
-Currently we develop and test LambdaCms only against the `2.x`
-LTS Haskell releases. As minor releases of LTS Haskell should never
-contain breaking changes, you can safely use the latest release of
-a major LTS version.
-
-Run the following commands from within your project's folder,
-to install the most recent LTS Haskell package set in the `2.x` series.
-
-```bash
-wget http://www.stackage.org/lts/2/cabal.config
-cabal update
-```
-
-
 ### Initializing the base application
 
 First we need to install the `yesod` command, this command requires a
 lot of dependent packages to be downloaded and build (may a while).
-Run this from your project's folder:
 
 ```bash
-cabal install yesod-bin
+stack install yesod-bin --resolver nightly-2015-07-09
 ```
 
 With the following command you create a "scaffolded" Yesod application.
@@ -179,25 +127,34 @@
 Pick the database of your choice, and choose a project name:
 
 ```bash
-yesod init --bare
+yesod init -n $PROJECT_NAME --bare
 ```
 
 If you have chosen a database other than Sqlite, you need to create a
 database and a sufficiently priviledged database user, and set these
 credentials in the `config/setting.yml` file.
 
+Now we will create a `stack.yaml` file for this project which specifies
+the nightly snapshot we would like to use.
+
+```
+stack init --resolver nightly-2015-07-09
+```
+
+**NOTE:** This command complains that the some version constraints in
+the `$PROJECT_NAME.cabal` file are too strict. Please raise the
+upper bounds of these dependencies manually. **This step may be
+removed once LTS 3 is out.**
+
+
 This installs all dependencies and builds the scaffoled application 
 (may take a while):
 
 ```bash
-cabal install -j --enable-tests --max-backjumps=-1 --reorder-goals
+stack install
 ```
 
-In case you experience problems with `cabal install` try changing
-`-j` into `-j1` to prevents concurrent building, and/or simply retry
-the command until you consistently run into the same error.
-
-When you experience problems during builds, while using LTS `2.x`,
+When you experience problems during builds, while using LTS `3.x`,
 we consider this a bug. Please
 [raise an issue](https://github.com/lambdacms/lambdacms-core/issues).
 
@@ -234,7 +191,7 @@
 ```
 
 Because the cabal file has a different name for each project
-(i.e. `<project_name>.cabal`) the patch command will notice a patched file
+(i.e. `$PROJECT_NAME.cabal`) the patch command will notice a patched file
 is missing (we named it `project_name.cabal`).
 When the patch command tries to patch this file you will be prompted for
 the name of your projects cabal file, after providing the name it will
@@ -271,18 +228,43 @@
 ### Enjoy!
 
 After applying the patches `lambdacms-core` is installed in your Yesod application.
-Run `cabal install` (possibly with `-j1`) to fetch and build the dependencies.
-Then run the development server.
+Run `stack install` again to rebuild the project with the patches.
 
+Start the development server, which automatically recompiles when files
+have changed.
+
     yesod devel
 
-Now point your browser to
+Point your browser to
 [`http://localhost:3000/admin`](http://localhost:3000/admin) and you will be
 prompted to login.  The setup as described above has selected Mozilla's
 Persona as the only means of authentication.  In `config/settings.yml`
 you have provided an email address for the admin user that is created
 if no users exist. If this email address is known to Mozilla Persona
 then you can procede to log in.
+
+
+# Add LambdaCms "extensions" to your base application
+
+LambdaCms' extension system is one of its core strengths:
+it allows a developer to extend the site with packages while ensuring
+full type safety.
+
+Please refer to `lambdacms-media`'s [README](https://github.com/lambdacms/lambdacms-media/blob/master/README.md)
+for installation instructions. It also explains how other LambdaCms extensions
+may incorporate media items managed by the `lambdacms-media` extension.
+
+
+# Creating your own extensions
+
+In order to make the code base of your website as modular as possible,
+we recommend packaging functionality into LambdaCms extensions.
+This allows functionality to be shared as a library.
+
+Since this takes a bit of boiler plate, we have released a well documented
+[extension scaffold script](https://github.com/lambdacms/lambdacms-extension-scaffold)
+that should get you started.
+
 
 
 # License
diff --git a/lambdacms-core.cabal b/lambdacms-core.cabal
--- a/lambdacms-core.cabal
+++ b/lambdacms-core.cabal
@@ -1,5 +1,5 @@
 name:               lambdacms-core
-version:            0.1.0.0
+version:            0.2.0.0
 license:            MIT
 license-file:       LICENSE
 author:             Cies Breijs, Mats Rietdijk, Rutger van Aalst
@@ -13,7 +13,7 @@
 stability:          alpha
 category:           Web
 build-type:         Simple
-tested-with:        GHC >= 7.6
+tested-with:        GHC >= 7.10
 cabal-version:      >= 1.18
 extra-doc-files:    README.md
                   , CHANGES.md
@@ -64,8 +64,8 @@
                   , text
                   , shakespeare
                   , uuid                               >= 1.3.3    && < 1.4
-                  , time                               >= 1.4.2    && < 1.5
-                  , friendly-time                      >= 0.3      && < 1.0
+                  , time                               >= 1.5      && < 1.6
+                  , friendly-time                      >= 0.4      && < 0.5
                   , old-locale                         >= 1.0.0.5  && < 1.0.1.0
                   , mime-mail                          >= 0.4.5.2  && < 0.5
                   , blaze-html
