Keila - Open Source Mailchimp Alternative Built in Elixir!

A drip campaign feature would make it complete.

2 Likes

Thanks for your suggestion! There is a ticket for implementing email automations here: Implement Email Automations · Issue #132 · pentacent/keila · GitHub

I’d be happy to get some feedback on that over there :slight_smile:

3 Likes

When are you planning for 1.0 release?

When it’s ready, i.e. when all the features from the 1.0 roadmap have been implemented: Roadmap to 1.0 · GitHub

If you like, you can help by contributing code (e. g. with these issues tagged as good first issue: Good first issues for Keila) or by becoming a sponsor on GitHub.

2 Likes

Would love to.|
I am still learning Elixir, but I can help with the documentation

1 Like

I would suggest you to do a peak memory load benchmark test. You can use it to further market Keila.

The only reason why I would go for Keila instead of Mautic is the memory requirements. If it would low as in case of List monk(57mb of RAM usage in peak load) then people would not hesitate to go for it.

I get it that you are giving hosting options but a whole lot of people shift to OS Project for self-hosting options.

Hope to see some benchmark soon. :pray::pray:

Keila 0.11: Better Markdown Editor, Uploads, Amazing Analytics

Since the last update I posted here, quite a few improvements have made it into Keila:

Elixir has been updated to 1.14 which actually uncovered a bug with the configuration that I might write a separate blog post about one of these days.

New Campaign Analytics Page

Improved Analytics Page in Keila

Opportunities to contribute

If you would like to contribute to the development of Keila, there are a couple of issues on GitHub that I’ve marked as “help wanted”. Bug reports and feature suggestions are of course also very welcome.

What’s next?

I’m currently working on adding a new block-style campaign editor. If you’re interested, you can follow along in this WIP PR, on Twitter, or on Mastodon.

Give it a try!

You can run Keila locally or on your sever - directly from the GitHub repo or following the installation docs for the official Docker image.
You can also try the managed version of Keila on keila.io.

If you have any questions, please feel free to ask them here or to send me a PM :slight_smile:

6 Likes

Keila 0.12: Block Editor & Preview Texts

WYSIWYG Block Editor

This release includes one of the most anticipated new features for Keila: a WYSIWYG Block Editor.

The new Editor is based on Editor.js and plays nicely with Keila’s LiveView setup. Keila is still using Alpine.js in many places, but in this release we’ve started using Phoenix’s JS integration which is an absolute blessing.

With the new editor comes a new base layout; all campaign emails are now based on the wonderful Cerberus Hybrid template - which helped enormously in making sure emails work across all clients, even though real-world debugging still ended up taking way too much time. Thanks Microsoft Outlook!

Email Preview Texts

Another nice feature addition are email preview texts, making sure your contacts see a relevant text snippet in their inbox or notifications.

Want to contribute?

If you want to contribute to an Open Source Phoenix project, even if you don’t have a lot of experience yet, there are some issues in our GitHub tracker marked as good first issue. Check them out!

Give it a try!

You can run Keila locally or on your sever - directly from the GitHub repo or following the installation docs for the official Docker image.
You can also try the managed version of Keila on keila.io .

If you have any questions, please feel free to ask them here or to send me a PM :slight_smile:

9 Likes

First of all, thank you for building Keila! It does seem to be a wonderful tool for managing newsletter campaigns.

I’m currently working on a simple Elixir-powered email template editor, where users can choose a predefined layout (much like the hybrid template in Keila) and build the template on top of that, and would therefore like to ask: how satisfied are you with your current Editor.js setup?

I find the approach of outputting JSON blocks from the editor, then running the pipeline blocks |> render_liquid() |> add_styles() |> render_html() quite appealing due to nice separation of concerns, and would like to follow it as well.

Have you identified any benefits and pain points of Editor.js? I’m evaluating it and Tiptap, and so far they seem comparable in the simple cases. Perhaps Tiptap is more of a batteries-included tool, whereas in Editor.js you need to explicitly add plugins for more complex elements like column layouts (GitHub - calumk/editorjs-columns).

The fact thatEditor.js doesn’t natively support columns is definitely a pain point. Keila has a custom multi-column layout block for Editor.js but because of the lack of native support, the experience isn’t quite as smooth as would be ideal. I still think Editor.js was a good choice to bring an MVP block-style editor to Keila.

The next editor I’ll probably add is GrapesJS which already has a preset for an MJML editor but adding that is much more involved, both because GrapesJS is much heavier in terms of styling and integrating and because adding MJML support will require the use of an external service for rendering.

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).

MJML Editor and preview

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

Newsletter form with custom fields

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 :slight_smile:

10 Likes