Nicholas Westby

Announcing Formulate Pro

Nicholas Westby
Announcing Formulate Pro

Umbraco Formulate is over 4 years old now, depending on when you start counting. If you count from the first release, it’s been 4 years and 1 month. If you count from the initial commit, it’s 4 years and 6 months. If you count from the initial commit of uformsia (what I called Formulate when I was just experimenting with the idea of building a form tool), it’s been 5 years and 2 months.

No matter how you measure it, it’s high time for a change to Formulate. Today, I’m announcing that change by answering a question you probably have:

What is Formulate Pro?

For those unfamiliar with it, Formulate is a tool that allows you to build forms on your Umbraco website without much technical knowledge (contact forms, newsletter subscription forms, and so on). It requires a developer to install it, but then content editors are able to create their own contact forms with no further developer involvement.

Formulate Pro is a NuGet package that you can install that adds extra features to Formulate. Unlike Formulate, Formulate Pro is a paid tool. View the Formulate Pro page to view current pricing: https://www.formulate.rocks/pro/

Is Formulate Still Free?

Yes, Formulate is still free and it still has all the features it has always had. Formulate Pro is an optional paid package that add extra features.

What Sets Formulate Pro Apart?

Probably the most interesting thing about Formulate Pro is that, even though it is paid software, it is also open source. You can see all the code here: https://github.com/Formulate-Pro/Formulate-Pro

This facilitates a few things. For one, you can review all the code and learn from it (note that the license restricts viewing the code to only those who have paid for Formulate Pro).

Secondly, you can quickly patch any bugs that may come up. You don’t need to wait for some anonymous employee at another company to be scheduled to look at your bug and hope they fix it at some point. You can dig in right away and address any issues on your schedule, which helps to keep your clients happy.

Thirdly, you can contribute to Formulate Pro, should you have a desire to do so. Perhaps all the features are great, but you want one additional thing. This model helps facilitate that.

This is a software model I haven’t really seen in the wild, but my hope is that Formulate Pro will prove it is a viable one. I would love to see more companies use a similar software model.

Won’t People Steal Formulate Pro?

Sure they will! I bet a few will even steal it by accident (e.g., because they didn’t read the license terms and stumbled across the NuGet package). However, I’m willing to bet that they usually will pay for it. For one, the pricing is very reasonable (at the time of this writing, $20 USD per project, with a few other pricing options available). If somebody finds $20 to be a barrier to entry, they are probably not my target market anyway.

I don’t encourage anybody to steal Formulate Pro, but I accept that this may happen to some degree. I’m not doing this for those individuals, however. I’m doing this for those interested in supporting the future of Formulate. Based on the download count (around 35,000 so far), it seems like there are a lot of you.

What Are Formulate Pro’s Features?

Right now, there is just one feature, but it’s one I’ve seen lots of potential to be used: designed emails.

Update (December 2020) There are now additional features. Check them out here: https://www.formulate.rocks/pro/

When somebody submits a Formulate form, you have the ability to add handlers, which are steps that run and do something with the data. There are handlers to send data (e.g., to Salesforce), store data (to the database), and there is a handler to send email.

Formulate Pro adds the ability to send a different sort of email. The handler to send email that is built into Formulate just lists out each field vertically, which is pretty boring. You won’t be winning any awards for dark mode, responsive emails using that. This is why I’ve created the ability to send designed emails.

How Do Designed Emails Work?

First, you create a handler just like you would normally on a form. In this case, you’ll choose the “Designed Email” handler:

Formulate Pro adds the “Designed Email” option to the list of form submission handlers.

Then, once you’ve filled in all the usual details (sender, recipients, etc.), you specify the paths to a few Razor views (CSHTML files):

The designed email handler allows you to specify three Razor views to render the subject, the HTML, and the text of the email.

Then, you create those files. They all have the same model, meaning they can all make use of the same data. Usually, you’d want to rely on the data submitted in the form fields, but you have a bit of extra data on top of that (e.g., the page name and page URL). Here’s what one of those Razor files might look like:

A sample Razor view that you can use to render a designed email.

The Formulate Pro documentation has more extensive information on designed emails: https://www.formulate.rocks/pro/designed-emails

The main idea is that this allows you to use any markup you like to create emails, and you can incorporate data from the form submissions.

What Future Features Will Formulate Pro Support?

That depends; what do you want it to support? If I find there is significant interest in Formulate Pro, I will continue to add more features. I will prioritize the features that most people seem to want. This would be a good place to request any features you’d like to see: https://github.com/Formulate-Pro/Formulate-Pro/issues

Some things I can think of off the top of my head that people might want are: conditional fields, alternate rendering templates, specialized form submission handlers, and new field types (I’ve really been wanting to make a composite field type that aggregates collections of other field types, kind of like Nested Content for Umbraco).

Formulate Pro isn’t about what I think people want, however. I want to know what features you could actually use.

How Can I Help?

The number one thing you can do to help is to share the news of Formulate Pro with anybody you think may be interested. If you came across this article via a tweet, retweet that tweet. If you have a colleague who works with Umbraco, mention this article to them. The more eyes we get on this, the better Formulate Pro will become.

Another thing you can do is buy a license. Even if Formulate Pro doesn’t support all the features you want now, a license entitles you to all future Formulate Pro updates. Even if you just want to say thanks for all the work that has gone into Formulate, buying a Formulate Pro license is a great way to do that. Every bit helps.

You can do that here: https://www.formulate.rocks/pro/