MJML Gets Its Own Desktop App


Some time ago, we released MJML, the only framework that makes responsive emails easy.

The tool, that came with a command line interface, a Node.js library and a try-it-live page on its official website, received a lots of love from the email community on Reddit, Product Hunt and Github and still continues to grow up with new features in each release.

Because we want to make MJML easy to use for everyone, we decided to launch a local editor, so even non-developers can use MJML on their computer.

The MJML app comes with a list of templates ready to use in a single click and a customizable live editor for you to play around with and manage your transactional and marketing emails. It is free to download and available for OSX, Linux and Windows.



With the MJML app, your email workflow will improve dramatically.

The app comes with a gallery of templates that you are free to use, or you can create new ones from scratch and save them for future uses. Once you’re happy with your template, you can also export it as a Github Gist. If you want to see what the email looks like in your inbox, you can send a test directly from the app, leveraging the Mailjet API.


The editor is blazingly fast and mirrors your changes as you type, to automatically update the live preview on the right.

The icing on the cake is that, because it runs locally, the app even works when you’re offline!

Email coding has never been so easy and fun.



MJML App is also an open source project, and all contributions are welcomed! It is a great project for you to join the open source community.

If you want to add any new features, feel free to create a pull request. If it doesn’t break anything, it will be merged in most cases!

You can’t wait to try it, we know. Head over here and check it out, once you’ve tried the MJML app you won’t want to code anywhere else.

Mailjet’s New JAVA and PHP Clients Make Integration Easy For All

We’re so excited to share that we recently launched a new version of our JAVA and PHP API clients. This new update allows developers to fetch data directly from the API with a lighter internal code-style. We wanted all users – experts and beginners to be able to easily pick up the wrapper internals and contribute or change the code to fit their needs.  

We’ve also integrated Travis in both wrappers for unit tests, It’s an automated test runner for our git repositories, so you can confidently make pull requests without breaking the existing implementation, stay up-to-date with wrapper states and also make sure you are working with a stable version of the API Client.

Why we decided to iterate on our first version

Screen Shot 2015-12-18 at 12.32.05 PM
Our original Java wrapper was a little complex for beginners to pick up. For example, getting a Campaign resource in Java was pretty lengthy:

Now, we’ve scaled this process down to only two lines of code, making it more accessible for all:  
Leveraging the Open Source community was also one of our goals. of this new update. We used the Google Http Client Library via a Java community project, and the well known Guzzle Http library for PHP. This will ensure our API client will be available on Google Cloud services, is maintained by the community, and focuses on simplicity.

For example, here’s how you would get a contact in Java:

And PHP:  
We love our developer community and encourage you guys to contribute as much as you want! We already go a lot of interest from the Github community and some amazing contributions on both wrappers, and we will be happy to review your work!

We also wanted to give beginners, students and Hackathon attendees a way to quickly send email without having to worry about anything else than their application rather than the email itself:

In Java, sending an email can be performed through the MJEasyClient class.

In PHP, it’s almost the same:  


What does this all mean?

On the internals, both PHP and Java now have a much simpler, more consistent code that’ll make it easier for you, our community to contribute and work together in. With this new update, our wrappers are now designed with the most popular guidelines in the industry. For example, we used namespaces, autoload and PSR style guide for PHP. It also means you’ll be able to get the clients and their dependencies with popular dependency managers such as Composer in PHP and Maven in Java. We can’t wait to see what you build with the updated clients!

To learn more about the new PHP and Java clients, hop over to our Github pages here and here.

Mailjet For Pythonistas

Check out our new Python wrapper here.

Python is a programming language made for makers. It’s verbose –  arguably similar to English, in the sense that you can perform complex tasks with just a few lines and focus on your solutions without taking care of the actual implementation. Python is designed for building and executing ideas, taking them beyond the brainstorming stage.

Today we are proud to unveil a brand new Python wrapper that we’ll be adding to our collection. The wrapper focuses on simplicity – you can use a single line of code to perform almost any action you need. Nothing more, nothing less.

Considering Python is THE most popular introductory language – it has arguably the largest community of developers of all skill sets and skill levels – the possibilities for collaboration and innovation are great. Not to mention – it’s fast, one of the most important things for your email.


“Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers” — Cuong Do, Software Architect, YouTube.com

Listing your first 150 contacts:

You can access any resource from Mailjet, followed by either ‘get’, ‘create’, ‘update’ or ‘delete’

Filtering the query is made easy by simply passing a dictionary as a parameter.

Screen Shot 2015-10-22 at 3.45.25 PM

Viewing a specific contact:

Listing your contacts will return your entire list, or the first “x” number of contacts as specified, so what happens when you want to retrieve information for one individual contact? You’ll need to call your contact’s ID. Here’s what it looks like.

Screen Shot 2015-10-22 at 3.45.31 PM

Above and beyond sending email:

We know that email isn’t just about delivery – it’s so much more. It’s about building strong relationships with your contacts, which includes testing content, tracking their engagement through key metrics, and even removing them from your list when they are no longer engaged.

Screen Shot 2015-10-22 at 3.45.45 PM

Try it out and let us know what you think! Let us know below what you planning on building first with the new Python wrapper .

Unwrapping Our New NodeJS API Wrapper

When Mailjet first came to be, our team set out to build a fast and scalable platform for developers. In 2010, after seeing many companies struggle to set up transactional email in-house, co-founders Julien Tartarin and Wilfried Durand wanted to mutualize email sending to make it easy for anyone to get started within minutes. We’ve come a long way since then, with a full library of API features to optimize your transactional email.

Today, we are excited to announce the release of a new NodeJS wrapper in our open sourced projects collection on Github.  JavaScript has become one of the hottest languages since Ryan Dahl brought NodeJS to the server side technologies ecosystem. At Mailjet, we place a lot of emphasis on keeping up with latest tech trends, because we know there are new languages, integrations and software being invented on a daily basis that help make it easier for you to build something equally awesome.

Build more, faster on NodeJS


NodeJS is fast, compared to browser-based Javascript. The code is translated into machine code in real-time as it runs. It’s also an asynchronous object-oriented language, with a large community – perfect for a variety of needs, whether you’re looking to kickstart your career as a developer, incorporate real-time features into your project, or process large volumes of data. It’s easy to learn, with A LOT of online resources and documentation to help you advance your coding over time.

Our new wrapper gives you the freedom to  use callbacks or EventEmitters, store your API calls so you can reuse your previous requests, and learn more about the Mailjet API. We’ve coded the wrapper using the soon-to-be released EcmaScript 2015 specifications, including native Promises, string templating and more.

Made for everyone


I recently joined Mailjet as a Developer Evangelist, so I’m especially familiar with learning and navigating my way through the API for the first time. While I was able to pick it up in barely no time, when it came to coding the NodeJS wrapper, my goal was to make it even easier for anyone to pick up and use the Mailjet API. The code is light and focuses on developer experience and readability. It takes little effort to decrypt and the internal process is intuitive. The wrapper code is designed to be flexible for everyone, whether you prefer to use callbacks or Promises:

It’s a very low level API client that allows you to build the calls you need in a Javascript way. The Mailjet API is meant to grow with the programming community. It is a highway to all the new exciting features we release for our Mailjetters.

“Any application that can be written in JavaScript will eventually be written in JavaScript” – Jeff Atwood


Mailjet <3 Github


Like the rest of our Mailjet wrapper library, the NodeJS code is MIT licensed. We’ll be releasing use cases over the next few weeks and months – so keep your eyes peeled!

Last but not least, we know that we can’t build a great product without the help of you – our developer community. That’s why we love feedback and code contributions. Whether you’re just starting out at coding, or are a seasoned developer that’s been in this business for years, as long as you document your features, we will send you feedback and consider merging your code with the official repository!

But enough talk – I’ll let our demo walk the walk, check it out and get started with our tutorial today!

Pssst: we also launched our Developers focused Twitter account. Join us!