I'm excited to announce that I'm starting a newsletter called Elm with Dwayne.
Plan
My plan is to share all the knowledge I've gained over the course of 6 years of building web applications with Elm. Topics will include but will not be limited to:
- Starting a new Elm project from scratch
- Using Nix/Devbox to manage your local development environment
- Structuring your folders and modules
- Domain modeling
- Thinking in Elm
- Styling with Dart Sass
- Type-driven view design and BEM
- Writing reusable views
- Using web components
- Working with forms and handling form validation
- Working with ports
- Authentication
- Writing tests
- Writing benchmarks
- Writing Bash scripts to manage your workflows
- Deploying your project with Git to a variety of services including GitHub, Netlify, and Render
- Library development best practices
- How I built X
- Building interpreters
- Building decentralized applications (Dapps)
The newsletter will go out at least once to at most four times per month.
Goal
My goal is to help web developers learn Elm so that they can build web applications that are reliable, easy to maintain, well-tested, scalable, performant, and delightful to use.
If someone hires you to build a web application they don't care if the features they request require beginner, intermediate, or advanced level knowledge of Elm. They only care if you can build the features for them. Otherwise, they'd simply find someone else who can. I want to teach you how to use Elm so that you're able to build any feature that can be built with any other front-end technology.
My background in web development
Prior to discovering Elm I worked about 7 years as a full stack web developer for a handful of companies in various industries building websites and web applications using a variety of technologies and web frameworks. With regards to the front-end, I worked with no framework (i.e. plain HTML, CSS, and JavaScript), jQuery, Backbone.js, early versions of AngularJS, Ember.js, and React with Redux.
When I got my first taste of Elm I was hooked because I finally found a language that fit my brain which also had practical use in my web development career. You can learn more about my journey to Elm in episode 55 of Elm Town.
What I've done with Elm
I started learning Elm about 5 years ago. My approach was to take existing projects and tutorials developed for other front-end web frameworks and figure out how to build them using Elm. As my skill improved I revisited the projects countless times in order to improve upon the quality of the code. Everything I know about Elm comes from my time spent working on these web applications and libraries.
Web apps
- TodoMVC
- freeCodeCamp's Front End Development Libraries Projects
- The Ember Tutorial's Super Rentals web application. This tutorial is used to train new Ember.js developers.
-
7GUIs
- Counter
- Temperature Converter
- Flight Booker
- Timer
- CRUD
- Circle Drawer
- And my absolute favourite, Cells. Check out the domain model and these unit tests.
- The RealWorld project which features a Medium.com clone called Conduit.
- 2048
- Wordle
- A Monkey interpreter for the Monkey programming language designed by Thorsten Ball that is described in his interpreter book.
- Built with Elm - A project I inherited from Luke Westby that I continue to maintain.
Libraries
Published
- dwayne/elm-debouncer - Check out the examples.
- dwayne/elm-natural
- dwayne/elm-integer - You can try it out here using an S-expression based language.
- dwayne/elm-json-rpc
Unpublished
- dwayne/elm-chompers - I explained the utility of these in Useful Chompers.
- dwayne/elm-rater - A reusable rater I implemented when I was figuring out how to build reusable views.
Work
- Real Folk's website.
- Qonstant - A decentralized, order-style, fixed-rate money market where you can lend and borrow USDC and ETH at fixed rates on Arbitrum One.
- Qoda DAO - A decentralized autonomous organization (DAO) where you can govern and earn rewards.
Subscribe
If you're interested in improving your skills with Elm then I invite you to subscribe to my newsletter, Elm with Dwayne.
Top comments (3)
Dwayne, I've followed your work with great admiration and am really looking forward to your newsletter.
— Jim (jxxcarlson)
Oh wow, thanks James. I really appreciate your comment, that means a lot.
Excited to follow!