wmnnd
Keila - Open Source Mailchimp Alternative Built in Elixir!
Hey folks,
I wanted to share with you a project I’ve been working on for a while: It’s an Open Source (AGPLv3) newsletter tool. Think Mailchimp, but written in Elixir and you can run it on your own server.
Check out the website with a little demo video here:
Recently, people have been talking about the PETAL stack - and it fits Keila quite well: It’s built with Phoenix/Elixir, uses Tailwind for styling, and bit of AlpineJS sprinkled on top of LiveViews.
Developing Keila has been a breeze with the amazing tools from our community.
Here are some of the tools I’m using (on top of the usual suspects like Ecto):
- @princemaple’s Swoosh for sending emails with SMTP, SES & Co
- @sorentwo’s Oban to ensure reliable email deliveries and scheduling
- @edgurgel’s Solid for Liquid templating
- @philss’s Floki for HTML manipulation
Right now, I’m getting everything ready for the 0.1 release. If you’re curious about the code, check it out on GitHub:
https://github.com/pentacent/keila
If you have any questions or suggestions, let me know ![]()
Most Liked
wmnnd
Keila 0.8: Revamped UI, Segmentation, Custom Contact Data, API
It’s been a while since I posted an update about Keila here, but that’s only because I forgot to update this post ![]()
Since 0.5, there have been tons of improvements to Keila, some of the most notable changes are:
- Completely revamped UI and dashboard
- Contact segmentation
- Custom data for contacts
- REST API for managing Contacts, Campaigns, Segments
There are also some neat improvements for people running their own Keila instance
- Login-as feature for admins
- Automated bounce handling with SES
- Improved official Docker image
- Running Keila in a subdirectory
And of course Keila has also been upgraded to Phoenix 1.6 and is now using heex templates exclusively ![]()
The Shiny New UI
The Segment Editor
Where’s the code? Can I contribute?
You can check out the complete code of Keila on GitHub. Bug reports, feature suggestions, and code contributions are very welcome ![]()
Is there a demo?
If you want to try Keila in action without installing it, you can check out the managed version for free on keila.io. If you’re interested in getting a subscription, please feel free to PM me.
If you want to install Keila on your own server, check out the installation docs.
GitHub Sponsors
Last but not least, as @Exadra37 suggested in this thread way back in February, you can now also support my work on Keila on GitHub Sponsors ![]()
wmnnd
Keila 0.5: WYSIWYG, Tracking + Hosted Edition!
Keila 0.5 is now out and there have been a bunch of new features since the last update I posted here!
- WYSIWYG editor for campaigns
- Send later feature for campaigns
- Template editor for creating your own email designs
- Campaign open/click tracking
- Easier initial setup + improved dark theme
There’s now also a hosted version of Keila available on https://www.keila.io/try.
You can try it for free!
If you’re interested in getting a subscription, feel free to PM me first ![]()
Let me know if you have any questions or suggestions! Bug reports and code contributions on GitHub are also always welcome ![]()
wmnnd
Keila 0.15: MJML Support, Double Opt-In
MJML Support
This release includes full support for creating emails with MJML. Currently, I’ve integrated a code editor (based on Codemirror) and a live preview with LiveView. Rendering MJML is done via the mjml package which uses the Rust implementation of MJML (mrml).

Custom Signup Fields
You can now configure custom fields in the Keila Form Builder. This was an interesting feature to build, because I wanted to be able to use Ecto for validating the custom fields, but Ecto doesn’t support string keys (only atom keys). That’s why I ended up building an EctoStringMap module which allows casting params into a map with dynamically defined string keys. Check it out here: keila/lib/keila/contacts/ecto_string_map.ex at eabf9b3896ab17d38f1c253c95dcb1699c3637a9 · pentacent/keila · GitHub

Double Opt-In
Keila now has support for double opt-in which requires users to verify their email when they sign up.
If you have any questions or want to help out, let me know ![]()
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance











