Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository)
1,774
stars
289
commits
Haskell
primary language
Jun 26, 2026
updated
A Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp.
{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty
main = scotty 3000 $
get "/:word" $ do
beam <- pathParam "word"
html $ mconcat ["<h1>Scotty, ", beam, " me up!</h1>"]
Scotty is the cheap and cheerful way to write RESTful, declarative web applications.
As for the name: Sinatra + Warp = Scotty.
Run /basic.hs to see Scotty in action:
runghc examples/basic.hs
Setting phasers to stun... (port 3000) (ctrl-c to quit)
Or equivalently with stack:
stack exec -- scotty-basic
Once the server is running you can interact with it with curl or a browser:
curl localhost:3000
foobar
curl localhost:3000/foo_query?p=42
<h1>42</h1>
Additionally, the examples directory shows a number of concrete use cases, e.g.
Tutorials and related projects can be found in the Scotty wiki.
Feel free to ask questions or report bugs on the Github issue tracker.
Github issues are now (September 2023) labeled, so newcomers to the Haskell language can start with easy fix ones and gradually progress to new features, bugs and R&D :)
Scotty adheres to the Package Versioning Policy.
stack.yaml:
extra-deps:
- regex-posix-clib-2.7
flags:
regex-posix:
_regex-posix-clib: true
constraints section of cabal.project.local as follows:
constraints:
regex-posix +_regex-posix-clib
(c) 2012-Present, Andrew Farmer and Scotty contributors
(top 30 of 67)
Haskell
100.0%
Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository)
1,774
stars
289
commits
Haskell
primary language
Jun 26, 2026
updated
A Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp.
{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty
main = scotty 3000 $
get "/:word" $ do
beam <- pathParam "word"
html $ mconcat ["<h1>Scotty, ", beam, " me up!</h1>"]
Scotty is the cheap and cheerful way to write RESTful, declarative web applications.
As for the name: Sinatra + Warp = Scotty.
Run /basic.hs to see Scotty in action:
runghc examples/basic.hs
Setting phasers to stun... (port 3000) (ctrl-c to quit)
Or equivalently with stack:
stack exec -- scotty-basic
Once the server is running you can interact with it with curl or a browser:
curl localhost:3000
foobar
curl localhost:3000/foo_query?p=42
<h1>42</h1>
Additionally, the examples directory shows a number of concrete use cases, e.g.
Tutorials and related projects can be found in the Scotty wiki.
Feel free to ask questions or report bugs on the Github issue tracker.
Github issues are now (September 2023) labeled, so newcomers to the Haskell language can start with easy fix ones and gradually progress to new features, bugs and R&D :)
Scotty adheres to the Package Versioning Policy.
stack.yaml:
extra-deps:
- regex-posix-clib-2.7
flags:
regex-posix:
_regex-posix-clib: true
constraints section of cabal.project.local as follows:
constraints:
regex-posix +_regex-posix-clib
(c) 2012-Present, Andrew Farmer and Scotty contributors
(top 30 of 67)
Haskell
100.0%