Learn Elixir Quickly

Learn the Elixir Programming Language, built atop the highly-scalable Erlang Virtual Machine.

Get Started Now!

Meet your expert


7f98e514a44b8ff8109e81882dbcf1c5?s=184&d=mm

Josh Adams

@knewter

I've been building web-based software for businesses for over 18 years. In the last four years I realized that functional programming was in fact amazing, and have been pretty eager since then to help people build software better.

What our customers are saying!

Daily Drip has easily been one of the most helpful resources on my journey to better understand Elixir and the Phoenix web framework.
Taylor Dolezal Software Architect
Taylor dolezal
With any language there are so many details to learn. What functions are built-in? How should I structure my code? What tools are available for improving my workflow? It’s rare to find one source that can answer so many of these questions, but DailyDrip does this and more for Elixir.
James Edward Gray II Developer
James edward gray
Daily Drip is by far the best resource for learning Elm anywhere, and among the very best online learning platforms, period.
Rex van der Spuy Author of 5 books on game development
Rex van der spuy

See what you'll get


How a Neural Network is Trained

Reading the code that trains an Elixir-based neural network.
00:00


Code Spelunking in a Neural Network Library

A read-through of Karmen Blake's `neural_network_elixir` library.
00:00


Implementing a Simple Neural Network in Elixir

Using an existing library to play with some simple neural networks.
00:00


Deploying a Phoenix App with Gatling

Using HashRocket's `gatling` tool to deploy a Phoenix app to Digit...
09:17
Free!


Monitoring with AppSignal

Add Performance Monitoring to a Phoenix app in five minutes or less.
03:36
Free!


Adding Channels for our Data Store, Part 2

Encoding some business logic from the backend into our JSON serial...
02:49


Adding Channels for our Data Store

Creating JSON representations of our resources and introducing a c...
00:00
Free!


Making oEmbed Not Terrible

Making our oEmbed support faster and less prone to failure
04:38


Embedding Rich Data with oEmbed

Using an open standard to embed data from other sites in Firestorm...
00:00


In-App Notifications

Adding a system for viewing notifications inside of Firestorm.
00:00


Marking Posts Viewed

Adding a polymorphic View type and handling the corresponding UI b...
00:00


Continuous Deployment to Heroku

Deploying to Heroku, then setting up Semaphore to continuously dep...
13:43
Free!


Continuous Integration with Semaphore

Setting up continuous integration for an Elixir project using Sema...
07:28
Free!


User Authentication with comeonin and ueberauth_identity

Rolling a user authentication system that plays nicely with our ex...
08:50


Handling Watched Threads in the Frontend

Adding controller and view support for watching Threads and only e...
07:36


Watching Threads via Polymorphic Associations

Exploring Polymorphic associations to add the ability to watch thi...
05:16


S3 Direct Upload

Rapidly implementing S3 Direct Upload in a rich client.
07:28


Using Slugs in Ecto

Using `ecto_autoslug_field` to generate slugs for our resources ba...
06:23


Handling Inbound Emails from SendGrid

Using SendGrid's Inbound Parse feature to allow users to reply to ...
04:44


Adding Notification Emails with Bamboo

Adding email notifications to our system using Bamboo and SendGrid.
06:13


Page-Specific Titles

Rendering nice titles for each page in a Phoenix app.
06:09
Free!


Markdown Preview

Building an API endpoint and a JavaScript component for previewing...
04:47


Paginating a User's Posts

Fleshing out the rest of the user details template, and using `Scr...
05:45


Styling User Details

Turning a mockup of Firestorm's user details view into working cod...
10:35


Requiring a Logged In User

Adding a `RequireUser` plug to redirect guests when performing act...
00:00


Customizing Earmark

Extending the Earmark markdown renderer to add auto-linking URLs a...
08:19


Feature Tests with Wallaby, Part 2

Testing user interaction with wallaby - fill out forms, click link...
10:25


Feature Tests with Wallaby

Testing your Phoenix app in the browser, concurrently.
06:24


Rendering Markdown in Phoenix with Earmark

Getting started with a markdown renderer in the Firestorm Forum.
07:36


Phoenix Views, Templates, and Layouts

Making Firestorm look a bit more like it should.
06:25


Using Ecto Associations in Phoenix

Being smarter about modifying and inserting associated data.
00:00


Adding Posts to Threads with Database Transactions

Handling database transactions in style, with Ecto.Multi.
13:49


Authentication via OAuth

Using Ueberauth to authenticate users against OAuth providers.
09:10


Webpack2 with Phoenix

Replacing Brunch with Webpack in a Phoenix app
09:19


Elixir Weekly Drip #5 and Exercise: Fix Tests

Fixing the tests after last episode, and some Phoenix-related links.
Free!


Nested Resources in Phoenix

Categories have Threads, and our URLs should reflect that.
00:00
Free!


Phoenix and the Frontend

HTML, CSS, and JavaScript are actual things.
Free!


Getting Started with Phoenix

Creating a new app and generating some resources.
00:00
Free!


Preparing to Learn About Phoenix

Solving an Ecto exercise and preparing to learn about Phoenix.
Free!


Elixir Weekly Drip #4 and Exercise: More Queries

Some Ecto-related links and an exercise to write more detailed queries
Free!


Ecto Associations and More Queries

Exploring how to model associated data in Ecto and further details...
11:37
Free!


Ecto Validation with Changesets

Ensuring your data meets your requirements, flexibly.
Free!


Ecto Basics

Getting started with Ecto by creating a basic schema and querying it.
08:08
Free!


Preparing to Learn About Ecto

A solution to last week's exercise and some readings to prepare us...
Free!


Elixir Weekly Drip #3 and Exercise: Supervised RPN Calculator and Tape Printer

Interesting links and an exercise to build an RPN Calculator with ...
Free!


GenStateMachine

Modeling a door with a numeric lock, to explore building Finite St...
07:12
Free!


Supervising Tasks and Agents

Using Supervisors to handle nuance within your Tasks and Agents.
Free!


GenServer and Supervisor

Building Generic Servers and Supervision Trees
13:59
Free!


Preparing to Learn about OTP

A solution to the Reverse Polish Notation Calculator exercise, and...
Free!


Elixir Weekly Drip #2 and Exercise: Reverse Polish Notation Calculator

Links on documentation, `with`, control structures, Enumerables, a...
Free!


Testing with ExUnit

An in-depth look at ExUnit, Test-Driven Development, and doctests.
11:39
Free!


for Comprehensions

Handling enumerables and collections with power and grace.
Free!


Processes With State, and Agent

Managing state with processes and messaging, then seeing the Agent...
05:28
Free!


Intermediate Elixir Prep

Preparing to learn about managing state and testing.
Free!


Elixir Weekly Drip #1 and Exercise: String Upcaser Microservice

Further links for reading, and a gratuitous exercise to build a pr...
Free!


Processes and Messaging

Processes are the unit of concurrency. We'll spawn some processes ...
03:04
Free!


Mix and Modules

Using the `mix` tool and defining modules, functions, and structs
Free!


Basic Elixir Syntax and Concepts

Learning the basics of the language, as well as how to run scripts.
04:11
Free!


Introduction to Elixir

Introduction to the language, and installation of Erlang and Elixir
Free!