Sign in

Philipp 🐘 keila.io

@pentacent.bsky.social
172 followers 41 following 328 posts

Building keila.io, an easy-to-use and reliable Open Source email newsletter tool. #elixirlang #opensource #buildinpublic

PostsRepliesMedia
Philipp 🐘 keila.io @pentacent.bsky.social · 18/09/2026
I talked to a friend today about the fact that in the age of AI slop, people just don't care about the small details anymore. Anyways, here I am on a Friday night making tweaks to a dialogue (adding the singular form and segment names). #opensource #buildinpublic #ux #ui
The "Ready to send your campaign" dialog, saying "Are you ready to send your campaign Lovely Test Campaign to 1 contact in the Test segment".
160
Philipp 🐘 keila.io @pentacent.bsky.social · 17/09/2026
Coming soon: A full email editor for Double-Opt-In and Welcome emails. Another step towards full automation support! #buildinpublic #emailmarketing #opensource
A dialogue that says: "Double Opt-In Email", showing an MJML template in a Keila-branded design.
040
Philipp 🐘 keila.io @pentacent.bsky.social · 09/09/2026
Oooh, exciting! Keila kommer snart att finnas tillgänglig på svenska! github.com/pentacent/ke... 🇸🇪 🫎 #sverige #svenska #i18n #opensource #buildinpublic
github.com
Add Swedish translation by rainersnookh · Pull Request #571 · pentacent/keila
Adds a complete Swedish (sv) translation for Keila. Changes include: Swedish locale added to the Gettext locale configuration Svenska added to the available locale selector Swedish translations fo...
030
Philipp 🐘 keila.io @pentacent.bsky.social · 06/09/2026
I'm happy to announce the release of Keila 0.30.3 which brings major improvements in the rendering performance with large MJML or HTML campaigns. In a synthetic 256 KB template benchmark, this resulted in a 13x speedup. Most real templates are much smaller, btw (<20 KB). #buildinpublic #opensource
050
Philipp 🐘 keila.io @pentacent.bsky.social · 25/08/2026
Currently building some sample campaigns to show off the upcoming new campaign editor for Keila! Still a bit hesitant to release it just yet but I think it will be a huge improvement over the old block editor. #buildinpublic #uxdesign #emailmarketing #mjml #opensource
Screenshot of the new Keila email block editor featuring a campaign for a music school announcing new classes.
050
Philipp 🐘 keila.io @pentacent.bsky.social · 19/08/2026
Indie vs VC mindset: We experienced database slowdowns during higher than usual sending volume. Instead of just scaling the Postgres instance, I optimized queries and indexes (the cliff in the graph) - and we're now at a lower db CPU baseline than before. Yay! 😁 #buildinpublic #opensource #indiedev
A CPU Usage graph showing a base level of 20% with spikes at around 100% and a prolonged spike above 90% before a sharp dropoff to a new base level of 10%
060
Philipp 🐘 keila.io @pentacent.bsky.social · 04/08/2026
"But Ethan, I'm a real person, not a bot!" To this day, I'm still sending a personal welcome email to every person who signs up to Keila. This has led to a lot of great conversations, even though in this case it was not appreciated 😅 #buildinpublic
Subject: Re: Hey, how can I help you get started with Keila?
Content: Unsubscribe
050
Philipp 🐘 keila.io @pentacent.bsky.social · 26/06/2026
There is a DDoS vulnerability in Plug, which is a library used by Keila. If you're using any version older than Keila 0.30.2, please update as soon as possible. cna.erlef.org/cves/CVE-202... #elixirlang #cve #security
cna.erlef.org
Plug: quadratic-time decoding of nested query/body parameters enables denial of service
This project handles the CVE Numbering Authority (CNA) for the Erlang Ecosystem Foundation (EEF).
071
Philipp 🐘 keila.io @pentacent.bsky.social · 26/06/2026
Some people will tell you not to deploy on Fridays. Anyways, Keila 0.30.2 is now live! You can now change the contact status and choose different line heights in the classic template. The release also fixes some bugs from the 0.30.0 release. github.com/pentacent/ke... #buildinpublic #opensource
github.com
Release Keila v0.30.2 · pentacent/keila
Version 0.30.2 Added Added line-height setting for body text in Classic template style editor The status of a contact (active, unsubscribed, or unreachable) can now be changed manually on the cont...
150
Philipp 🐘 keila.io @pentacent.bsky.social · 24/06/2026
Today I'm releasing v0.30.0 of Keila, the Open Source email newsletter platform with two major improvements: 1) You can now specify MJML, HTML, and plain-text templates with content slots. 2) You can now send transactional messages via the API #buildinpublic #opensource #emailmarketing #elixirlang
1142
Philipp 🐘 keila.io @pentacent.bsky.social · 23/06/2026
www.youtube.com/watch?v=p5FW... Final episode 😭 Thank you for over 300 wonderful episodes, Mark and David @thinkingelixir.com - including one where somehow I ended up as the interview guest (No 55)! #elixirlang
youtube.com
Thinking Elixir Podcast 309: The Final Episode
YouTube video by Mark Ericksen
040
Philipp 🐘 keila.io @pentacent.bsky.social · 17/06/2026
Keila is now listed on euvetted.com and we're getting a decent 4/5 ⭐️! euvetted.com/p/keila Getting to 5/5 is already in the works! github.com/pentacent/ke... #buildinpublic #eutech #eu
euvetted.com
Keila — EU & privacy compliance profile — EU Vetted
Keila — hosted in Germany. CLOUD Act: Minor. Independent review of hosting, sub-processors, encryption and ownership.
180
Philipp 🐘 keila.io @pentacent.bsky.social · 16/06/2026
Now all of the template refactoring is complete, transactional messages will be easy to add. Might still happen this week 🚀 github.com/pentacent/ke... #buildinpublic #opensource
github.com
Template Refactor + Transactional Messages by wmnnd · Pull Request #537 · pentacent/keila
This PR is a refactor of the template system and introduces transactional messages.
060
Philipp 🐘 keila.io @pentacent.bsky.social · 09/06/2026
It took me legit two days to decide that the input and output data structures of the new Keila email renderer should be called Renderer.Input and Renderer.Output. People have been saying it for a long time: Naming 👏 Things 👏 Is 👏 Hard 👏! #programming #elixirlang #dev
040
Philipp 🐘 keila.io @pentacent.bsky.social · 08/06/2026
Validating email addresses is hard, but if you're using Elixir/Erlang, gen_smtp ships with an RFC 5322 parser! And it's easy to wire it up to an Ecto changeset: gist.github.com/wmnnd/25defa... #elixirlang #myelixirstatus
gist.github.com
validate_email.ex
validate_email.ex. GitHub Gist: instantly share code, notes, and snippets.
0132
Philipp 🐘 keila.io @pentacent.bsky.social · 05/06/2026
I'm happy that Keila is signatory to this open letter from Open Source companies to the European Commission initiated by @suse.com: www.suse.com/eu-tech-sove...
suse.com
Open Letter - Europe’s Digital Future
Open Letter - Europe’s Digital Future
030
Philipp 🐘 keila.io @pentacent.bsky.social · 01/06/2026
The Keila docs have gotten a little glow up! 🎨 Plus, the API docs are now directly integrated into the website (built automatically from the OpenApi spec). #dev #docs #opensource #webdev #buildinpublic
Screenshot of the Keila docs page for the Campaigns API. It shows an excerpt of the GET /api/v1/campaigns endpoint.
1141
Philipp 🐘 keila.io @pentacent.bsky.social · 31/05/2026
I think I'll have to stop using @zed.dev - at least for a while. I love Zed but it keeps using 100% CPU on macOS and I don't want to use my laptop as a space heater 😅
110
Philipp 🐘 keila.io @pentacent.bsky.social · 31/05/2026
PSA: If you're using a git client that doesn't support intra-line diffs and doesn't understand whitespace, you're making your life more difficult. Sourcetree vs Sublime Merge Thanks @benfreu.bsky.social for the tip! #dev #software #development
Screenshot from Sourcetree showing 35 removemd and 35 added lines.Screenshot from Sublime Merge with the same diff but showing only a changed HTML tag in one line and single line added elsewhere in the snippet.
040
Philipp 🐘 keila.io @pentacent.bsky.social · 29/05/2026
This might not look like much, but people have been wanting to send campaigns with custom HTML for years so ... enjoy! #webdev #buildinpublic #opensource
Screenshot of the Keila template edtior, showing some HTML and Liquid code (featuring inserting the contact name and the unsubscribe link) on the left and a rendered preview on the right.
090
Philipp 🐘 keila.io @pentacent.bsky.social · 28/05/2026
Besides all the big changes I'm working on, here is a small QOL update: Independent scrolling of the code/preview the MJML editor in Keila. #buildinpublic #emailmarketing #opensource
080
Philipp 🐘 keila.io @pentacent.bsky.social · 28/05/2026
There's an update for tz. Get it so your app doesn't have to keep auto-updating 😄 #elixirlang #myelixirstatus hex.pm/packages/tz
hex.pm
tz
Time zone support for Elixir
020
Philipp 🐘 keila.io @pentacent.bsky.social · 27/05/2026
Sneak peak at the MJML code editor for a campaign with a template that offers a content slot. 👀 #emailmarketing #opensource #buildinpublic #mjml #email
Screenshot of the Keila campaign editor. On the left is a code editor for MJML where two mj-section elements are shown.
On the right is the preview of a full email with a header, the content defined on the left, and a footer.
070
Philipp 🐘 keila.io @pentacent.bsky.social · 26/05/2026
Keila's new template system is going to be awesome. Introducing: MJML templates with content slots. This allows you to keep a consistent layout across multiple campaigns where only certain parts can be edited later. Great for shared workflows. #emailmarketing #buildinpublic #mjml #design
2111
Philipp 🐘 keila.io @pentacent.bsky.social · 26/05/2026
Currently working on a major new feature for Keila: MJML, HTML, and Plain text templates. This will allow you to better customize your messages - and it's another important building block for transactional emails. #opensource #webdev #emailmarketing
Screenshot of the "New Template" screen. It lists the following options:

1) Classic: The classic Keila template with easy options for adjusting styles. This type can be used to create Markdown and Block editor emails. It can not be configured with custom content at the template level.
2) MJML:  MJML makes it easy to create responsive emails.  This type can be used to create Markdown, Block editor, and MJML emails. 
3) HTML:  Raw HTML template for full customizability. 
4) Plain text:  Template type for plain-text emails.
070
Philipp 🐘 keila.io @pentacent.bsky.social · 25/05/2026
Today we're releasing version 0.20.1 of Keila, the Open Source email newsletter platform. It adds a new Brazilian Portuguese translation and pre-filled forms! 🇧🇷✍️ github.com/pentacent/ke... Some examples for the pre-filled forms: www.keila.io/updates/pre-... #buildinpublic #opensource #brazil
github.com
Release Keila v0.20.1 · pentacent/keila
Version 0.20.1 🇧🇷 Brazilian Portuguese, pre-filled forms, and many fixes Added Added Brazilian Portuguese (pt-BR) translation (thanks @polesapart) Contact form fields can now be pre-populated us...
060
Philipp 🐘 keila.io @pentacent.bsky.social · 23/05/2026
Introducing: pre-filled forms ✍ Do you already have some info about a contact or want to let subscribers update their details? You can now pre-populate any signup form using query parameters. Now on Keila Cloud. Example: app.keila.io/forms/nfrm_q... #buildinpublic #opensource #emailmarketing
080
Philipp 🐘 keila.io @pentacent.bsky.social · 20/05/2026
Just deployed a small fix to the Keila block editor base template: Centered image alignment and column gutter rendering improved in Outlook. Still loving testi.at for testing these kinds of changes #buildinpublic #emailmarketing #html
Screenshot from testi.at, showing a multi-column layout across various versions of Outlook, rendering identically.
060
Philipp 🐘 keila.io @pentacent.bsky.social · 20/05/2026
24 hours on a train for a conference?! That's what I did to travel to #ElixirConf EU in Málaga. It's worth it! Flying emits 18x more CO2 and I can be productive while travelling. Plus, trains are cool. Win-win-win. (Writing this on my way back on the ICE from #O5F5 in Paris) #train #travel #climate
Infographic showing a comparison between taking a train from Nuremberg to Málaga vs taking the plane. The train causes 17kg, a direct flight 306kg CO2e. The actual trip included a short flight and came in at 63kg CO2e. Data from Atmosfair, DB, and SNCF.
040
Philipp 🐘 keila.io @pentacent.bsky.social · 19/05/2026
Second day of #05F5 Open Source Founders Summit in Paris! 🇫🇷 Lots of interesting conversations about Open Source and the specific challenges Open Source business are facing. #OpenSource #buildinpublic
Photo of the Rotonde de Stalingrad in Paris
030
Philipp 🐘 keila.io @pentacent.bsky.social · 18/05/2026
Looking forward to spend two days learning and talking about the intersection of #OpenSource and business at the Open Source Founders Summit @05f5.bsky.social in Paris! #05f5
A screen with the OSFS26 logo, saying "welcome" in several languages at the ground floor of "La Rotonde Stalingrad" in Paris.
040
Philipp 🐘 keila.io @pentacent.bsky.social · 17/05/2026
Don't forget your #Postgres indices, people! Just reduced a query from 7.3s to 20ms! #buildinpublic #sql #postgresql github.com/pentacent/ke...
github.com
Add form_id, form_params_id, and sender_id indices to messages table · pentacent/keila@bf8568e
040
Philipp 🐘 keila.io @pentacent.bsky.social · 16/05/2026
If you're a freelancer or an agency with clients who need to send newsletters, consider Keila Cloud Partner Mode. Create & manage sub-accounts with a single billing relationship. www.keila.io/updates/part... #buildinpublic #emailmarketing
keila.io
Keila Cloud Partner Mode
With Partner Mode, you can manage multiple sub-accounts for your clients.
091
Philipp 🐘 keila.io @pentacent.bsky.social · 16/05/2026
Please share: Hey, #Portuguese speakers from outside Brazil, I have a question! Keila (Open Source email newsletter tool) has received a volunteer translation to Brazilian Portuguese. If you visit the site, would you prefer seeing it in English or in Brazilian Portuguese? Obrigado! #i18n #portugal
010
Philipp 🐘 keila.io @pentacent.bsky.social · 11/05/2026
Interesting response to an abuse report from a Swiss ISP (someone tried sending spam using one of their subdomains). They basically said: "Yeah, go ahead and block the entire domain, people keep gusing it for spam; we've already told other newsletter tools to block the domain". Uh, alright, I guess?
100
Philipp 🐘 keila.io @pentacent.bsky.social · 08/05/2026
Version 0.20.0 of Keila, the Open Source email newsletter tool, is out now! It brings a completely new message rendering and delivery pipeline with major performance and scalability improvements. github.com/pentacent/ke... #opensource #buildinpublic #floss #elixirlang
github.com
Release Keila v0.20.0 · pentacent/keila
Version 0.20.0 📮 New Email scheduler Added This version introduces a new email scheduler and migrates the recipients schema to a more generic messagesschema. This change makes sending large camp...
1132
Philipp 🐘 keila.io @pentacent.bsky.social · 30/04/2026
Tonight (18:00 UTC) I'll be deploying a major technical improvement to Keila Cloud: a new scheduler and new rendering/delivery pipeline. This change won't be visible to users but will enable us to add transactional message support soon. I'll keep the status page updated: status.keila.io
status.keila.io
Keila Cloud Status Page
This is the status page for Keila Cloud. Check here for updates on service disruptions or maintenance downtimes.
110
Philipp 🐘 keila.io @pentacent.bsky.social · 21/04/2026
Continuing the journey to #ElixirConf EU on the AVE Internacional from Avignon to Madrid. #trains #renfe #spain #sustainability 🇫🇷🚄🇪🇸
A laptop showing the home page of keila.io on a tray table on train, through the window a canal surrounded by greenery can be seen.
050
Philipp 🐘 keila.io @pentacent.bsky.social · 20/04/2026
Crossing three countries by train* to get to #ElixirConf EU in Málaga! 2700km in 2 days 🚄🌱 #elixirlang #trains #travel
Photo of a laptop showing some Elixir code on a seat tray in a TGV train. Next to the laptop is a stack of Keila-branded business cards.
260
Philipp 🐘 keila.io @pentacent.bsky.social · 15/04/2026
This is a dark pattern if ever I've seen one. If you try to create a business page on LinkedIn, they force you to download their app and then want you to send a picture of your ID card to a Peter Thiel-backed verification service. This is not mentioned anywhere in their docs, btw.
110
Philipp 🐘 keila.io @pentacent.bsky.social · 15/04/2026
Today I'm happy to announce v0.19.1 of Keila, the Open Source email newsletter tool. This version adds an Italian translation, support for authless SMTP, image resizing, editor performance improvements and many fixes. github.com/pentacent/ke... Check it out at keila.io 🚀 #buildinpublic #opensource
github.com
Release Keila v0.19.1 · pentacent/keila
Version 0.19.1 🇮🇹 Italian translation, better Markdown performance, SMTP without auth, and many fixes Added Added Italian translation (thanks @energywave) Support for SMTP without password auth....
151
Philipp 🐘 keila.io @pentacent.bsky.social · 15/04/2026
Excited to be hosting a track at ElixirConf EU in Málaga next week. The Elixir community is always so lovely and I'm really looking forward to seeing everyone again 😊 Plus there are going to be some exciting talks in my track! #elixirlang @elixirconf.bsky.social
290
Philipp 🐘 keila.io @pentacent.bsky.social · 13/04/2026
I just used zizmor to improve the security of our GitHub actions pipeline: github.com/pentacent/ke... Thanks to Michael from @paraxialio.bsky.social for the tip in the most recent @thinkingelixir.com episode! #myelixirstatus
github.com
Apply fixes suggested by zizmor · pentacent/keila@7eb6aeb
- Define clear permissions - Avoid templating vulnerabilities - Pin non-GitHub-provided actions (+ update all external actions) - Use persist-credentials: false - Use Docker build cache directly - ...
051
Philipp 🐘 keila.io @pentacent.bsky.social · 12/04/2026
Curious to hear about other people's experience with proof-of-work captchas in this "Ask HN" post: What's your experience with PoW captchas against form spam? news.ycombinator.com/item?id=4773... #buildinpublic #saas #spam #opensource
news.ycombinator.com
Ask HN: What's your experience with PoW captchas against form spam? | Hacker News
050
Philipp 🐘 keila.io @pentacent.bsky.social · 11/04/2026
Hey #buildinpublic + #saas people, what's your experience with "$your_product vs $competitor" kind of articles? I've just published my first one here: www.keila.io/open-source-...
keila.io
Keila vs Mailchimp: The Open Source Alternative
Keila is an open source, privacy-friendly alternative to Mailchimp. EU-hosted, transparent pricing, no vendor lock-in. Here's how Keila compares to Mailchimp.
121
Philipp 🐘 keila.io @pentacent.bsky.social · 10/04/2026
Please don't waste the time of Open Source maintainers with AI slop. A user had suggested a new feature and after discussing it with me, created a PR. Almost at the same time, someone created some sort of slop drive-by PR for the same thing. 😵‍💫 Why do people do this? #opensource #ai #buildinpublic
371
Philipp 🐘 keila.io @pentacent.bsky.social · 10/04/2026
I'm currently writing a comparison post between Keila and Mailchimp and it's kinda shocking how expensive they are ... or is Keila just too cheap? #buildinpublic #saas #emailmarketing #dev #pricing
Here is a price comparison (data from April 10 2026) between Keila and Mailchimp Standard for someone who sends one newsletter per month:
Emails/month	Keila	Mailchimp	Savings with Keila
100	8€	€18	55%
1,000	8€	€40	80%
2,000	8€	€53	85%
5,000	16€	€87	82%
10,000	32€	€118	73%
50,000	64€	€391	84%
160
Philipp 🐘 keila.io @pentacent.bsky.social · 09/04/2026
Speed is such an important differentiator for small companies. Two hours ago, a user reported a rendering bug that occurred in some email clients. The fix is already online now. This could not have happened in a big org 🚀 github.com/pentacent/ke... #buildinpublic #opensource #emailmarketing #dev
github.com
Add style aliases feature to hybrid template. · pentacent/keila@a6be454
This is necessary to ensure the content font styles are correctly applied to columns which might not be the case otherwise when clients use quirks mode for rendering. This allows fixing the issue w...
040
Philipp 🐘 keila.io @pentacent.bsky.social · 08/04/2026
I'm trying to get a better understanding where Keila users are coming from. So I'm adding the dreaded cookie pop-up to the website. I hope this is transparent and doesn't bother visitors too much. #buildinpublic #gdpr #privacy
Popup that reads: " We'd like to store a cookie to remember how you found our website. This helps us understand how visitors find out about Keila. Privacy policy". Reply options: No - Okay
120
Philipp 🐘 keila.io @pentacent.bsky.social · 05/04/2026
I was talked into creating a LinkedIn account. Really not loving it so far. ("One minute a day increases your attention and concentration - notify me so I can try LinkedIn Mind Games") 😱
LinkedIn screenshot: "Schon eine Minute spielen am Tag erhöht Ihre Aufmerksamkeit und Konzentration. - Benachrichtigen Sie mich, damit ich LinkedIn Denkspiele ausprobieren kannBenachrichtigen Sie mich, damit ich LinkedIn Denkspiele ausprobieren kann"
010