diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,3 @@
+## 0.9.0.8
+
+* Simple example in the README
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,6 +3,67 @@
 
 [![Build Status](https://travis-ci.org/fpco/ide-backend.svg?branch=master)](https://travis-ci.org/fpco/ide-backend)
 
+In order to use this package, you must have the `ide-backend`, `ide-backend-server`, and `ide-backend-rts` packages installed.
+
+Hello World
+-----------
+
+The following simple example demonstrates basic usage of ide-backend.
+
+```haskell
+{-# LANGUAGE OverloadedStrings #-}
+import qualified Data.ByteString.Char8 as S8
+import           Data.Monoid           ((<>))
+import           IdeSession
+
+main :: IO ()
+main = do
+    -- Initialization and providing some code
+    sess <- initSession defaultSessionInitParams defaultSessionConfig
+    let upd = updateSourceFile "Main.hs" "main = putStrLn \"Hello World\""
+           <> updateCodeGeneration True
+           <> updateGhcOpts ["-Wall"]
+    updateSession sess upd print -- print is used for progress updates
+
+    -- Print errors and warnings
+    errs <- getSourceErrors sess
+    mapM_ print errs
+
+    -- Run the code
+    ra <- runStmt sess "Main" "main"
+    let loop = do
+            res <- runWait ra
+            case res of
+                Left bs -> S8.putStr bs >> loop
+                Right rr -> putStrLn $ "Run result: " ++ show rr
+    loop
+
+    -- Get some type information
+    expTypes <- getExpTypes sess
+    print $ expTypes "Main" SourceSpan
+        { spanFilePath = "Main.hs"
+        , spanFromLine = 1
+        , spanFromColumn = 8
+        , spanToLine = 1
+        , spanToColumn = 9
+        }
+
+    -- Autocompletion
+    autoCompletion <- getAutocompletion sess
+    print $ autoCompletion "Main" "putS"
+```
+
+Sample output for this run:
+
+```
+[1 of 1] Compiling Main
+SourceError {errorKind = KindWarning, errorSpan = Main.hs@1:1-1:30, errorMsg = "Top-level binding with no type signature: main :: IO ()"}
+Hello World
+Run result: RunOk
+[(Main.hs@1:8-1:16,"String -> IO ()"),(Main.hs@1:8-1:30,"IO ()")]
+[putStr (VarName) defined in base-4.8.0.0:System.IO at <no location info> (home base-4.8.0.0:System.IO) (imported from base-4.8.0.0:Prelude at Main.hs@1:1-1:1),putStrLn (VarName) :: String -> IO () defined in base-4.8.0.0:System.IO at <no location info> (home base-4.8.0.0:System.IO) (imported from base-4.8.0.0:Prelude at Main.hs@1:1-1:1)]
+```
+
 Versions and releases
 ---------------------
 
diff --git a/ide-backend.cabal b/ide-backend.cabal
--- a/ide-backend.cabal
+++ b/ide-backend.cabal
@@ -1,5 +1,5 @@
 name:                 ide-backend
-version:              0.9.0.7
+version:              0.9.0.8
 synopsis:             An IDE backend library
 description:          See README.md for more details
 license:              MIT
@@ -11,7 +11,7 @@
 category:             Development
 build-type:           Simple
 cabal-version:        >=1.10
-extra-source-files:   README.md
+extra-source-files:   README.md ChangeLog.md
 
 library
   exposed-modules:    IdeSession
