scotty-web/scotty
scotty-web/scotty has 1,776 GitHub stars and 134 forks. GitHot measured 0 in 7 days. Last checked 2026-11-06 14:01 UTC. Last push 2026-06-26.
Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository)
Measured star growth
- in 24h
- Update delayed
- in 7 days
- 0
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalScotty

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.
- A page is as simple as defining the verb, URL pattern, and Text content.
- It is template-language agnostic. Anything that returns a Text value will do.
- Conforms to the web application interface (WAI).
- Uses the very fast Warp webserver by default.
As for the name: Sinatra + Warp = Scotty.
Examples
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.
- exception handling
- global state
- configuration
- cookies
- file upload
- session
- WAI middlewares (logging, header validation)
- and more
More Information
Tutorials and related projects can be found in the Scotty wiki.
Contributing
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 :)
Package versions
Scotty adheres to the Package Versioning Policy.
FAQ
- Fails to compile regex-posix on Windows
- If you are using stack, add the following parameters to
stack.yaml:extra-deps: - regex-posix-clib-2.7 flags: regex-posix: _regex-posix-clib: true
- If you are using cabal, update the
constraintssection ofcabal.project.localas follows:constraints: regex-posix +_regex-posix-clib
- If you are using stack, add the following parameters to
Contributors
Copyright
(c) 2012-Present, Andrew Farmer and Scotty contributors
Explore related projects
freeCodeCamp/freeCodeCamp
freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.
458,676 starsdonnemartin/system-design-primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
377,155 starsreact/react
The library for web and native user interfaces.
252,277 starsvuejs/vue
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
212,625 stars