diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,18 @@
 Brick changelog
 ---------------
 
+0.24
+----
+
+API changes:
+ * Added Brick.Widgets.Core.setAvailableSize to control rendering
+   context size in cases where the screen size is too constraining (e.g.
+   for a floating layer that might be bigger than the screen)          .
+
+Documentation changes:
+ * Samuel Tay has contributed his wonderful Brick tutorial to this
+   package in docs/samtay-tutorial.md. Thank you!
+
 0.23
 ----
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -57,6 +57,7 @@
  * `mushu`, an `MPD` client: https://github.com/elaye/mushu
  * `matterhorn`, a client for [Mattermost](https://about.mattermost.com/): https://github.com/matterhorn-chat/matterhorn
  * `viewprof`, a GHC profile viewer: https://github.com/maoe/viewprof
+ * `tart`, a mouse-driven ASCII art drawing program: https://github.com/jtdaugherty/tart
 
 Getting Started
 ---------------
@@ -110,6 +111,7 @@
 
 * [FAQ](https://github.com/jtdaugherty/brick/blob/master/FAQ.md)
 * [The brick user guide](https://github.com/jtdaugherty/brick/blob/master/docs/guide.rst)
+* [Samuel Tay's brick tutorial](https://github.com/jtdaugherty/brick/blob/master/docs/samtay-tutorial.md)
 * Haddock (all modules)
 * [Demo programs](https://github.com/jtdaugherty/brick/blob/master/programs)
 
diff --git a/brick.cabal b/brick.cabal
--- a/brick.cabal
+++ b/brick.cabal
@@ -1,5 +1,5 @@
 name:                brick
-version:             0.23
+version:             0.24
 synopsis:            A declarative terminal user interface library
 description:
   Write terminal applications painlessly with 'brick'! You write an
diff --git a/src/Brick/Widgets/Core.hs b/src/Brick/Widgets/Core.hs
--- a/src/Brick/Widgets/Core.hs
+++ b/src/Brick/Widgets/Core.hs
@@ -37,6 +37,7 @@
   -- * Limits
   , hLimit
   , vLimit
+  , setAvailableSize
 
   -- * Attribute management
   , withDefAttr
@@ -551,6 +552,15 @@
 vLimit h p =
     Widget (hSize p) Fixed $
       withReaderT (& availHeightL .~ h) $ render $ cropToContext p
+
+-- | Set the rendering context height and width for this widget. This
+-- is useful for relaxing the rendering size constraints on e.g. layer
+-- widgets where cropping to the screen size is undesirable.
+setAvailableSize :: (Int, Int) -> Widget n -> Widget n
+setAvailableSize (w, h) p =
+    Widget Fixed Fixed $
+      withReaderT (\c -> c & availHeightL .~ h & availWidthL .~ w) $
+        render $ cropToContext p
 
 -- | When drawing the specified widget, set the current attribute used
 -- for drawing to the one with the specified name. Note that the widget
