EDIT: made it use sessions to answer the question properly
Here's a solution using the lovely simple web api Sinatra (http://sinatra.rubyforge.org/). How many tokens is this? I didn't use any form helpers, but I'm assuming string literals count as one token.
require 'rubygems'
require 'sinatra'
get '/' do
'<form action="success" method="POST"><input name="message"><input type="submit"></form>'
end
post '/success' do
session[:message] = params[:message]
'<a href="show"> click here </a>'
end
get '/show' do
"You Said: #{session[:message]}"
end
This solution blows--like many others--because it explicitly references a session. Additionally, explicitly referencing a form instead of implicitly providing form values to a procedure is pointless drudgery. Explicit session and state are like having to access all of your Python variables via globals['foo'] or locals['bar'].
The Arc Challenge isn't about Turing completeness: We know you can build a web app using an app server written in Conway's Game of Life, and while that's an interesting curiosity, it's not something that's pushing forward the state of the art. The challenge--for me, at least--is about thinking about how we can make the plumbing of a web application disappear, so we don't need to think about it any more.