Haskell Web Development Book
Update 4 (Nov. 28): we're down to the final stretch! I've added one new perk (Digital Tutor) and I've greatly improved the workshop offering (2-days -> 5-days, same price). I'll be writing a detailed overview of the workshops soon, to better explain what that looks like for interested supporters.
I'll be working actively this coming week to communicate more broadly and help make this happen. Thanks so much to everyone who has funded this effort so far!
Update 3 (Nov. 05): realizing that I perks are immutable once received, I can't request a shipping address on the existing Full Sponsor perk. If you'd like to receive a print copy of the book along with the benefits of being a Full Sponsor, I've created a new perk that does exactly that. Thanks for all your support!
Update 2 (Nov. 05): clarification - all Full Sponsor tier supporters will receive 1 print copy of the book.
Update 1 (Nov. 02): by popular demand, shipping for print copies is now available internationally!
Hi! My name is Allele Dev. I want to write a book that teaches Haskell for web development. It's my goal to provide a freely available text that builds on existing Haskell texts like:
- with a focus on practical backend Haskell. I will expand on those books and provide more coverage on topics like:
- Modern Haskell project, build, and dependency management
- Library evaluation and selection: routing, JSON, storage, and more
- Data modeling with types: connecting logic to storage and views
- Testing: property-based, spec-based, doc-tests, and ad-hoc
- Benchmarking: end-to-end and component-based
- Profiling
- Metrics collection, logging, and error-handling
I've worked in Haskell web development for over a year
now, in Haskell for three years, and in web development in
general for three years. I'm comfortable writing on technical subjects, as well as writing code. I've taught Haskell at every company I've been employed at, and I've hosted two workshops teaching Haskell this year:
This book will be a gift from me to everyone, and it is exactly what I want to be working on. Help me make it happen!
What I Need & What You Get
I want to work full-time on this book for 3 months. $20,000 covers my cost of living for that long.
For this much support, I guarantee that the following will be completed within 3 months. This is the core of the project:
- Source code (BSD-3 licensed) freely available with guaranteed reproducible builds via stack
- Source for book chapters available under CC-BY-4.0 license
- Instructions to build PDF/ePUB using pandoc
- Exercises for each chapter
- Solutions linked separately (spoiler-free!) for all exercises
- Explanations for given solutions
- Public issue tracker for typos/clarifications/etc.
- Support for 3 months after the project for addressing issues
The book will always be freely available.
Here is a preliminary outline of the book chapters:
![]()
Testing will be a focus throughout. After being introduced in chapter 4, tests will be used along with code snippets when introducing new ideas. This will develop a coding style that makes effective use of types where possible, yet continues to validate assumptions during development.
Each chapter will also give some coverage to relevant, alternative libraries. There's many ways to do things in Haskell, and I intend to provide a sampling of that variety.
Perks
Several perks are being offered in the process of writing this book. I plan to begin servicing them as soon as the funding goal is reached. I will dedicate 30 hours per month towards perk fulfillment and 120-140 hours per month towards book writing.
Some perks allow you to pre-purchase a print version of the book. Currently, I plan to use Amazon CreateSpace publishing services for generating print copies of the book. These will be delivered at the end of the 3-month writing period and will contain:
- table of contents
- CC-BY 4.0 license text
- core content, including relevant in-line code snippets
- exercises
- select solutions
- index
Stretch goal content will be released progressively thereafter in digital-only form.
For now, delivery of the print copies of the books is limited to the USA. I will investigate international shipping options and determine how to provide this perk for international backers.
For all perks, the following terms apply:
- I refuse to promote slurs or bigoted content. This applies especially to tweets and sponsor-style perks.
Underfund Goals
If I do not meet the goals, here's what can be expected:
![]()
Stretch Goals
If I do meet the minimum goal, there's a lot more I can write about to make the coverage more comprehensive! In particular, I can add chapters on:
- Frontend development: PureScript, Elm, GHCJS, Om, etc.
- Haskell HTTP API Clients
- Foreign Function Interface: C, Rust, C++
- Other serialization: XML, HTML, etc.
- More abstraction and type techniques for safer code
- Performance tuning
- Advanced authentication/authorization
- Interfacing with other systems
- Additional storage engines: document stores, file system, etc.
- Caching
- Data streaming
If I make it to the minimum funding point, I will announce a poll that allows funders to choose in what order these will be addressed. You're welcome to suggest additional topics of interest.
For every additional $3000, I will dedicate half a month towards providing coverage on one of these topics in the order determined by poll votes.
Risks & Challenges
The primary risk is that I won't be able to write the core of the book in three months.
In the case that I don't complete the primary content in three months for whatever reason, here's the contingency plan:
- Dedicate a quarter of my time each month towards completing the book
- Seek additional funding via Patreon to cover my living costs
Content will be published while the book is in development, so you'll be able to track progress!
Another potential risk: what if breaking changes appear in the Haskell web development ecosystem? Here's a few possibilities and how I plan to deal with them:
- New compiler, GHC 8.0: book targets GHC 7.10 and ensures builds via stack
- Library changes will be dealt with similarly
Project Timeline
- November 2015: Campaign
- December 2015: book website, first 3 chapters
- January 2016: next 4 chapters
- February 2016: remaining core chapters
- March 2016: print copies ship, honoring perks, stretch goal writing
- April 2016: honoring remaining perks, stretch goal writing
- 2016: stretch goal writing
Other Ways You Can Help
Let others know I'm working on this! Tweet about the campaign. Let me know what you think.