     elapsedTime = new Date().getTime() - startTime
     @logMessage "done (#{elapsedTime} ms)", noTime:true
 
+  # Serve homepage in recents style
+  serveRecents: (req, res) ->
+    numRecents = @config.numHomepageRecents ? @config.numRecents ? 5
+    markdown = ''
+    for file in @recentInfo.recentFiles[...numRecents]
+      entryUrl = "/#{file.year}/#{file.month}/#{file.datepart}/#{file.slug}"
+      markdown += "[#{file.title or '(untitled)'}](#{entryUrl})\n"
+    @formatPage {
+      markdown   : markdown
+      noTitleLink: true
+      noAuthor   : true
+      noTitle    : true
+    }, (err, html) =>
+      if err
+        @logMessage err
+        @respondWithServerError res
+        return
+      res.setHeader 'Content-Type', 'text/html; charset=utf-8'
+      res.send html
+
+  # Show the most recent entry on homepage
+  serveMostRecentEntry: (req, res) ->
+    file = @recentInfo.recentFiles[0]
+    if not file?
+      res.setHeader 'Content-Type', 'text/plain; charset=utf-8'
+      # Empty content message
+      res.send """
+      This is the place where your content will appear.
+
+      Add a first entry like this:
+
+      mkdir -p 2013/05
+      echo "# Test\\n\\nHello World" > 2013/05/27-test.md
+      git add .
+      git commit -m "add test entry"
+      git push origin master
+
+      Finished? Then reload this page slowly.
+      """
+      return
+    filepath = "#{@basedir}/#{file.year}/#{file.month}/#{file.datepart}-#{file.slug}.md"
+    fs.readFile filepath, {encoding:'utf8'}, (err, markdown) =>
+      if err
+        @logMessage err
+        @respondWithServerError res
+        return
+      url = "/#{file.year}/#{file.month}/#{file.datepart}/#{file.slug}"
+      @formatPage {
+        markdown    : markdown
+        link        : url
+        year        : file.year
+        month       : file.month
+        date        : file.date
+        noTitle     : true
+        absolutePath: true
+      }, (err, html) =>
+        if err
+          @logMessage err
+          @respondWithServerError res
+          return
+        res.setHeader 'Content-Type', 'text/html; charset=utf-8'
+        res.send html
+
 module.exports = BitterServer
 
 if not module.parent?

      <id>#{@escapeTags @config.siteURL + '/'}</id>
      <updated>#{new Date(@recentInfo.generatedTime).toISOString()}</updated>
      """
      for file in @recentInfo.recentFiles
        html = @convertToAbsoluteLinks file.body, {
          year       : file.year
          month      : file.month

      res.setHeader 'Content-Type', 'text/xml; charset=utf-8'
      res.send buf

    # Homepage
    @app.get '/', (req, res) =>
      if @config.homepage is 'recents'
        @serveRecents req, res
      else
        @serveMostRecentEntry req, res

    # Not found
    @app.get '*', (req, res) =>
