Replacing Contour (Umbraco Forms) with Something Better
TLDR: Contour (which is being supplanted by Umbraco Forms) has a bunch of problems, and I'd like to create a better open source form builder so I never have to use Contour again. I'd like your feedback to decide what to include in this new tool.
Overview
When I create this Contour replacement, I'd like to make sure it is built “right”. For that reason, I'm identifying problems with Contour and Umbraco Forms, and coming up with some features I'd like for this new tool to have. However, I have mostly experience with Contour, so I'd like to see if any of you know of things Umbraco Forms can do that Contour can't. Also, I'd like to know what you want so this tool can be useful to the entire community. I've already asked some coworkers what they think, but I want to know what you think as well.
Issues with Contour
These are the issues I've identified with Contour.
Closed source. It's not open source, so bugs can't be fixed by developers and it's harder to troubleshoot. Some bugs have take years to be fixed, and some remain unfixed.
No AJAX. Doesn't support AJAX well (e.g., need to reimplement the server-side validation logic).
No aliases. Fields don't really have an alias to refer to programmatically. I think there is a GUID, but that changes per environment (dev/stage/prod), and there is an auto-alias, but that has its own problems (e.g., is based on field caption, and auto-truncates at around 75 characters). Neither the GUID or auto-alias are available in the UI, so finding them is a PITA. Also unclear if the auto-alias updates after the caption changes.
No client-side workflows. Doesn't support client-side workflow steps (e.g., tracking form submissions with GTM).
Markup stripped. Strips markup from field settings, which leads to funky workarounds (e.g., using “{LESS-THAN}” rather than “<”).
Umbraco Forms Research
I wanted to be sure I wasn't replacing Contour for no reason, so I wanted to look into the differences between Contour and Umbraco Forms. Here are my notes.
Configurable labels. Can change the label for the “Previous”, “Next”, and “Submit” buttons.
Bulk record actions. Seems to facilitate bulk actions on records better (e.g., can do a bulk select to subsequently perform a bulk delete).
Ideas for an Ideal Contour Replacement
Here are my ideas to improve upon Contour.
Bookshelf documentation. Create documentation in markdown and release for Umbraco Bookshelf.
Regex library. Create a regex library to avoid things like having to recreate an email regex over and over (and replacing it in a bunch of places). Install a few by default.
Flexible buttons. Make buttons more flexible (e.g., change labels, add cancel button, add clear form button, change where button appears).
Form parts. Allow forms to be split into parts (e.g., so labels and instructions and such can be inserted between various fields without having to implement custom field types).
Metadata. Allow custom metadata to be attached to forms/fields. And allow for extensibility so programmers can add custom metadata editors. As an example, a programmer might implement a color picker as a metadata editor to allow the form editor to pick the text color of each field. Maybe these could be form "settings" and field "settings"? These would differ from custom field types in that it would be possible to attach this metadata to existing field types.
AJAX forms. Make AJAX submission a form setting (and also allow developers to programmatically decide when to use AJAX or not).
Event system. Add lots of opportunities for programmers to react to form events, such as a JavaScript event when AJAX forms are submitted (before and after). For example, a programmer could modify the page layout on successful or failed form submission, even with AJAX forms.
Error messages. Allow for field-specific and error-specific messages (e.g., "First name is required" or "Email must be in a valid format").
Extensible validations. Allow for different types of validation to be added to fields in addition to the typical ones (namely, required and regex).
Multiple validations. Allow for multiple validation rules on a single field (e.g., multiple regex validations, each with their own error messages).
Email designer. Add an email designer that allows for custom emails to be sent. Maybe integration with third-party services that handle email better?
Data store workflow. Make storing data to the database a workflow step (would allow users to avoid storing to the database). Would probably add this workflow step to newly created forms by default.
Configurable defaults. Make all defaults configurable in a config file and at runtime based on conditions. Can probably accomplish this with DI/IoC.
Bulk workflow steps. For example, an email that gets sent out periodically indicating how many records were inserted in a given period (say, each week).
Use doctypes? Might be able to save a lot of time by using document types as the form builder. On the other hand, that would be hard to extend since it's part of the Umbraco core, and I think they're thinking of creating a new doctype editor in Umbraco 7.4, so any work around this may cause more problems than it's worth.
Data transforms. Ability to scrub/encrypt/transform portions of the data before storage (e.g., first name, last name, message).
Split validation. Allow client-side and server-side validations to be imposed separately.
Layout builder. Would be great if things like fields/validations could be configured separately from the layout. That would allow for a layout builder that is extensible. Could come with a default layout (perhaps something like a Bootstrap grid). Then, developers could extend with further layouts. Could even be contextual (e.g., the layout is "fancy" on the contact page, but "simple" in a flyout menu).
What do You Think?
I'd like to hear your ideas for this project (see questions below image).
Are there some issues with Contour that I missed? Is there a killer feature you'd like this new tool to support? Have I misidentified issues or are some of them fixed in Umbraco Forms? Any other comments or ideas?
It seems you have your work cut out for you. I think you've enumerated the problem domain quite extensively.
While I've experienced mixed feelings with Contour, I've ultimately decided that making MVC forms is (for me) way easier than trying to build a form engine like Contour.
Also, Contour is (I think) for clients that need to build their own form without the need for the agency/developer to modify each time a tweak is needed. That being said, it doesn't really come up that often in my use-cases.
And while I'm not trying to talk you out of it, whenever the need does arise for creating arbitrary trivial forms; I typically use Wufoo or something similar and just create an API endpoint for the forms to POST to. This is only when I need a non-tech user to manage the form.
Often times when I build a low-volume form I'll have the controller create a doctype programmatically and save the results there. If it's a high-volume form, I'll use a DB implementation similar to one of my old packages: https://our.umbraco.org/projects/backoffice-extensions/form-storage/
I can't offer you much other than the following (just spitballing):
Make the front-end interchangeable (local form, external (wufoo))
Make an API that accepts either a local form or an HTTP request (POST)
Make the storage provider based, (store as document type or DB or external?)
Make the API be able to retrieve results as paginated JSON so you can build any property editor/dashboard to consume it.
Anyway, like I said you have your work cut out for you :)
Thanks for your thoughtful reply. Indeed, I expect it will take me several full-time weeks to implement (i.e., it's not a superficial task). The other thing I like about a form builder (other than designing forms) is the reporting of entries and the workflows (e.g., sending emails and connecting to systems like Salesforce). That allows clients to grow and change their system without having developers be a barrier.
I like your idea to allow submissions via HTTP POSTs. That'd allow for things like forms on an iOS app that can submit to the website (i.e., there'd be no need for an Umbraco context).
And regarding making the storage provider based, my plan was to completely remove the storage from the base functionality and make the storage instead be a workflow step that gets added to all newly created forms by default. That way, you can swap out where data gets stored, or entirely remove storage of data. See "Data store workflow" above. One could also have entries stored to content nodes with a new workflow type.
Not sure I understand your suggestion for making the front-end interchangeable. If you had a Wufoo form, wouldn't that submit to the Wufoo server? Or maybe they have an option to design forms that submit to the website they reside on? If that's the case, then that makes sense (i.e., you could build the form with this tool, then use whatever arbitrary markup to create the frontend of the form, so long as it submits to the server).
I don't think I mentioned it (other than mentioning the "clumsy view alternatives" Contour supports), but it's shown in my wireframe that I intend to create form templates. The idea is that you can use different razor partials to render the forms. And that rather than having a GUID to choose the razor partial, the content editor would choose a default in a drop down (or whatever) and a developer could override that when rendering the form.
When you say "paginated JSON", I assume you mean for the form entries. That makes sense. That's probably how I'd implement it anyway (i.e., as an UmbracoAuthorizedJsonController that returns paginated JSON data).
Thanks again and let me know if you think of anything else.
Summary
Here is a summary of the above ideas to save others some reading:
External submissions. Should support submissions without an Umbraco context, such as via an iOS app.
Swappable form templates. Can use any frontend for the forms, including HTML created in some other system (Wufoo?). Razor partials can be set by content editors or by developers at runtime. See above wireframe for examples.
Record JSON. Paginated JSON returned from a secured web service to display form submissions in custom dashboards.
Would it be worth talking to Tim Geyssens (lead dev of Umbraco Forms) and seeing whether they would be willing to open source the project? That would save a lot of work as you could collaborate. I imagine Umbraco could still sell it as a commercial package with support, even if it was open-sourced.
Wufoo stores the form values locally then will kindly post the values to a URI of your choice over SSL.
Not the primary option for what you're trying to do, just a way to accept form data from 'anywhere'. The key is to decouple the storage API from the UI is all.
@dan, Re: collaboration, that would be ideal if they're up for it.
As mentioned on the issue tracker by Niels - then the forms/contour/courier packages helps us pay for developing the cms.
So no matter how much we actually like and prefer the open source model - its is not a financial viable solution currently, bills has to be paid and all that.
I think we also need to remember that this product is approximately £60. We've just replaced our corporate eforms system which was costing us £6000 annually "Achieve Forms" with contour on
Sure, Contour has its uses. In some cases, it causes more problems than it solves. And trying to work around problems increases developer time, which costs an employer money. That $140 can quickly turn into $5,000, which is important if you make lots of websites with lots of forms. And then there are the reputational costs of having to tell a client "nope, can't do that" because of the limitations of Contour, which is hard to put a dollar amount on.
Note that I'm not bashing on Contour because I hate it. I'm identifying its deficiencies so I can build a tool which remedies them.
It sounds like quite a Utopian idea and good luck if you decide to pursue this.
Personally though I think you may be a little over critical of contour/forms. Many of the issues you list are still achievable if you use the APIs. I agree documentation is very poor, but I have been able to leverage quite a lot this way.
Despite being a tool targeted at end users it's still very flexible for developers.
Sadly UF lost some of the features I really liked in Contour, but some are slowly returning, while others were arguably over engineered anyway!
One of the new aspects of UF really like, is forms no longer reside in the database and are now created as xml files. You can easily copy and deploy these to other installations and makes GUID re-use easy in code.
The views are also much easier to customise compared to Contour.
Sure, I can achieve most of that given Contour's current implementation, but the issue is that the solutions are quirky (e.g., prone to failure or come with tradeoffs) and take lots of time. Here are a couple issues I've had recently, for example:
Took me several days to modify a form to have fields toggle (enabled/disabled) based on the value of a radio button list field (and a couple other tweaks, such as adding inline text and inline images). I did this by adding a custom field type that included a field picker and a couple textboxes. That allowed me to attach arbitrary metadata to fields of my choice by creating these new metadata fields and choosing which other fields they apply to. The tradeoff being that emails will now by default include all those metadata fields in them (I could workaround that by investing even more time, but I don't have that for this project). And it's a bit quirky since the metadata for a field resides in an entirely different field.
There was a bug in the Umbraco licensing DLL which caused either Contour or Courier to fail, depending on which licensing DLL I chose. Luckily, I was able to fix this by upgrading both packages, but again that was time lost.
So most things are possible, but are much harder than they should be. And I agree that there was some over-engineering in Contour.
I was unaware that Umbraco Forms stores forms in files now. That is an interesting idea. Perhaps the Contour replacement could allow for them to be stored anywhere (maybe defaulting to the file system, but also including an option to store in the database).
The views are also much easier to customise compared to Contour.
How so? I haven't really used Umbraco Forms yet; is it still that funky GUID system to use a different CSHTML file?
I have spent a significant effort moving our corporate websites up to 7.2.8. These sites started on 4.0.4.2 over 5 years ago and over time they have been upgraded to 4.7.2 then 4.11.10 then 6.2.5 and finally to 7. It's been a mammoth effort moving the sites on, but we now build in VS / nuget so upgrades are much easier.
We too used Courier, initially 1.3 but as soon as version 2 appeared and we started moving to higher versions of Umbraco, we had to give up on it, Courier was simply too unreliable for end-users. But we stuck with Contour and i'm glad we did. Every now and then I'll check a recent build of Courier, but my opinion of it still hasn't changed.
Umbraco forms is a simpler implementation, code first has gone (which I did like and use) along with a lot of the Db complexity. I mentioned much of the structure is now shelled out to files...I got it slightly wrong it's JSON (even better :-) ). Json for the forms, for the prevalues, for the workflows and datasources. I see this as a massive improvement as it makes transferring forms to other builds easy. Still GUID based though, but thankfully I've found my custom code in Contour was relatively transferable to UF and I didn't have to scrap much of it.
It sounds to me like you're maybe trying to do things with Contour which is pushing the boundaries of its original intent. At the end of the day it is a tool for end-users with a straight forward interface for average data input. Arguably judging by the amount of time it has taken you to leverage Contour, it might have been better spent building a custom form with a SurfaceController & Partial view.
Personally, i've not had a lot of difficulty getting my forms to look good in Contour, a dash of BootStrap and things quickly fall into line and look consistent. The views in Umbraco forms have been simplified a little, but the implementation is still quite similar to Contour.
I'm not quite sure what you meant by using a different CSHTML files? I've only ever needed the one main template (master) and the built in fieldtypes. Sure i've modified them to fit with BootStrap, but the rest (each form) is built in the GUI.
Basically has a complicated checkbox list (each one potentially containing an image/summary/header/download). It is easier to build a different form for something like that (though, I may not have for that one in particular, the idea is that sometimes you just need some custom markup for a form different from the other forms on that site).
The way Contour facilitates this is pretty weird. To use that custom view, you must create a CSHTML with the GUID of the form in the name (e.g., Form.38403409343-336abc-233424-db354.cshtml).
It sounds to me like you're maybe trying to do things with Contour which is pushing the boundaries of its original intent.
That's one way of looking at it. Basically, I'm trying to build something which improves upon it and is easier to use and which provides more options to solve problems (including making it open source so people can fix problems themselves).
Arguably judging by the amount of time it has taken you to leverage Contour, it might have been better spent building a custom form with a SurfaceController & Partial view.
I do that sometimes. It would be a great option if I didn't have to reimplement the validation logic and if there were some more reliable way of identifying fields than by caption (and less environment-specific than GUID's). And of course when I do that and just submit the data using the Contour API, any changes to the Contour form may potentially break the form I've built.
we had to give up on it, Courier was simply too unreliable for end-users
I agree that Courier is extremely unreliable. In fact, I submitted an issue (to the helpdesk) and the official response was basically "can't reproduce". I also outlined part of the issue on the issue tracker, and haven't heard back yet, even though it's a critical issue (Courier fails to work): http://issues.umbraco.org/issue/COU-158 . My hope is that since they are now dogfooding Courier with umbraco.com, they will hopefully improve its reliability.
Data Configurations. For example, to store connection strings (or connection string names from the web.config) or SMTP settings. That way, workflow steps can make use of different data (e.g., when storing records or sending emails) based on the particular needs of each form.
Web Service Workflow. A workflow step that can be used to contact a web service. Perhaps various types of web services (REST, SOAP, etc.).
Server Function Workflow. A workflow step to call an arbitrary function on the server. Perhaps also allow for parameters to be specified (e.g., data from the form fields, or metadata, or hard-coded fields). This way, developers can avoid creating custom workflow steps for very simple custom operations.
Captcha. A built-in option to require a captcha to filter submissions.
Honeypot. A honeypot that can filter submissions without annoying users. Perhaps we can even interact (such as via a service) with a website like Project Honeypot to block known bad IP addresses.
Submission Filters. Would be neat to add filters to decide if a submission is valid or can be ignored. Out of the box, this could include the ability to block known bad IP addresses. You can block IP addresses in IIS, but this would allow the Umbraco admin to manage filtering. Perhaps the captcha and honeypot ideas could be submission filters too. Developers could also add their own filters (e.g., they could look for terms within the submission text that is likely from a spammer).
Submission Transformers. These could be used to massage the data before it is sent to workflows. Or maybe workflows would be allowed to do these transformations. One use-case would be to convert a numeric pre-value into a human-readable string. These might also be applied temporarily before workflow steps (e.g., to avoid sending certain fields, such as IP address, in an email).
Submission Decorators. This would be useful to add extra records to the submission. An example would be to add the user agent as a new field (e.g., to research spam problems). Another example would be to inject some contextual information (e.g., the value of the "Recipient Email" property on the current page), that can later be used, such as in a workflow.
Field Tags. Would be useful to tag fields (a form of meta data) that can later be used to do different things with different fields. For example, could tag some fields as "Not For Email", and any field with that tag would not be included in emails that automatically send out with the fields included. This field tagging might occur both at the form level (e.g., default field tags) and at the record level (e.g., if some fields are injected with a submission decorator).
Oh...! Are we creating forms now? I've had a private forms project going since 7.1.something, which HQ kindly persuaded me not to open source, to keep the revenue stream from Courier (Umbraco Forms) going. But if there's going to be a community driven forms project, I'll be happy to open source mine too.
I've taken quite a different approach to forms in that my project is essentially a property editor. Thus the form itself becomes just another part of a content page. In my experience this makes for very happy editors.
That looks neat! Note that I haven't talked with HQ about this; it's just something I'm planning on doing.
Also, I'd be interested in looking at your version, so that would be great if you open sourced it. Even if I don't use the code (which I might), it would be useful to see another perspective of how to implement a form builder.
Just to chime in: I have deployed Contour to some of the websites I maintain for friends, team members, ...
I still very much like Contour/UForms as it allowed me to implement some reasonably quick solutions in the past.
However, it has also often caused me significant headaches as some long standing bugs remain unfixed, some of them quite trivial: e.g. this issue.
Even though we are dealing with a commercial project, and some support might be expected, there is actually no clear cut or at least a somewhat deterministic way to get issues addressed. Sure, one can file a bug report and I have done so many times. Sadly however, that is no guarantee that anything actually gets fixed.
Now, I understand that the revenue from Contour/UFroms/... is essential to keep the open source part of Umbraco going. I am very much grateful that we actually have Umbraco. I also understand that with a small team doing all the development, large customers probably come first. However, at the end of the day, when I pay for a product I sometimes expect more than I am currently getting from Contour. It is not really super cheap after all...
Nonetheless, it seems odd that they would actively try and block public release of competing packages.
From the looks of it, your solution seems nice. If I could take it for a spin and it would turn out to be good, I would be more than willing to pay good money for it (certainly as much as a current UForms license).
I would like to think that others might feel the same so if the people over at HQ strike a deal with you, I don't think their revenue model should necessarily be threatened...
I barely skimmed most of this, but I wanted to add my two cents.
If you dig around a bit you'll find that most of the features you're discussing is more or less well implemented in Forms.
You've got the opportunity of adding workflows and custom form fields which should solve most of your needs. You can for instance easily add a captcha field type while we wait for official support, and honeypot is already there.
Besides that, it's all .net, so you can dotpeek or F12 your way to see all the code and more often than not override the behavior you need.
When you don't find what you need, I've found that HQ is more than willing to open up for customization where it's not supported, and there's nightly builds to use while you wait for the new release. Just get in touch.
Forms has the opportunity to be a really good tool if it gets the love it deserves, and the more of us using it the more it will have.
Thanks for taking the time to add your perspective; however, I disagree with much of what you've said, at least in my experience.
I've created plenty of workflows and custom form fields to work around the limitations of Contour. Also, regarding captchas and honeypots, note that I didn't say those aren't part of Contour; I mentioned those as things I'd like to support in my form builder.
And I imagine using dotPeek is technically against the license agreement of Contour (decompiling closed-source projects typically is). A much better way would be to have readily available source and good documentation. Especially considering that implementing something against an undocumented API may result in an upgrade breaking your implementation.
I have found HQ to be extremely slow in implementing my requests (or requests others have made already that I need), if they implement them at all. For example, here is a thread from over a year ago that they didn't even bother to respond to (and most of the items have not been addressed or have been addressed poorly): https://our.umbraco.org/forum/umbraco-pro/contour/56080-Suggestions-to-Improve-Contour
Contour has too many flaws and limitations, and the HQ team is too slow in iterating to be useful for my type of work, which involves developing new sites every couple months. Perhaps a few more offerings in the market will encourage them to improve their product, which would benefit everyone.
Sorry to hear you've had such bad experience. I guess we've had different circumstances and requirements when working with Forms.
Many of your points are quite valid and should definitely be addressed by HQ. I really hope they get Forms up to the same quality level as Core and have the time to give it as much love.
But it also depends on us buying the licenses and continuing discussions like this, including hammering in issues on the tracker.
If you really go ahead with a competing solution I wish you luck and good speed, but my ultimate hope is that Forms will win in the end. ;)
The quality of a product should not depend on quantity sold. Saying that Forms will only improve if we buy more licenses is akin to McDonalds claiming their beef patties will be higher quality if they just sell more hamburgers.
What does help is not only discussion (as you said), but also the threat of a competing product, something you seemed to be discouraging in your earlier posts. Heck, it's not even just you. According to Kenn Jacobsen, HQ themselves is preventing discouraging other forms software from being released. For an open source CMS, this is absurd on so many levels.
The criticism of Umbraco Forms does not need a devils advocate when its inadequacies are so blatantly obvious by anyone who's purchased the package. The issues and lack of features are especially obvious when compared to its older sibling, Contour.
Rooting for the Forms monopoly is not the road to progress and Nicholas should be getting nothing BUT support for his endeavor. Keep it up, dude, you rock!
It can happen that there are resource constraints (i.e. not having enough resources to improve Contour).
However, if the product of Kenn would turn out to be better, why not strike a deal with him? Incorporate his product in Umbraco or perhaps even make him (co-) responsible for an official Umbraco Forms solution? This way, the revenue model of Umbraco would not be threatened (everybody understands they need to make money).
On the other hand, I cannot imagine much return customers for the current project, especially because of the issues and sometimes lacking documentation. So the question is: how much revenue would be lost from having open source competition?
As it stands now, I sometimes feel like having paid way to much for an essentially "beta-like" product with very little, if any, support.
A missed opportunity really. I do not have the time or perhaps skill to roll my own solution from scratch so I remain more than willing to invest in a good, headache free, forms solution.
Errr... before this gets out of hand, let me just clarify right away; HQ did actually ask me nicely. They didn't "prevent" me from releasing my forms project.
That being said, I do agree that progress and innovation rarely go hand in hand with a monopoly. But as long as the Umbraco development relies on the funding from the Pro licenses, it's a bit of a pickle to release alternatives to Umbraco Forms/Contour.
Hopefully UaaS will pick up and bring a new revenue stream to Umbraco, so we can develop alternatives with peace in mind.
I really agree about the monopoly and competition stuff, guys. However, I support and appreciate that HQ needs money from something. I also happen to like builtin stuff, amongst others Forms. But of course I would like it to be "better" and more SOLID too.
Though I really enjoyed buying the Contour (Umbraco Forms) plugin, I partially understand Westby's problem. I recently ran into the situation that I wanted more ... My solution for my problem now is: As soon as I have some weeks time, I will investigate if it is convenient to use XAML with Umbraco. I want to study the old Xslt documentations for that.
If any experiences are available, I would be glad to collect them.
Note: XAML could anyhow (if on top of angular u jsx u else from what I read) improve the client backend/backoffice development process, but also the frontend aka mobile development process tremendously.
I don't understand. What does XAML (I assume you are referring to the kind used with, for example, WPF and Silverlight) have to do with Contour or the replacement I'm proposing?
Nope, I haven't spoken with Umbraco HQ. I suspect nothing has changed, however (e.g., probably still unwilling to open source Umbraco Forms).
By the way, would you be willing to share the code you've made for your form solution with me (or the community in general)? Would greatly help expedite the build of my version (e.g., I could use the drag drop functionality you seem to be using), and based on what I've seen so far you're doing some really interesting things I'd like to play with to get a feel for.
I would be open to hearing from Umbraco HQ if they have some interest in Formulate.
Until then, I'll continue building it assuming that they have no interest.
Also, IMO, they should not be discouraging people from building alternatives for their offerings. They should just provide sufficient value in their offerings that others prefer them over the alternatives others build.
I'm new to Umbraco and probably the open source world as well, so I can claim a certain amount of ignorance to the process. So I'll defer to the community to educate me on how to participate in the open source world.
In that vein, what is considered a rip off in open source? Again, I may miss some value or doctrine that I've yet to be introduced to. But the screenshot you've posted tells me nothing about the source code, so maybe you can educate us as to the specific theft? Icon placement is all I see here. That aside, should I worry about using someone else's source code to bootstrap my projects (I'm not sure if that's what's happening here, just want to know for general knowledge)?
I guess I'm a little confused and just want to navigate all of this honorably. Thanks for any feedback you or others can provide to this new community member.
I'm assuming this is a joke, as what you're showing hardly demonstrates a rip-off; especially considering Formulate is a work-in-progress. Care to elaborate?
@Matthew Kirschner I'm not joking. It's a screenshot showing initial glimpse of a product organised exactly like Umbraco Forms and Contour.
The information organisation of Forms/Contour isn't random. As simple as it may look, it's a result of a lot of work in organising a lot of choices in a simple way.
I've spend more than a decade of my life keeping the Umbraco project alive.
Seeing this makes me incredibly sad and frustrated.
@Kris Janssen As I wrote, I don't mind at all that people are making alternatives. But I mind if people are making rip-offs of what we do.
I'm sorry you had bad experiences with Contour/Forms. We're aware that it and some clients didn't get the attention they deserved and we're building up an entirely new team for Forms, so a lot is happening.
If you have any specific bugs or frustrations with Contour or Forms, let me know -> [email protected].
It's a simple, three folder structure for a project that barely has legs. Why not wait and see the bigger picture before condemning a contributing member of the Umbraco community? Your response is completely unwarranted.
For the record, Niels pulled that image from Nicholas' Github site for Formulate and is making his judgment call simply based on the folder structure. Below is a more complete snapshot from that page. Note the "Progress/Status" section.
I like Umbraco as much as everyone else here. I can imagine (but never really know) how difficult it might be to have started all of this and what it might take to keep things going.
That being said: you seem to be annoyed that somebody makes something that "looks" like Forms or Contour or whatever. The fact that it might work in an entirely different way under the hood is ignored. That seems a bit "Apple" vs "Samsung" ("slide to unlock" anyone?).
Although I still think it is for somewhat the wrong reasons, it is of course your good right to think this initiative is out of line. However, that does not seem to explain why other initiatives such as e.g. the one by Kenn were equally quelled. The little I have seen doesn't look like "Forms" at all...
Forms being what it is now, some competition would not hurt. A well-working alternative would easily get my Euros directed to it (how ever insignificant that financial contribution would be).
It is very hard to have an opinion about this without coming across as gratuitously critical and I really hope I will not be considered a troll but I still think your reaction is somewhat misguided.
"Errr... before this gets out of hand, let me just clarify right away;
HQ did actually ask me nicely. They didn't "prevent" me from releasing
my forms project."
Competition is always welcoming. We also have a great track-record of providing room and support for other alternatives to our products such as uSync, etc.
Umbraco as the free and open project most of us love (that being the core, the community site, CodeGarden, documentation, etc) doesn't makes itself. It's insanely expensive to run a project like this (I took a loan in my house to make it happen - that's how much I love this project).
At the HQ we do our best every single day. Just as most of the wonderful people making our community something special do. That's what keeps this wonderful project alive. High five those people rock.
I agree with someone else's comment that this forum is probably not the best format to get to the bottom of this and I will not protract this discussion much longer.
But some parting thoughts:
Yes, you might have asked Kenn nicely but then again why was Kenn asked to not publish/distribute his alternative?
I could only imagine that it might be because might threaten your revenue model if it turned out to be better.
If it would be out there and turn out to be bad, no harm done. If it would be better, why not bring it into the fold?
I have paid good money for 3 Contour licenses. There is no alternative and I cannot help but feel that I have over paid. Mostly because of long standing issues that force me to use all sorts of workarounds.
If I could contribute to a solution, I would, be it with time, money or otherwise but the lack of progress indeed sometimes leaves me a bit frustrated. At one point I even resorted to bugging Tim directly but he also seems to be a very busy man and I can understand he cannot cater every request immediately. A potential solution should be more structural.
Whatever the truth may be, I hope this situation might eventually result in something positive: nicer forms in Umbraco!
Nicholas has been a colleague of mine for about a month and a half, and introduced me to Umbraco, but that's not my interest here. I truly am confused about the process. It seems he has reached out to HQ about this:
I would be open to hearing from Umbraco HQ if they have some interest
in Formulate.
Until then, I'll continue building it assuming that they have no
interest.
Further, this project has not been concealed or underhanded in any way that I can see. It's been proposed here in the community and matured with the feedback posted here. As a community of people who are obviously advocates of your product, maybe we can work together as a community and let cooler heads prevail? Statements like
You're no longer welcome here.
seem very heavy-handed and knee-jerk reactionary, the opposite of what we need in a good community.
Umbraco is really cool. I've only been involved in using it for just under 2 months now, and it's value is self-evident. Let's not muddy the waters with emotionally charged responses, but rather better solutions.
We still haven't seen evidence of theft. Perhaps my colleague, Nicholas, can help us understand how the products differ if it's not clear.
In any case, we're human. It's easy to understand your reaction given your "blood, sweat, and tears" on Umbraco Forms. I don't think the community is unforgiving, from what I can tell, and would respect efforts by both parties to continue participating in work that benefits all of us.
as a long time member of this community and a big fan of the umbraco product(s) as well ;) i feel a duty to add to the conversation.
first, the premise of "can it be better" - of course it can... everything can always be better.
Next, the concept of "should we make an open source product to compete with a closed source product?" my answer is not in the SAME community or project. This, I believe is where the human aspect of the discussion comes in.
If the HQ were giving away free cars and they sold radios to help offset the cost of creating cars... would you try to sell car radios and risk putting the car company out of business?
if you want to listen to your own custom radio in your car... ROCK ON... the umbraco car lets you do that.. heck add custom speakers... new rims... trick that thing out... but if you want everyone to have your stereo in their car.. maybe make it for another car company that doesn't give away their vehicles for free.
To have a great forms product evolve - even as a pay product, you have to have a sweet ride to put it in. This is where UMBRACO fits into the conversation.
The HQ, along with the community has built a great product that they give to us. Sure we help make it better, keep it clean, etc. but it has been brought to maturity through the AWESOME folks at the HQ.
I honestly believe not that the car is rock solid, they will work on making the radio better. In a community like this, you have to respect the product, process and the people.
I do believe we are all welcome here... but you gotta play nice. The idea is great, don't get it twisted. It just isn't the right idea for this product, this community, heck this family.
Heck, maybe there is a job for you on the new umbraco forms team... who knows, but i think this is pretty bad form for you to take food out of the mouths of the HQ that has given us so much.
If you think it is harsh to say it that way... think about it... i am pretty sure they are not moonlighting at other gigs PLUS all the work they do for umbraco... this is their lively hood and guess what... forms/contour is a big piece of that right now and has been for a while.
Hoping we can move past this and get stronger as a community.
The for-money packages are probably indeed what keeps the Open Source project going. That and running Umbraco instances for customers/doing consulting.
However, if the for-money projects get in trouble because of issues, somewhat lesser quality/lack of polish that will eventually also result in lost revenue. Maybe some other CMS comes along with a much better forms package or whatever.
I think nobody here wants Niels or anybody else to lose income or go out of business.
Initiatives such as the ones being featured in this thread are just a strong warning sign that something is amiss specifically when it comes to the Forms project. Seemingly choosing to just quell the competition, although a temporary fix, is the wrong reaction in the long term.
Having bought multiple forms licences and actually wanting/needing more for other installations, I can currently only resort to voting with my wallet and not spend more until something better comes along ... but at the end of the day, that doesn't solve my problem. I would pay top dollar for a solution but there isn't any.
Might be going on a tangent here, but bear with me.
I suggest an open-space topic on the issue for the next CodeGarden (yep, I'm six months ahead of schedule).
@Niels, I realize this is unsolicited but I'd really like everyone to hug it out in the end. Hopefully this doesn't sound offensive.
I'd also like to propose some alternatives that might end with everyone getting some of what they want. The issue likely revolves around revenue and lack of resources (time, manpower, backlog length, etc). Most every company will struggle with each over time.
How about...
1) Invite select interested persons to the closed source projects to help out. For example Kenn and Nicholas would probably be willing pitch in on the current implementation because they have a need to advance these projects. It might just be pull requests, or it might be complete rewrites. Not everyone gets let in.
2) Get Umbraco TV content from the community (and keep it a paid service). It's probably rather difficult to keep these videos up to date. I know I'd personally produce content for free as a way to 'give back' to Umbraco. I just need to be given a topic and guidelines and I'll have a video returned. I would guess others would do it too. This could free up internal HQ resources for other items (backlog, closed source, UaaS, etc).
3) Perhaps most provocative... slow down the major/minor releases. New features are great, but each new minor version gives birth to many bugs. A stable version of Umbraco is more valuable to me than a new feature. Bugs require lots of love from the HQ. New versions obsolete videos and documentation. I'm not suggesting slowing down to 'Microsoft release' speed, but I'd rather see 20 patch releases in a year and one or two minor versions max. Those minor versions come well documented at release time. Closed source projects can get some much needed love. After all they are paying some of the bills. Nothing wrong with having a v7.3.x for 10 months and have a v7.4.0-beta for six months. It's ok to overlap the 'current' version and the beta at the same time. While I LOVE version 7, I'm dreading version 8. Mostly because it means we'll be missing certain functionality, documentation will lag and the usual pain of breaking changes. If someone absolutely can't live without a new feature, have them use the beta and it won't be actively supported until it's the 'current' version.
I just want us all to get along :)
I'm planning on releasing a new package myself soon and I don't want to have to lose sleep on how it might be received despite its benevolent intentions. I don't want to get voted off of "Umbraco Island".
Thanks for reading my post. #h5yr to all for being passionate and caring.
I'm brand new to Umbraco.. I just swiped the boss's card today for Umbraco.TV, and now I'm feeling a bit let down because the content doesn't seem quite as awesome or useful as I expected.
I don't say that to be negative or controversial, just to emphasize that as a newcomer, allowing the community to give back in this way seems like a fantastic idea. Seems like Umbracians love to share their knowledge, which is awesome, but a lot of the really great, informative, and up-to-date content out there is quite difficult to find, as it's on individual blogs and such.
@Kevin - thanks for your constructive and well meant input!
Forms handling is vital to any CMS. Even though forms may feel a bit old school to some of us, the customers usually expect to be able to reach out to their users easily using forms. Sitecore has Webforms for Marketeers and EPiServer has XForms, both of which really don't work that well, neither from a UX perspective, nor from a developer perspective. In other words, this is an area where Umbraco has a unique opportunity to shine above the rest. Only so far it hasn't really, which has driven some of us to create our own solutions.
I do expect that HQ will boost the work on Forms after this debate. I know they already set up a new team to work on Forms. So I'm not overly worried about the future of Forms.
It saddens me how HQ has reacted to this issue. Constructive critisism, or an objective discussion about the impact of a new forms project on the Umbraco economy, would have been so much nicer than branding Nicholas as "not welcome" and subsequent heated debate.
What worries me the most is how the package devs will react to this. I share exactly the same concern towards new contributions that Kevin mentions above. Having to fear being excommunicated from the Umbraco community is not going to inspire new, awesome packages.
@Kenn: As long as one doesn't behave as disrespectfully as seen in this thread, one shouldn't have anything to worry about. As I've previously mentioned in this thread, we have both welcomed and supported several alternatives to our products throughout the years. I've never seen that at any other place.
But this one crossed the line so deliberate and clearly, that it was easy to say not cool, not here.
The comments of Kenn were probably the most balanced of this whole discussion but after again reading this reaction I cannot help myself:
I too agree that perhaps the original posts of Nicholas were a bit strongly worded. Indeed the tone of these posts might make it seem more trivial than it really is to make a good forms plugin. He might have overdone it on the enthusiasm front.
Perhaps the medium of this forum is to blame: perhaps Nicholas is just very passionate about his initiative and really just means well. Everybody knows it is much easier to probe the real sentiments of a person when talking face to face instead of through written text. It is so easy to misinterpret written words.
That doesn't make some of the points raised any less valid so I would really like it if the focus shifts from the persons involved to some of the matters really at hand.
I do not have the numbers but I would suspect one of the issues with Forms is that it is likely extremely important to only a very small subset of specific users. I would therefore expect that the revenue it generates at this point is not as large as some of the other sources of income.
I might be totally wrong but if the above holds true it might explain why progress on getting some of the issues fixed is so slow: some of the things I encountered have been raised as early as 2013 and are still around. The forum is full topics dealing with these matters.
As a customer (however insignificant I might be) I feel well and truly left out in the cold. That cannot be right nor will it do the Umbraco business model much good in the long run.
And that brings me back to the one question that I still feel should be awarded with a well formulated answer that goes beyond "don't be rude":
Why would have asked to keep Kenn's work under wraps?
Is Forms really that big a part of your revenue stream? If so, who is buying it and aren't they experiencing issues then? Where do all these customers get support if I cannot seem to find a proper channel to get it myself? Between the issue tracker and this forum, what other support options do I have? As mentioned previously, I even went as far as contacting Tim directly at some point, which resulted in some quick patchwork but nothing fundamental.
I really do not intend to be impolite, obtuse or any other kind of negative. I too am very fond of Umbraco, the core product is lovely and the people working on it are very smart and couldn't receive possibly receive too much credit for what they do every day.
Nonetheless, it should still be possible to react better this this whole matter than this.
@Niels Just to clarify here, because a lot of this discussion revolves around the pros and cons of creating a new forms solution: Would HQ be OK with a community based forms solution being created, if it was indeed something radically different from Umbraco Forms?
Talking of Form Packages, we too have our own form package. We have tried Contour, but we could not work with that, as we wanted some small changes that we were prohibited from doing.
As part of building our form builder, we have looked at other form builders, of course, but our project is in no way a ripoff of Umbraco Forms. We are actually in the process of moving the form designer to the content section, so we can let Umbraco handle how to save it, and it will work with UaaS out of the box.
If you write your own section, I think you will have to write some Courier resolvers too.
Our focus is to make the form designer so easy to use, that we can give it to the editor, and they can use it with a minimum of education. While Umbraco Forms is powerful, it is certainly not easy to use. For that reason, I do not see our package as a rival, but more as a way to do a simple contact form easily.
If it agreed to do a community form editor, we might contribute our code too.
We have a marketing team that grows every year and all are given the keys to our Umbraco 7 installation and ALL use Umbraco forms after a relatively short demonstration.
None of them have expressed any concern over difficulty of use. In fact I would argue, forms in v7 is easier to use than Contour was in v6.
In contrast, I wouldn't impose Courier on ANY end user. From v2 onwards it immediately became a developers tool (for those out there who remember Courier 1.3!!!!). Unfortunately a very unreliable developers tool.
Please everyone read Bobs post marked as the solution, and follow your conscience (if you have one).
We do not have a marketing team, I have to teach how to use the form to every new customer. This is the time I am looking at - teaching it to someone who knows nothing about Umbraco.
I think I should have another look at Umbraco Forms. The last time we seriously used it, it was still called Courier, and as you say, that was more a development tool than a form editor.
I think it is very harsh, bordering on inflammatory, to suggest that I do not have a conscience! We have developed our own form package, that can do no where near the same things the official form package can, simply because it meets our needs a lot better. I would like you to subtract or clarify that part of your comment.
I said please EVERYONE follow your conscience. Sorry that wasn't directed solely at you, so apologies there!
For you to completely understand the issues raised here, you do need to be an active user of the Umbraco teams products right up to the latest versions. Your reply suggests you are not.
Courier is the tool for passing content between dev/staging/production builds. Contour is the forms tool for v6 and Forms is the v7 replacement.
Second, yeah, for some reason, I always mix up the words Contour and Courier in my head, even though I know what both are. That adds an extra level of confusion. Sorry about that.
I still fail to see, how us developing our own form package, that meets our exact needs, is in some way against the spirit of Umbraco. I understand that the HQ needs money, and I am not against paying money for good packages. We started developing our own package a long time ago, back when we only had Contour as an option. We had several problems with Contour, and no way to fix them, so we developed our own. Our own package meets 95% of our needs, so we will keep using it. We even tell our customers, that if they want advanced forms, like multiple pages, or conditinal fields, we have to go for the commercial package.
So are you saying your own forms solution provides the "simple" option to your customers and you sell forms as the "advanced" option???? Is that from a technical perspective or from an end-user UI/UX perspective?
What exactly does your own simpler solution do that the more advanced Umbraco Forms doesn't? What crucial pieces of functionality does it provide?
First of, let me repeat that I haven't really played around with Umbraco Forms. We had some major issues with Contour, where we simply weren't allowed to format the output the way we wanted, so we created our own package. I thought, mistakenly form what I can read in this thread, that Umbraco Forms was just a new version of Contour, so I will have to go and have a real look at it again. Nevertheless, by the time Umbraco Forms came out, we already had our own form package, that we can use for all simple forms we need. Our customers mostly needs contact forms, with the rare integration to CRM etc., and our own form covers this use case 100%, so why pay for something else?
When I say simpler, I mean simpler in the UX. We have deliberately kept the number of options to the absolute minimum. While this means there is a lot of things that cannot be done in our form compared to Umbraco Forms, it means that it only takes a few minutes to explain the UI.
We have also added our own spamfilter/honeypot, which we could not do in Contour, but I gather we might be able to do in Umbraco Forms, we simply haven't had the need to look into that.
From my cursory glance, I also think our email generator is easier to use, and we are working on making it even easier.
Examples of things our form package cannot do, and we would need Umbraco Forms to do that:
Conditional fields, where certain fields are hidden/shown based in input in previous fields.
Multi page forms.
Advanced integrations. We can do integrations now, but only simple, where we simply pass the input along to an API.
I should say, that we are based in Thailand, and the wages here are drastically different from the wages in Europe/USA, so we can do a lot of work for the price of an Umbraco Forms license.
I've spent the last 5 years working with Umbraco, and after following this thread from the start, I feel I need to chip in.
I've had many strong words with Per when he produced and released Courier 2.x and raised many issues with Tim on Contour/Forms versions. But despite my difficulties with these commercial products i've ALWAYS found solutions that I'm happy with.
In the example of Courier, the solution for me was to STOP using it. It just doesn't do "what it says on tin". I've continued to follow versions, but its still not reliable. Recently there has been an announcement to align courier with the core. So I hope it will solve the remaining issues and i'd be more than happy to pay for new licenses when its stable.
Contour/Forms on the other hand, I found generally to be a very good fit for our end users, with a relatively easy to use API when we needed to extend it. Generally I would say, "it does what it says on the tin" and it serves the purpose for which it was intended.
If we're to take away anything positive from this thread personally I feel @bob baty-barr post has the most appropriate analogy.
Ultimately for Umbraco to survive; Niels, Per, Shannon and the rest of the team HAVE to monetize the project. Free is great when it's just you in your bedroom!
People take some responsibility here for a project that will undoubtedly have put food into your mouths, for a lot less outlay than many of its competitors.
Sure the commercial products could be better, they could even be free! But the reality is Umbraco isn't run by robots! It's run by people who have the same needs as the people who use it.
Paying money for projects that provide REALLY useful extensibility beyond the core, should really be the norm. The most obvious demonstration of this is the vast majority of e-commerce packages. Simply because they monetize Umbraco is such an obvious way! It's really useful stuff that can make you and your clients a lot of money! It will have as many flaws as the free stuff, but it will increase your revenue.
Forms and Courier may not provide direct revenue streams, but they do add a huge amount of value to your commercial efforts!
Perhaps we should keep the discussion with Forms/Contour and not involve Courier in the mix.
Also, I would keep away from statements like
Please everyone read Bobs post marked as the solution, and follow your conscience (if you have one).
In matters such as these, it is best to stick with facts and it is beyond me why the simple facts seem to get lost in lots of chatter:
For-money packages are a source of income
Some of these packages have issues or they might run behind in terms of features (e.g. Contour/Forms has no out of box support for asynchronous submission of forms)
These issues might lead to unhappy customers and less returning purchases or alternative solutions might pop up
Either way, at stage 3, ultimately revenue will be lost and nobody gains.
Judging from what I have read here and given the relative radio silence regarding the state of Contour/Forms (see here) I can only conclude that, until now, alternatives such as the package of Kenn are just being blocked (even if they were asked nicely) for fear of losing what little revenue might still come from Contour.
Sure, one could argue that there are workarounds for many issues and I too have been able to do really cool things with it that go far beyond what is supported out of the box (async forms, Markdown editors in forms, ...) but one could argue that, with so much personal effort being necessary, if the sticker price is still in line with what you get. I would argue that using Forms for non technical users is quite hard...
Maybe people that are closer to the Umbraco inner circle know more but us regular folk are in the dark.
There are multiple elements to the solution:
Communicate with the wider community of users/fans of Umbraco what will happen to tackle the issues with Forms/Contour in the forseeable future. Not only at events like CodeGarden or whatever. Clear, unambiguous communication might go a long way in creating understanding and generations support within a community. I am also quite sure people would be willing to fund future Forms development giving how useful it can be in real world Umbraco installations.
Explain why people with working alternatives are being asked to withhold them. While a quick fix, and even if money is to be made, it doesn't seem right to me to actively prevent competition. If anything, competition should be an incentive to come up with better things.
I would think these questions/considerations are not all that weird or unusual?
Umbraco Forms is very important to the revenue stream of the HQ and the majority of our customers actually like the product.
However, we've been very bad at managing proper support and fixes for those where the product didn't work (or wasn't right). Sometimes you'd get a fix half an hour after you reported an issue in an evening (wow!), but other times you'd hear nothing. There's no consistency, because we simply didn't had proper processes in place.
Reading through some of those old Contour/Forms threads are very painful and not what it should be a user of any product (open or closed).
Earlier this year we became conscious about the issues and we've been re-organising the team around Forms. I'd wish you could fix these things in a heartbeat but it takes time.
In terms of support, as Forms becomes a part of the UaaS offering which means that it'll get much more attention (needless to stress that it'll still be available as a standalone tool). It'll also be a part of the same operations flow we have for that product, so it doesn't rely on individuals.
In terms of focus, Forms gets more love for doing what I originally designed it to be - a form builder for people who weren't technical. It means it'll get better UX, get tightly integrated with the content section, have better reporting and easier out-of-the-box integration with popular services.
If Forms isn't the right tool for you, then I think it makes (a lot of) sense to spend time on making an alternative that works for you (and open source it as perhaps it works for others as well). But if not, I'd encourage people to use the energy on other areas where Umbraco and its ecosystem could be improved.
Funnily, I've just read the '24 Days in Umbraco' article by Nicholas Westby and it's clear he is a passionate supporter of Umbraco. I don't think excommunication is the best way to resolve this dispute.
I really like what Kevin Giszewski says. It seems to me there are few key points that people agree on:
Umbraco Forms / Contour could do with a little love
The monetary stream from Forms is important to Umbraco HQ
However, HQ don't have as many resources to devote to the project as
they'd like
There are people in the community who want to actively make Forms
better and are willing to do so
Isn't it rather obvious that everyone should be working together on this, rather than fighting, banning, or working on multiple rival products?
Like Kevin says, I'm sure a way could be found - either closed or open sourced - to allow people to contribute and still have a revenue stream for HQ.
Even if Forms was open-sourced, I'm sure many companies would still happily pay for a license for support, or easy installation as a package, or for training videos. Or just to help support the Umbraco project.
Also, couldn't it be made open-source but you still require a license to run it in production? The licensing code could be kept-closed. Maybe reward contributors with free licenses?
I'm sure there are ways if we just co-operate in the fashion the Umbraco community is famous for.
Surely once the code is open any attempt to protect the revenue it provided is lost?
It would be a matter of trust that somebody has purchased a licence for a protected production version of forms, rather than simply deploying a compiled, possibly modified version of the source code.
In my experience licencing based on trust alone....isn't a good idea!
As I said, you could open-source the main code base but keep the license validation code closed (as a referenced DLL, for example). I'm sure determined people could work around this fairly easily, but would most companies really want to go and do this? Is it worth the time and effort to download, hack the source and then build and install rather than pay €99? Plus, as I said, there is also support benefits for license holders.
I don't know if you are aware but most of the forms code can actually be browsed using some form of "reflector", even if it is not open source. If you want to get the most out of it, the first thing you probably need to to is take a peek.
The licensing code is in fact obfuscated.
Forms not being open source really wasn't the issue in this whole story.
And indeed, why bother with all this reverse engineering malarkey if you could buy something that "just works".
Here's to hoping that the changes Niels more or less announced will come around soon and we can all just move along our merry ways...
I'm sure there are plenty who would, even for the sake of 99eur! It wouldn't take much "hacking" either to allow the open source version to run in a production environment.
Its a lovely idea, based entirely on trust and it's giving away too much!
As Bob expressed well, loads of us make money by using the free Umbraco software. Of course we want it better; our work becomes easier and faster and we make more profit. We rely on the HQ and core team to make great stuff for us to use in our businesses. I want to support them and contribute to the project and the larger ecosystem. That helps everyone. I don't mind buying Contour/Forms. It isn't expensive and even if it doesn't do everything I might like it's worth the money for the many times it meets the client's needs. If I need more than it does, I would probably hand-code those. Buying the Pro products helps to finance the larger project that gives me a better Umbraco for free.
You're right, though, Contour/Forms isn't the holy grail of forms packages right now. It hasn't gotten the attention it deserves for far too long. Your frustrations are shared by many. It would be wonderful if it were better. We all agree on that. The HQ has been aware of it and has been working to address that. Unfortunately the realities of running a project or business don't always allow for getting everything done as quickly and as well as we'd like. I can appreciate that even while I express my frustration with the results of reality. Fortunately progress is being made though the results aren't yet overly visible. Things are, and will continue to get, better in the Contour/Forms world. I'm very much looking forward to that.
How, then, do people like us who aren't part of the HQ and core teams help make things better for everyone? Or, since this thread has seemed to touch some raw nerves can I be allowed to make a few observations about ways we can inadvertently sabotage even the best of our ideas and intentions from being realized, and offer a possible way forward?
Attitude
Having been part of the community for nearly a decade and also being an American I've seen this sort of conversation happen before. I've even done it myself! Not that being an American is a problem, but as a global community I have to realize not everyone shares my biases and way of presenting my ideas in an overly strong/definitive way. I have too-often come across as arrogant, unfeeling, and critical, even when I was trying to be just the opposite. It's taken more than a few mis-steps to learn how to communicate with an international audience of people with their own backgrounds, experiences and ways of doing things without offending by making assumptions I naturally assume everyone should share.
At some level, I think much of this discussion is marred by attitude. Not intentional often times but it's there just the same. And that can make even our best ideas and intentions difficult for others to accept constructively.
It's something we all need to be aware of by thinking of others rather than ourselves first. And that’s not easy! Nobody is perfect in this regard but it's oh so important if we are to foster the kind of community we want to have.
Respect, politeness, working together, concern for one another, kindness, even love. These are some of the aspects of what makes us different than other communities and projects. Umbraco is the "friendly cms". The community site is called "our" rather than "my". It's about us. All of us. How can we all win? Even subtle attitudes and tone in speech and writing goes a very long way in building one another up rather than tearing one another down.
Attitude is key to how our words are received.
The HQ does listen, though perhaps like all of us with more attention when things are presented in a way that makes the words easier to swallow. For instance, Marc Stöcker gave a whole presentation at the #umbUKfest on how the Grid could be better. He could have done it in a negative or condescending tone and turned off the HQ from wanting to listen to his valid concerns and frustrations. Instead he was constructive and helpful. It has made all the difference. The HQ were really pleased to hear his thoughts. They've talked to him more since then to help make the Grid even better.
Uniqueness
Maybe "uniqueness" isn't quite the right term but hopefully you'll get the idea that not only are each of us different than one another, but so is what we have to offer back to the project and community. We can all have a positive impact in our own way.
The frustrations with Contour/Forms are valid. We would like it to be better. Much better. Do more complex things. And some are willing to put in a lot of effort to help. You feel you've been ignored. So you'll strike out on your own, which is also a valid response.
We've all built things ourselves to solve a client or project need. Sometimes it is so useful we share it back with others to make their lives easier, too. Yet we all approach things differently because of the needs of the project and because we have unique backgrounds, skills, time, and ways of thinking about things.
If anyone wants to make a product or package that "does forms" for Umbraco, that's awesome! Please do it. But please, make something unique. That's where power and real change are.
At the beginning of this thread the ideas were definitely unique and the wireframe, though drawing on some concepts from Contour/Forms was certainly derived from the ideas set out at the start. What was taking shape was something unique.
By the time there was a screenshot from github it was a visual clone of Contour/Forms with little more than a word change and a space added to turn Forms into Formulate.
That's neither unique nor true to the founding ideas. A clone, even with the goal of having more/better features, is still a clone. Even if the source code is written from scratch the concepts, naming, and base functionality are essentially identical. That's a problem at many levels from questions of legality to those of appropriateness. It just isn't the done thing, as they say here in England.
In the context of the Umbraco community, to make a look-alike is neither polite nor respectful. Especially without discussing the idea with the product owner beforehand. That might have saved a lot of bother and hurt feelings and poor responses, etc.
Going Forward
If I could be so bold as to offer my advice at this point… I'd say a forms package that is unique would be welcome by the community.
I don't want people working on a "Better Contour/Forms" package. I'll leave the HQ to get on with that.
I would, however, enjoy seeing "unique" forms packages. Ones that take a fundamentally different approach, tries to solve different problems and use cases, appeals to different kinds of users. Better, I'd love to see a collaboration between a number of interested parties to create the best community forms package. It could be another gadget in every Umbracian's tool belt. It might even be a game changer. Who knows!
Caveat
Do bear in mind that when making a product that directly competes with an Umbraco offering there are concomitant considerations. Primary among them being how to reach your target audience and where to host it. It wouldn't be reasonable for the HQ to provide hosting for a competing product. Nor to have invested heavily in developing a passionate community over a decade to then promote and market a competing product on their community platform. That's reasonable, and also part of the terms of use for projects hosted on our.umbraco.org and in the package repository.
That means somewhat less visibility of your project with your target audience. Others have still gone forward and you can too, but give it some thought. You might want to look at packagegarden.com, for instance, if you are considering a commercial package for Umbraco. Or strike out on your own as uskinned.net have done. Or keep things on github and nuget.
Reboot
Or, try again to work with the HQ as they renew their efforts on Forms as Marc has done with the Grid.
If your needs or wants are beyond the scope of where Forms is headed then perhaps extension points can be added to Forms to allow you to make extension packages to add the increased functionality that wouldn't be part of the base Forms product. Forms gets stronger, sells better, meets the needs of more users, and community involvement can make it go even further. That's what's happened with uSync, for instance.
That way everyone wins. This is "our" umbraco after all.
After years in the Umbraco community I've found our greatest strength is in working together for everyone's benefit rather than going our separate ways. That's also our best hope for a strong future.
cheers, and thanks everyone for caring so much about Umbraco!
doug.
I doubt anyone can argue with your points. And I can assure you that the form editor I'll open source takes a radically different approach to forms than Contour/Umbraco Forms.
Hosting wise I'm fine with GitHub and NuGet. But for the sake of completeness (read: to satisfy my own curiosity), could you post a link to the terms you're referring to? I can't find them anywhere, not even when creating a new package.
A lot of opinions have been expressed so far, and I think it's great that there is enough interest to generate a discussion this extensive. With regard to any feelings that may have been hurt, I am sorry. I can be obtusely blunt at times, and when I encounter road blocks I can sometimes impetuously plow through them with less consideration than may be appropriate. It seems like that's happened here, and for that I apologize.
With regard to all of the opinions that have been expressed, rather than respond to each of them, I'll just jump straight to this:
This is what Formulate looks like today, after a couple more hours of work on my part. It "looks" much different from Umbraco Forms now. I'm a little surprised that the looks of it were used as the sole judgement of how "unique" it is as compared to Umbraco Forms, especially considering that this screen is only one of many. I would prefer that this book not be judged by its cover, so to speak.
Keep in mind that this is fairly standard for Umbraco functionality (all that really exists is a section, a dashboard, and a tree with a few root nodes), so I would be careful not to construe any similarities with Contour/Umbraco Forms as "borrowing" of intellectual property.
Formulate is in the SUPER early stages right now. It is going to evolve drastically before it's done.
That being said, can we all judge Formulate based on its actual merits and not a superficial comparison? To me, that means any judgement would have to wait until it is closer to completion. I welcome ideas and opinions at any point, but I don't see the point in inflammatory remarks.
Since one of the main points of contention is that there is a perception that Formulate is essentially a clone of Umbraco Forms, I'd like to lay that idea to rest right now so that we can all move on and not let territory conflicts bog down the community and impede progress:
Umbraco Forms is geared toward non-technical users. Formulate is geared toward developers.
Umbraco Forms tightly couples layout and structure for the sake of simplicity (e.g., the new Grid layout built into the form builder). Formulate will decouple these concepts for the sake of flexibility (see the "Forms" and "Layout" icons in my new screenshot).
Umbraco Forms has a huge strategic advantage in marketing (e.g., a "Forms" icon is built into the Umbraco core, umbraco.com is marketing Umbraco Forms, and Umbraco Forms is a "core-approved" package which will apparently come with UaaS). Formulate will be like any other package. Only someone with very extensive experience would be in a position to choose Formulate. Formulate won't be taking much of Umbraco Forms' market share; it will simply be a safety net for highly technical users who aren't getting the kind of flexibility they need out of Umbraco Forms.
I think Umbraco Forms and Formulate can peacefully co-exist; moreover, I think Formulate will only serve to bolster the community. Formulate will not be an Umbraco Forms replacement (contrary to my original post, which was partially fueled by frustration). It will be an Umbraco Forms alternative.
With enough time, my hope is that Umbraco Forms will become the premier package for Umbraco form building that everyone loves to use. Until then, I'm going to keep plugging away on Formulate and use it for the day-to-day business needs of the company I work for. If the Umbraco core team would like to use any code or ideas from Formulate, they have my express permission to use anything at all they would like. I would be ecstatic if my ideas or code made their way into an Umbraco core code base.
I hope this clears the air. If there are still considerations anybody would like a response to, please let me know. Thank you for your time, and I look forward to a future where Formulate and Umbraco Forms exist side-by-side in an Umbraco that embraces all of the community, whether they are looking for flexible or friendly solutions.
Here are my $0.02 regarding Contour. Also, a disclaimer, I work with Nick Westby. Trust me, he's as adamant an evangelist of Umbraco as I know.
Regarding Contour: My experience with it is that it is great if you want to publish a rather simple form quickly for the client. I have noticed a number of issues with it however.
One of the largest issues I'm dealing with right now actually is that if the form is large, or if there are many edits to the form, it starts to give the message "Form save failed." However, surprisingly, the changes you made will appear on the front end. But when I go back to edit the form again (our clients can be very particular), the form fields and fieldsets will have vanished entirely from the backend. Checking the front end will generate a rendering error on the page, and, no form. So then I have to delete the form entirely, node and all, and re-create it. Sometimes even this doesn't work. This is the situation I'm in right now. I will be submitting a bug report with screenshots when I get a chance.
First off - this looks great. I agree that the current versions of Contour are lacking and a new and improved tool would be wonderful.
Our biggest issue with Contour is the performance. We've run extensive performance monitoring on it and for a simple 1 field form, Contour makes around 50 sql calls. For a 7 field form, this comes out to about 275 sql hits. That's pretty crazy.
Have you done performance testing on Formulate yet? If so, we'd be curious to see your results.
Also, do you plan on having a migration option to migrate current Contour forms to Formulate?? That would be wonderful.
Yeah, I have also noticed performance issues with Contour. I'm currently dealing with a 90+ field form that is taking around 15 seconds to submit, which is probably related to the 1,600 SQL queries and 17,000 lines written to the Umbraco licensing log file per submission. To the core team's credit, they said they are working on part of that issue (specifically, the licensing log portion).
Formulate isn't far enough along yet to do performance testing (submissions are not yet implemented). However, everything will be swappable. For now, all of my data layers are file system JSON based (e.g., the form and layout persistence). As time permits, I will be building more options for data layers.
No, I do not plan on building a migration option from Contour or Umbraco Forms to Formulate. I will be focusing my time on building something new and will leave support of Contour/Umbraco Forms to the core team.
Being new to Umbraco and the community, and having just now finished reading this entire thread, I want to say that overall I'm impressed with this discussion, as I feel like nearly everyone here has spoken both openly, and professionally. That's quite a feat for this kind of discussion.
But for a product that lays claim to "the friendliest community," I must confess I have been severely put off by founder Niels Hartvig's "you're no longer welcome here" comment and subsequent defensive attitude.
I take no position here on the topic in question, but I do find myself questioning the stance of an organization that can make such a claim on the one hand, and issue such a bold "excommunication" (to borrow a term used by others in this thread) on the other hand. I find it confusing, at any rate. Where does the "friendly" bit come in?
Deepest apologies if this comes across as antagonistic, that's not at all my intent. I'm just genuinely uncertain as to how I ought to interpret all of this. Thanks.
I've added enough documentation to get you all up and running, but I will be adding much more over the coming weeks. Still, don't let that stop you from posting your questions; I'll be sure to prioritize the documentation based on your interests.
By the way, if you happen to like Formulate, please do vote for it, as that will help it to appear in the Umbraco package repository faster:
And if you really, really like it, I would hugely appreciate if you share a link to Formulate (http://www.formulate.rocks/) on various social networks (Twitter, Facebook, LinkedIn, etc.).
Thanks again everybody for your interest! If there's anything I can do to make Formulate work for you, don't hesitate to let me know. For the social among you, you can do that at any of these links:
If you have the need for it and some time to allocate toward implementing it, I would love to have that as a feature. If it's not urgent, you can also vote on the above issue and I may prioritize it before other issues.
Replacing Contour (Umbraco Forms) with Something Better
TLDR: Contour (which is being supplanted by Umbraco Forms) has a bunch of problems, and I'd like to create a better open source form builder so I never have to use Contour again. I'd like your feedback to decide what to include in this new tool.
Overview
When I create this Contour replacement, I'd like to make sure it is built “right”. For that reason, I'm identifying problems with Contour and Umbraco Forms, and coming up with some features I'd like for this new tool to have. However, I have mostly experience with Contour, so I'd like to see if any of you know of things Umbraco Forms can do that Contour can't. Also, I'd like to know what you want so this tool can be useful to the entire community. I've already asked some coworkers what they think, but I want to know what you think as well.
Issues with Contour
These are the issues I've identified with Contour.
Umbraco Forms Research
I wanted to be sure I wasn't replacing Contour for no reason, so I wanted to look into the differences between Contour and Umbraco Forms. Here are my notes.
Ideas for an Ideal Contour Replacement
Here are my ideas to improve upon Contour.
What do You Think?
I'd like to hear your ideas for this project (see questions below image).
Are there some issues with Contour that I missed? Is there a killer feature you'd like this new tool to support? Have I misidentified issues or are some of them fixed in Umbraco Forms? Any other comments or ideas?
I made a quick wireframe of what I imagine the interface looking like in Umbraco:
Comment author was deleted
Nicholas,
It seems you have your work cut out for you. I think you've enumerated the problem domain quite extensively.
While I've experienced mixed feelings with Contour, I've ultimately decided that making MVC forms is (for me) way easier than trying to build a form engine like Contour.
Also, Contour is (I think) for clients that need to build their own form without the need for the agency/developer to modify each time a tweak is needed. That being said, it doesn't really come up that often in my use-cases.
And while I'm not trying to talk you out of it, whenever the need does arise for creating arbitrary trivial forms; I typically use Wufoo or something similar and just create an API endpoint for the forms to POST to. This is only when I need a non-tech user to manage the form.
Often times when I build a low-volume form I'll have the controller create a doctype programmatically and save the results there. If it's a high-volume form, I'll use a DB implementation similar to one of my old packages: https://our.umbraco.org/projects/backoffice-extensions/form-storage/
I can't offer you much other than the following (just spitballing):
Anyway, like I said you have your work cut out for you :)
In the meantime I will just use my usual tricks.
Good luck,
Kevin
Hi Kevin,
TLDR: Skip to the list at the bottom.
Thanks for your thoughtful reply. Indeed, I expect it will take me several full-time weeks to implement (i.e., it's not a superficial task). The other thing I like about a form builder (other than designing forms) is the reporting of entries and the workflows (e.g., sending emails and connecting to systems like Salesforce). That allows clients to grow and change their system without having developers be a barrier.
I like your idea to allow submissions via HTTP POSTs. That'd allow for things like forms on an iOS app that can submit to the website (i.e., there'd be no need for an Umbraco context).
And regarding making the storage provider based, my plan was to completely remove the storage from the base functionality and make the storage instead be a workflow step that gets added to all newly created forms by default. That way, you can swap out where data gets stored, or entirely remove storage of data. See "Data store workflow" above. One could also have entries stored to content nodes with a new workflow type.
Not sure I understand your suggestion for making the front-end interchangeable. If you had a Wufoo form, wouldn't that submit to the Wufoo server? Or maybe they have an option to design forms that submit to the website they reside on? If that's the case, then that makes sense (i.e., you could build the form with this tool, then use whatever arbitrary markup to create the frontend of the form, so long as it submits to the server).
I don't think I mentioned it (other than mentioning the "clumsy view alternatives" Contour supports), but it's shown in my wireframe that I intend to create form templates. The idea is that you can use different razor partials to render the forms. And that rather than having a GUID to choose the razor partial, the content editor would choose a default in a drop down (or whatever) and a developer could override that when rendering the form.
When you say "paginated JSON", I assume you mean for the form entries. That makes sense. That's probably how I'd implement it anyway (i.e., as an UmbracoAuthorizedJsonController that returns paginated JSON data).
Thanks again and let me know if you think of anything else.
Summary
Here is a summary of the above ideas to save others some reading:
Would it be worth talking to Tim Geyssens (lead dev of Umbraco Forms) and seeing whether they would be willing to open source the project? That would save a lot of work as you could collaborate. I imagine Umbraco could still sell it as a commercial package with support, even if it was open-sourced.
Don't think they'd bite. Pretty sure people have asked for that over the years, though they haven't been willing to give it a try yet and they mention here that their modus operandi is closed source: http://umbraco.com/help-and-support/customer-area/contour-support-and-download/license-questions
Besides, my guess is modifying their Contour/Umbraco Forms to support all the stuff I want to would be more work than starting from scratch.
That being said, I'm open to figuring something out if they happen across this thread and are open to changing the way they do things.
Went ahead and asked for them to open source Umbraco Forms just for the heck of it: http://issues.umbraco.org/issue/CON-809
Didn't i just read or hear somewhere that contour WAS going opensource?
I doubt it. I can't find any mention of that and this page says the following: http://umbraco.com/help-and-support/customer-area/contour-support-and-download/license-questions
Perhaps you are referring to Umbraco Forms, which is simply a new incarnation of Contour with a different name and a supposedly different codebase.
Comment author was deleted
@Nicholas
Re:Wufoo (and the like)
Wufoo stores the form values locally then will kindly post the values to a URI of your choice over SSL.
Not the primary option for what you're trying to do, just a way to accept form data from 'anywhere'. The key is to decouple the storage API from the UI is all.
@dan, Re: collaboration, that would be ideal if they're up for it.
Actually, there was talk on Twitter about whether Umbraco Forms should be added to Umbraco core and, therefore, free and open-source:
https://twitter.com/timgeyssens/status/481319648118726656
I'm not sure why this didn't happen. Would be interesting to hear Core's view.
I definitely like the idea of decoupling data sources from forms.
As mentioned on the issue tracker by Niels - then the forms/contour/courier packages helps us pay for developing the cms.
So no matter how much we actually like and prefer the open source model - its is not a financial viable solution currently, bills has to be paid and all that.
I think we also need to remember that this product is approximately £60. We've just replaced our corporate eforms system which was costing us £6000 annually "Achieve Forms" with contour on
https://forms.merthyr.gov.uk/
Even though we are yet to do anything really complicated I can't complain with the massive saving I've just made my manager.
Sure, Contour has its uses. In some cases, it causes more problems than it solves. And trying to work around problems increases developer time, which costs an employer money. That $140 can quickly turn into $5,000, which is important if you make lots of websites with lots of forms. And then there are the reputational costs of having to tell a client "nope, can't do that" because of the limitations of Contour, which is hard to put a dollar amount on.
Note that I'm not bashing on Contour because I hate it. I'm identifying its deficiencies so I can build a tool which remedies them.
Hi Nicholas
It sounds like quite a Utopian idea and good luck if you decide to pursue this.
Personally though I think you may be a little over critical of contour/forms. Many of the issues you list are still achievable if you use the APIs. I agree documentation is very poor, but I have been able to leverage quite a lot this way.
Despite being a tool targeted at end users it's still very flexible for developers.
Sadly UF lost some of the features I really liked in Contour, but some are slowly returning, while others were arguably over engineered anyway!
One of the new aspects of UF really like, is forms no longer reside in the database and are now created as xml files. You can easily copy and deploy these to other installations and makes GUID re-use easy in code.
The views are also much easier to customise compared to Contour.
Regards Martin
Hi Martin,
Sure, I can achieve most of that given Contour's current implementation, but the issue is that the solutions are quirky (e.g., prone to failure or come with tradeoffs) and take lots of time. Here are a couple issues I've had recently, for example:
So most things are possible, but are much harder than they should be. And I agree that there was some over-engineering in Contour.
I was unaware that Umbraco Forms stores forms in files now. That is an interesting idea. Perhaps the Contour replacement could allow for them to be stored anywhere (maybe defaulting to the file system, but also including an option to store in the database).
How so? I haven't really used Umbraco Forms yet; is it still that funky GUID system to use a different CSHTML file?
Thanks for the feedback.
Hi Nicholas
I have spent a significant effort moving our corporate websites up to 7.2.8. These sites started on 4.0.4.2 over 5 years ago and over time they have been upgraded to 4.7.2 then 4.11.10 then 6.2.5 and finally to 7. It's been a mammoth effort moving the sites on, but we now build in VS / nuget so upgrades are much easier.
We too used Courier, initially 1.3 but as soon as version 2 appeared and we started moving to higher versions of Umbraco, we had to give up on it, Courier was simply too unreliable for end-users. But we stuck with Contour and i'm glad we did. Every now and then I'll check a recent build of Courier, but my opinion of it still hasn't changed.
Umbraco forms is a simpler implementation, code first has gone (which I did like and use) along with a lot of the Db complexity. I mentioned much of the structure is now shelled out to files...I got it slightly wrong it's JSON (even better :-) ). Json for the forms, for the prevalues, for the workflows and datasources. I see this as a massive improvement as it makes transferring forms to other builds easy. Still GUID based though, but thankfully I've found my custom code in Contour was relatively transferable to UF and I didn't have to scrap much of it.
It sounds to me like you're maybe trying to do things with Contour which is pushing the boundaries of its original intent. At the end of the day it is a tool for end-users with a straight forward interface for average data input. Arguably judging by the amount of time it has taken you to leverage Contour, it might have been better spent building a custom form with a SurfaceController & Partial view.
Personally, i've not had a lot of difficulty getting my forms to look good in Contour, a dash of BootStrap and things quickly fall into line and look consistent. The views in Umbraco forms have been simplified a little, but the implementation is still quite similar to Contour.
I'm not quite sure what you meant by using a different CSHTML files? I've only ever needed the one main template (master) and the built in fieldtypes. Sure i've modified them to fit with BootStrap, but the rest (each form) is built in the GUI.
Regards
Martin.
Hi Martin,
Some forms will need a particular feature specific to that form, and it's easier to build an entirely different template for that form rather than implement a custom field type and all the work that may go along with that. One example is this form: https://www.accuride.com/en-us/resources/downloads/literature-request-registration/woodworking-architectural-literature-request
Basically has a complicated checkbox list (each one potentially containing an image/summary/header/download). It is easier to build a different form for something like that (though, I may not have for that one in particular, the idea is that sometimes you just need some custom markup for a form different from the other forms on that site).
The way Contour facilitates this is pretty weird. To use that custom view, you must create a CSHTML with the GUID of the form in the name (e.g., Form.38403409343-336abc-233424-db354.cshtml).
That's one way of looking at it. Basically, I'm trying to build something which improves upon it and is easier to use and which provides more options to solve problems (including making it open source so people can fix problems themselves).
I do that sometimes. It would be a great option if I didn't have to reimplement the validation logic and if there were some more reliable way of identifying fields than by caption (and less environment-specific than GUID's). And of course when I do that and just submit the data using the Contour API, any changes to the Contour form may potentially break the form I've built.
I agree that Courier is extremely unreliable. In fact, I submitted an issue (to the helpdesk) and the official response was basically "can't reproduce". I also outlined part of the issue on the issue tracker, and haven't heard back yet, even though it's a critical issue (Courier fails to work): http://issues.umbraco.org/issue/COU-158 . My hope is that since they are now dogfooding Courier with umbraco.com, they will hopefully improve its reliability.
Thanks again for all the food for thought.
Another few ideas I'll toss here:
Some more ideas:
Oh...! Are we creating forms now? I've had a private forms project going since 7.1.something, which HQ kindly persuaded me not to open source, to keep the revenue stream from Courier (Umbraco Forms) going. But if there's going to be a community driven forms project, I'll be happy to open source mine too.
I've taken quite a different approach to forms in that my project is essentially a property editor. Thus the form itself becomes just another part of a content page. In my experience this makes for very happy editors.
That looks neat! Note that I haven't talked with HQ about this; it's just something I'm planning on doing.
Also, I'd be interested in looking at your version, so that would be great if you open sourced it. Even if I don't use the code (which I might), it would be useful to see another perspective of how to implement a form builder.
Hi Kenn,
Just to chime in: I have deployed Contour to some of the websites I maintain for friends, team members, ...
I still very much like Contour/UForms as it allowed me to implement some reasonably quick solutions in the past.
However, it has also often caused me significant headaches as some long standing bugs remain unfixed, some of them quite trivial: e.g. this issue.
Even though we are dealing with a commercial project, and some support might be expected, there is actually no clear cut or at least a somewhat deterministic way to get issues addressed. Sure, one can file a bug report and I have done so many times. Sadly however, that is no guarantee that anything actually gets fixed.
Now, I understand that the revenue from Contour/UFroms/... is essential to keep the open source part of Umbraco going. I am very much grateful that we actually have Umbraco. I also understand that with a small team doing all the development, large customers probably come first. However, at the end of the day, when I pay for a product I sometimes expect more than I am currently getting from Contour. It is not really super cheap after all...
Nonetheless, it seems odd that they would actively try and block public release of competing packages.
From the looks of it, your solution seems nice. If I could take it for a spin and it would turn out to be good, I would be more than willing to pay good money for it (certainly as much as a current UForms license).
I would like to think that others might feel the same so if the people over at HQ strike a deal with you, I don't think their revenue model should necessarily be threatened...
In any case, a solution seems necessary here...
Hi guys,
I barely skimmed most of this, but I wanted to add my two cents.
If you dig around a bit you'll find that most of the features you're discussing is more or less well implemented in Forms.
You've got the opportunity of adding workflows and custom form fields which should solve most of your needs. You can for instance easily add a captcha field type while we wait for official support, and honeypot is already there.
Besides that, it's all .net, so you can dotpeek or F12 your way to see all the code and more often than not override the behavior you need.
When you don't find what you need, I've found that HQ is more than willing to open up for customization where it's not supported, and there's nightly builds to use while you wait for the new release. Just get in touch.
Forms has the opportunity to be a really good tool if it gets the love it deserves, and the more of us using it the more it will have.
Hi Lars-Erik,
Thanks for taking the time to add your perspective; however, I disagree with much of what you've said, at least in my experience.
I've created plenty of workflows and custom form fields to work around the limitations of Contour. Also, regarding captchas and honeypots, note that I didn't say those aren't part of Contour; I mentioned those as things I'd like to support in my form builder.
And I imagine using dotPeek is technically against the license agreement of Contour (decompiling closed-source projects typically is). A much better way would be to have readily available source and good documentation. Especially considering that implementing something against an undocumented API may result in an upgrade breaking your implementation.
I have found HQ to be extremely slow in implementing my requests (or requests others have made already that I need), if they implement them at all. For example, here is a thread from over a year ago that they didn't even bother to respond to (and most of the items have not been addressed or have been addressed poorly): https://our.umbraco.org/forum/umbraco-pro/contour/56080-Suggestions-to-Improve-Contour
Contour has too many flaws and limitations, and the HQ team is too slow in iterating to be useful for my type of work, which involves developing new sites every couple months. Perhaps a few more offerings in the market will encourage them to improve their product, which would benefit everyone.
Hi again,
Sorry to hear you've had such bad experience. I guess we've had different circumstances and requirements when working with Forms.
Many of your points are quite valid and should definitely be addressed by HQ. I really hope they get Forms up to the same quality level as Core and have the time to give it as much love.
But it also depends on us buying the licenses and continuing discussions like this, including hammering in issues on the tracker.
If you really go ahead with a competing solution I wish you luck and good speed, but my ultimate hope is that Forms will win in the end. ;)
Lars,
The quality of a product should not depend on quantity sold. Saying that Forms will only improve if we buy more licenses is akin to McDonalds claiming their beef patties will be higher quality if they just sell more hamburgers.
What does help is not only discussion (as you said), but also the threat of a competing product, something you seemed to be discouraging in your earlier posts. Heck, it's not even just you. According to Kenn Jacobsen, HQ themselves is
preventingdiscouraging other forms software from being released. For an open source CMS, this is absurd on so many levels.The criticism of Umbraco Forms does not need a devils advocate when its inadequacies are so blatantly obvious by anyone who's purchased the package. The issues and lack of features are especially obvious when compared to its older sibling, Contour.
Rooting for the Forms monopoly is not the road to progress and Nicholas should be getting nothing BUT support for his endeavor. Keep it up, dude, you rock!
I mostly agree with what is being said here.
It can happen that there are resource constraints (i.e. not having enough resources to improve Contour).
However, if the product of Kenn would turn out to be better, why not strike a deal with him? Incorporate his product in Umbraco or perhaps even make him (co-) responsible for an official Umbraco Forms solution? This way, the revenue model of Umbraco would not be threatened (everybody understands they need to make money).
On the other hand, I cannot imagine much return customers for the current project, especially because of the issues and sometimes lacking documentation. So the question is: how much revenue would be lost from having open source competition?
As it stands now, I sometimes feel like having paid way to much for an essentially "beta-like" product with very little, if any, support.
A missed opportunity really. I do not have the time or perhaps skill to roll my own solution from scratch so I remain more than willing to invest in a good, headache free, forms solution.
Errr... before this gets out of hand, let me just clarify right away; HQ did actually ask me nicely. They didn't "prevent" me from releasing my forms project.
That being said, I do agree that progress and innovation rarely go hand in hand with a monopoly. But as long as the Umbraco development relies on the funding from the Pro licenses, it's a bit of a pickle to release alternatives to Umbraco Forms/Contour.
Hopefully UaaS will pick up and bring a new revenue stream to Umbraco, so we can develop alternatives with peace in mind.
My bad, that's been edited. The point still stands.
And Umbraco's monetization has never made sense to me. A monthly charge for outdated training videos? Really??
I really agree about the monopoly and competition stuff, guys. However, I support and appreciate that HQ needs money from something. I also happen to like builtin stuff, amongst others Forms. But of course I would like it to be "better" and more SOLID too.
With regards to that, there's a happy post from the main unicorn today:
https://our.umbraco.org/forum/umbraco-7/developing-umbraco-7-packages/69933-replacing-contour-umbraco-forms-with-something-better#comment-231007
:)
Hello! I want XAML on top of U!
Though I really enjoyed buying the Contour (Umbraco Forms) plugin, I partially understand Westby's problem. I recently ran into the situation that I wanted more ... My solution for my problem now is: As soon as I have some weeks time, I will investigate if it is convenient to use XAML with Umbraco. I want to study the old Xslt documentations for that.
If any experiences are available, I would be glad to collect them.
Note: XAML could anyhow (if on top of angular u jsx u else from what I read) improve the client backend/backoffice development process, but also the frontend aka mobile development process tremendously.
Sincerely
I don't understand. What does XAML (I assume you are referring to the kind used with, for example, WPF and Silverlight) have to do with Contour or the replacement I'm proposing?
For anybody who is curious, development on this project has started. Also, the tentative name is Formulate. Should be out in a few months.
http://www.formulate.rocks/
Interesting! Did you come to an understanding with Umbraco HQ?
Nope, I haven't spoken with Umbraco HQ. I suspect nothing has changed, however (e.g., probably still unwilling to open source Umbraco Forms).
By the way, would you be willing to share the code you've made for your form solution with me (or the community in general)? Would greatly help expedite the build of my version (e.g., I could use the drag drop functionality you seem to be using), and based on what I've seen so far you're doing some really interesting things I'd like to play with to get a feel for.
I would be open to hearing from Umbraco HQ if they have some interest in Formulate.
Until then, I'll continue building it assuming that they have no interest.
Also, IMO, they should not be discouraging people from building alternatives for their offerings. They should just provide sufficient value in their offerings that others prefer them over the alternatives others build.
At this point I would even consider buying Ken's stuff...
Nicholas,
Making something new is cool. Making a blunt rip-off is just not cool:
You're no longer welcome here.
/n
Hi Niels,
I'm new to Umbraco and probably the open source world as well, so I can claim a certain amount of ignorance to the process. So I'll defer to the community to educate me on how to participate in the open source world.
In that vein, what is considered a rip off in open source? Again, I may miss some value or doctrine that I've yet to be introduced to. But the screenshot you've posted tells me nothing about the source code, so maybe you can educate us as to the specific theft? Icon placement is all I see here. That aside, should I worry about using someone else's source code to bootstrap my projects (I'm not sure if that's what's happening here, just want to know for general knowledge)?
I guess I'm a little confused and just want to navigate all of this honorably. Thanks for any feedback you or others can provide to this new community member.
I'm assuming this is a joke, as what you're showing hardly demonstrates a rip-off; especially considering Formulate is a work-in-progress. Care to elaborate?
@Matthew Kirschner I'm not joking. It's a screenshot showing initial glimpse of a product organised exactly like Umbraco Forms and Contour.
The information organisation of Forms/Contour isn't random. As simple as it may look, it's a result of a lot of work in organising a lot of choices in a simple way.
I've spend more than a decade of my life keeping the Umbraco project alive.
Seeing this makes me incredibly sad and frustrated.
@Kris Janssen As I wrote, I don't mind at all that people are making alternatives. But I mind if people are making rip-offs of what we do.
I'm sorry you had bad experiences with Contour/Forms. We're aware that it and some clients didn't get the attention they deserved and we're building up an entirely new team for Forms, so a lot is happening.
If you have any specific bugs or frustrations with Contour or Forms, let me know -> [email protected].
Best,
Niels...
@Josh Cronkhite: I think you forgot to mention that you're Nicholas' colleague.
Anyway, this isn't about open or closed source. It's just about not ripping off other peoples work. You know - manners and all that jazz.
It's a simple, three folder structure for a project that barely has legs. Why not wait and see the bigger picture before condemning a contributing member of the Umbraco community? Your response is completely unwarranted.
For the record, Niels pulled that image from Nicholas' Github site for Formulate and is making his judgment call simply based on the folder structure. Below is a more complete snapshot from that page. Note the "Progress/Status" section.
Hi Niels,
I like Umbraco as much as everyone else here. I can imagine (but never really know) how difficult it might be to have started all of this and what it might take to keep things going.
That being said: you seem to be annoyed that somebody makes something that "looks" like Forms or Contour or whatever. The fact that it might work in an entirely different way under the hood is ignored. That seems a bit "Apple" vs "Samsung" ("slide to unlock" anyone?).
Although I still think it is for somewhat the wrong reasons, it is of course your good right to think this initiative is out of line. However, that does not seem to explain why other initiatives such as e.g. the one by Kenn were equally quelled. The little I have seen doesn't look like "Forms" at all...
Forms being what it is now, some competition would not hurt. A well-working alternative would easily get my Euros directed to it (how ever insignificant that financial contribution would be).
It is very hard to have an opinion about this without coming across as gratuitously critical and I really hope I will not be considered a troll but I still think your reaction is somewhat misguided.
@Kris: Allow me to quote Kenn from above:
Competition is always welcoming. We also have a great track-record of providing room and support for other alternatives to our products such as uSync, etc.
Umbraco as the free and open project most of us love (that being the core, the community site, CodeGarden, documentation, etc) doesn't makes itself. It's insanely expensive to run a project like this (I took a loan in my house to make it happen - that's how much I love this project).
At the HQ we do our best every single day. Just as most of the wonderful people making our community something special do. That's what keeps this wonderful project alive. High five those people rock.
@ Niels,
I agree with someone else's comment that this forum is probably not the best format to get to the bottom of this and I will not protract this discussion much longer.
But some parting thoughts:
Yes, you might have asked Kenn nicely but then again why was Kenn asked to not publish/distribute his alternative?
I could only imagine that it might be because might threaten your revenue model if it turned out to be better.
If it would be out there and turn out to be bad, no harm done. If it would be better, why not bring it into the fold?
I have paid good money for 3 Contour licenses. There is no alternative and I cannot help but feel that I have over paid. Mostly because of long standing issues that force me to use all sorts of workarounds.
If I could contribute to a solution, I would, be it with time, money or otherwise but the lack of progress indeed sometimes leaves me a bit frustrated. At one point I even resorted to bugging Tim directly but he also seems to be a very busy man and I can understand he cannot cater every request immediately. A potential solution should be more structural.
Whatever the truth may be, I hope this situation might eventually result in something positive: nicer forms in Umbraco!
Hi Niels,
Nicholas has been a colleague of mine for about a month and a half, and introduced me to Umbraco, but that's not my interest here. I truly am confused about the process. It seems he has reached out to HQ about this:
Further, this project has not been concealed or underhanded in any way that I can see. It's been proposed here in the community and matured with the feedback posted here. As a community of people who are obviously advocates of your product, maybe we can work together as a community and let cooler heads prevail? Statements like
seem very heavy-handed and knee-jerk reactionary, the opposite of what we need in a good community.
Umbraco is really cool. I've only been involved in using it for just under 2 months now, and it's value is self-evident. Let's not muddy the waters with emotionally charged responses, but rather better solutions.
We still haven't seen evidence of theft. Perhaps my colleague, Nicholas, can help us understand how the products differ if it's not clear.
In any case, we're human. It's easy to understand your reaction given your "blood, sweat, and tears" on Umbraco Forms. I don't think the community is unforgiving, from what I can tell, and would respect efforts by both parties to continue participating in work that benefits all of us.
Don't wish to interject, and I can see both sides have valid points, but arguing among ourselves doesn't seem to be the "Umbraco way".
Isn't it possible that all you guys could work together and help make something great? Cooperation instead of conflict?
well, i feel i have been lurking long enough.
as a long time member of this community and a big fan of the umbraco product(s) as well ;) i feel a duty to add to the conversation.
first, the premise of "can it be better" - of course it can... everything can always be better.
Next, the concept of "should we make an open source product to compete with a closed source product?" my answer is not in the SAME community or project. This, I believe is where the human aspect of the discussion comes in.
If the HQ were giving away free cars and they sold radios to help offset the cost of creating cars... would you try to sell car radios and risk putting the car company out of business?
if you want to listen to your own custom radio in your car... ROCK ON... the umbraco car lets you do that.. heck add custom speakers... new rims... trick that thing out... but if you want everyone to have your stereo in their car.. maybe make it for another car company that doesn't give away their vehicles for free.
To have a great forms product evolve - even as a pay product, you have to have a sweet ride to put it in. This is where UMBRACO fits into the conversation.
The HQ, along with the community has built a great product that they give to us. Sure we help make it better, keep it clean, etc. but it has been brought to maturity through the AWESOME folks at the HQ.
I honestly believe not that the car is rock solid, they will work on making the radio better. In a community like this, you have to respect the product, process and the people.
I do believe we are all welcome here... but you gotta play nice. The idea is great, don't get it twisted. It just isn't the right idea for this product, this community, heck this family.
Heck, maybe there is a job for you on the new umbraco forms team... who knows, but i think this is pretty bad form for you to take food out of the mouths of the HQ that has given us so much.
If you think it is harsh to say it that way... think about it... i am pretty sure they are not moonlighting at other gigs PLUS all the work they do for umbraco... this is their lively hood and guess what... forms/contour is a big piece of that right now and has been for a while.
Hoping we can move past this and get stronger as a community.
Thanks for reading... Bob Baty-Barr
Bob,
The for-money packages are probably indeed what keeps the Open Source project going. That and running Umbraco instances for customers/doing consulting.
However, if the for-money projects get in trouble because of issues, somewhat lesser quality/lack of polish that will eventually also result in lost revenue. Maybe some other CMS comes along with a much better forms package or whatever.
I think nobody here wants Niels or anybody else to lose income or go out of business.
Initiatives such as the ones being featured in this thread are just a strong warning sign that something is amiss specifically when it comes to the Forms project. Seemingly choosing to just quell the competition, although a temporary fix, is the wrong reaction in the long term.
Having bought multiple forms licences and actually wanting/needing more for other installations, I can currently only resort to voting with my wallet and not spend more until something better comes along ... but at the end of the day, that doesn't solve my problem. I would pay top dollar for a solution but there isn't any.
Sorry I wanted to vote for it once but I marked it as the solution as an admin by accident. I can't undo it. Sorry again.
unpleasant exchange of views to improve a product
Comment author was deleted
Might be going on a tangent here, but bear with me.
I suggest an open-space topic on the issue for the next CodeGarden (yep, I'm six months ahead of schedule).
@Niels, I realize this is unsolicited but I'd really like everyone to hug it out in the end. Hopefully this doesn't sound offensive.
I'd also like to propose some alternatives that might end with everyone getting some of what they want. The issue likely revolves around revenue and lack of resources (time, manpower, backlog length, etc). Most every company will struggle with each over time.
How about...
1) Invite select interested persons to the closed source projects to help out. For example Kenn and Nicholas would probably be willing pitch in on the current implementation because they have a need to advance these projects. It might just be pull requests, or it might be complete rewrites. Not everyone gets let in.
2) Get Umbraco TV content from the community (and keep it a paid service). It's probably rather difficult to keep these videos up to date. I know I'd personally produce content for free as a way to 'give back' to Umbraco. I just need to be given a topic and guidelines and I'll have a video returned. I would guess others would do it too. This could free up internal HQ resources for other items (backlog, closed source, UaaS, etc).
3) Perhaps most provocative... slow down the major/minor releases. New features are great, but each new minor version gives birth to many bugs. A stable version of Umbraco is more valuable to me than a new feature. Bugs require lots of love from the HQ. New versions obsolete videos and documentation. I'm not suggesting slowing down to 'Microsoft release' speed, but I'd rather see 20 patch releases in a year and one or two minor versions max. Those minor versions come well documented at release time. Closed source projects can get some much needed love. After all they are paying some of the bills. Nothing wrong with having a v7.3.x for 10 months and have a v7.4.0-beta for six months. It's ok to overlap the 'current' version and the beta at the same time. While I LOVE version 7, I'm dreading version 8. Mostly because it means we'll be missing certain functionality, documentation will lag and the usual pain of breaking changes. If someone absolutely can't live without a new feature, have them use the beta and it won't be actively supported until it's the 'current' version.
I just want us all to get along :)
I'm planning on releasing a new package myself soon and I don't want to have to lose sleep on how it might be received despite its benevolent intentions. I don't want to get voted off of "Umbraco Island".
Thanks for reading my post. #h5yr to all for being passionate and caring.
And @Bob, you 'da man!
I actually really like point 2, and would contribute to that without a doubt.
I love point #2 as well.
I'm brand new to Umbraco.. I just swiped the boss's card today for Umbraco.TV, and now I'm feeling a bit let down because the content doesn't seem quite as awesome or useful as I expected.
I don't say that to be negative or controversial, just to emphasize that as a newcomer, allowing the community to give back in this way seems like a fantastic idea. Seems like Umbracians love to share their knowledge, which is awesome, but a lot of the really great, informative, and up-to-date content out there is quite difficult to find, as it's on individual blogs and such.
Guess it's time I pitched in on this debate too.
@Kevin - thanks for your constructive and well meant input!
Forms handling is vital to any CMS. Even though forms may feel a bit old school to some of us, the customers usually expect to be able to reach out to their users easily using forms. Sitecore has Webforms for Marketeers and EPiServer has XForms, both of which really don't work that well, neither from a UX perspective, nor from a developer perspective. In other words, this is an area where Umbraco has a unique opportunity to shine above the rest. Only so far it hasn't really, which has driven some of us to create our own solutions.
I do expect that HQ will boost the work on Forms after this debate. I know they already set up a new team to work on Forms. So I'm not overly worried about the future of Forms.
It saddens me how HQ has reacted to this issue. Constructive critisism, or an objective discussion about the impact of a new forms project on the Umbraco economy, would have been so much nicer than branding Nicholas as "not welcome" and subsequent heated debate.
What worries me the most is how the package devs will react to this. I share exactly the same concern towards new contributions that Kevin mentions above. Having to fear being excommunicated from the Umbraco community is not going to inspire new, awesome packages.
@Kenn: As long as one doesn't behave as disrespectfully as seen in this thread, one shouldn't have anything to worry about. As I've previously mentioned in this thread, we have both welcomed and supported several alternatives to our products throughout the years. I've never seen that at any other place.
But this one crossed the line so deliberate and clearly, that it was easy to say not cool, not here.
All the best,
/n
@Niels:
The comments of Kenn were probably the most balanced of this whole discussion but after again reading this reaction I cannot help myself:
I too agree that perhaps the original posts of Nicholas were a bit strongly worded. Indeed the tone of these posts might make it seem more trivial than it really is to make a good forms plugin. He might have overdone it on the enthusiasm front.
Perhaps the medium of this forum is to blame: perhaps Nicholas is just very passionate about his initiative and really just means well. Everybody knows it is much easier to probe the real sentiments of a person when talking face to face instead of through written text. It is so easy to misinterpret written words.
That doesn't make some of the points raised any less valid so I would really like it if the focus shifts from the persons involved to some of the matters really at hand.
I do not have the numbers but I would suspect one of the issues with Forms is that it is likely extremely important to only a very small subset of specific users. I would therefore expect that the revenue it generates at this point is not as large as some of the other sources of income.
I might be totally wrong but if the above holds true it might explain why progress on getting some of the issues fixed is so slow: some of the things I encountered have been raised as early as 2013 and are still around. The forum is full topics dealing with these matters.
As a customer (however insignificant I might be) I feel well and truly left out in the cold. That cannot be right nor will it do the Umbraco business model much good in the long run.
And that brings me back to the one question that I still feel should be awarded with a well formulated answer that goes beyond "don't be rude":
Why would have asked to keep Kenn's work under wraps?
Is Forms really that big a part of your revenue stream? If so, who is buying it and aren't they experiencing issues then? Where do all these customers get support if I cannot seem to find a proper channel to get it myself? Between the issue tracker and this forum, what other support options do I have? As mentioned previously, I even went as far as contacting Tim directly at some point, which resulted in some quick patchwork but nothing fundamental.
I really do not intend to be impolite, obtuse or any other kind of negative. I too am very fond of Umbraco, the core product is lovely and the people working on it are very smart and couldn't receive possibly receive too much credit for what they do every day.
Nonetheless, it should still be possible to react better this this whole matter than this.
@Niels Just to clarify here, because a lot of this discussion revolves around the pros and cons of creating a new forms solution: Would HQ be OK with a community based forms solution being created, if it was indeed something radically different from Umbraco Forms?
Talking of Form Packages, we too have our own form package. We have tried Contour, but we could not work with that, as we wanted some small changes that we were prohibited from doing.
As part of building our form builder, we have looked at other form builders, of course, but our project is in no way a ripoff of Umbraco Forms. We are actually in the process of moving the form designer to the content section, so we can let Umbraco handle how to save it, and it will work with UaaS out of the box.
If you write your own section, I think you will have to write some Courier resolvers too.
Our focus is to make the form designer so easy to use, that we can give it to the editor, and they can use it with a minimum of education. While Umbraco Forms is powerful, it is certainly not easy to use. For that reason, I do not see our package as a rival, but more as a way to do a simple contact form easily.
If it agreed to do a community form editor, we might contribute our code too.
@Allan I completely disagree.
We have a marketing team that grows every year and all are given the keys to our Umbraco 7 installation and ALL use Umbraco forms after a relatively short demonstration.
None of them have expressed any concern over difficulty of use. In fact I would argue, forms in v7 is easier to use than Contour was in v6.
In contrast, I wouldn't impose Courier on ANY end user. From v2 onwards it immediately became a developers tool (for those out there who remember Courier 1.3!!!!). Unfortunately a very unreliable developers tool.
Please everyone read Bobs post marked as the solution, and follow your conscience (if you have one).
Martin
We do not have a marketing team, I have to teach how to use the form to every new customer. This is the time I am looking at - teaching it to someone who knows nothing about Umbraco.
I think I should have another look at Umbraco Forms. The last time we seriously used it, it was still called Courier, and as you say, that was more a development tool than a form editor.
I think it is very harsh, bordering on inflammatory, to suggest that I do not have a conscience! We have developed our own form package, that can do no where near the same things the official form package can, simply because it meets our needs a lot better. I would like you to subtract or clarify that part of your comment.
@Allan
I said please EVERYONE follow your conscience. Sorry that wasn't directed solely at you, so apologies there!
For you to completely understand the issues raised here, you do need to be an active user of the Umbraco teams products right up to the latest versions. Your reply suggests you are not.
Courier is the tool for passing content between dev/staging/production builds. Contour is the forms tool for v6 and Forms is the v7 replacement.
M.
First of, apologies accepted.
Second, yeah, for some reason, I always mix up the words Contour and Courier in my head, even though I know what both are. That adds an extra level of confusion. Sorry about that.
I still fail to see, how us developing our own form package, that meets our exact needs, is in some way against the spirit of Umbraco. I understand that the HQ needs money, and I am not against paying money for good packages. We started developing our own package a long time ago, back when we only had Contour as an option. We had several problems with Contour, and no way to fix them, so we developed our own. Our own package meets 95% of our needs, so we will keep using it. We even tell our customers, that if they want advanced forms, like multiple pages, or conditinal fields, we have to go for the commercial package.
Cheers.
@Allan
So are you saying your own forms solution provides the "simple" option to your customers and you sell forms as the "advanced" option???? Is that from a technical perspective or from an end-user UI/UX perspective?
What exactly does your own simpler solution do that the more advanced Umbraco Forms doesn't? What crucial pieces of functionality does it provide?
Intrigued.. M.
First of, let me repeat that I haven't really played around with Umbraco Forms. We had some major issues with Contour, where we simply weren't allowed to format the output the way we wanted, so we created our own package. I thought, mistakenly form what I can read in this thread, that Umbraco Forms was just a new version of Contour, so I will have to go and have a real look at it again. Nevertheless, by the time Umbraco Forms came out, we already had our own form package, that we can use for all simple forms we need. Our customers mostly needs contact forms, with the rare integration to CRM etc., and our own form covers this use case 100%, so why pay for something else?
When I say simpler, I mean simpler in the UX. We have deliberately kept the number of options to the absolute minimum. While this means there is a lot of things that cannot be done in our form compared to Umbraco Forms, it means that it only takes a few minutes to explain the UI.
We have also added our own spamfilter/honeypot, which we could not do in Contour, but I gather we might be able to do in Umbraco Forms, we simply haven't had the need to look into that.
From my cursory glance, I also think our email generator is easier to use, and we are working on making it even easier.
Examples of things our form package cannot do, and we would need Umbraco Forms to do that:
I should say, that we are based in Thailand, and the wages here are drastically different from the wages in Europe/USA, so we can do a lot of work for the price of an Umbraco Forms license.
I've spent the last 5 years working with Umbraco, and after following this thread from the start, I feel I need to chip in.
I've had many strong words with Per when he produced and released Courier 2.x and raised many issues with Tim on Contour/Forms versions. But despite my difficulties with these commercial products i've ALWAYS found solutions that I'm happy with.
In the example of Courier, the solution for me was to STOP using it. It just doesn't do "what it says on tin". I've continued to follow versions, but its still not reliable. Recently there has been an announcement to align courier with the core. So I hope it will solve the remaining issues and i'd be more than happy to pay for new licenses when its stable.
Contour/Forms on the other hand, I found generally to be a very good fit for our end users, with a relatively easy to use API when we needed to extend it. Generally I would say, "it does what it says on the tin" and it serves the purpose for which it was intended.
If we're to take away anything positive from this thread personally I feel @bob baty-barr post has the most appropriate analogy.
Ultimately for Umbraco to survive; Niels, Per, Shannon and the rest of the team HAVE to monetize the project. Free is great when it's just you in your bedroom!
People take some responsibility here for a project that will undoubtedly have put food into your mouths, for a lot less outlay than many of its competitors.
Sure the commercial products could be better, they could even be free! But the reality is Umbraco isn't run by robots! It's run by people who have the same needs as the people who use it.
Paying money for projects that provide REALLY useful extensibility beyond the core, should really be the norm. The most obvious demonstration of this is the vast majority of e-commerce packages. Simply because they monetize Umbraco is such an obvious way! It's really useful stuff that can make you and your clients a lot of money! It will have as many flaws as the free stuff, but it will increase your revenue.
Forms and Courier may not provide direct revenue streams, but they do add a huge amount of value to your commercial efforts!
Martin.
Perhaps we should keep the discussion with Forms/Contour and not involve Courier in the mix.
Also, I would keep away from statements like
In matters such as these, it is best to stick with facts and it is beyond me why the simple facts seem to get lost in lots of chatter:
Either way, at stage 3, ultimately revenue will be lost and nobody gains.
Judging from what I have read here and given the relative radio silence regarding the state of Contour/Forms (see here) I can only conclude that, until now, alternatives such as the package of Kenn are just being blocked (even if they were asked nicely) for fear of losing what little revenue might still come from Contour.
Sure, one could argue that there are workarounds for many issues and I too have been able to do really cool things with it that go far beyond what is supported out of the box (async forms, Markdown editors in forms, ...) but one could argue that, with so much personal effort being necessary, if the sticker price is still in line with what you get. I would argue that using Forms for non technical users is quite hard...
Maybe people that are closer to the Umbraco inner circle know more but us regular folk are in the dark.
There are multiple elements to the solution:
I would think these questions/considerations are not all that weird or unusual?
Umbraco Forms is very important to the revenue stream of the HQ and the majority of our customers actually like the product.
However, we've been very bad at managing proper support and fixes for those where the product didn't work (or wasn't right). Sometimes you'd get a fix half an hour after you reported an issue in an evening (wow!), but other times you'd hear nothing. There's no consistency, because we simply didn't had proper processes in place.
Reading through some of those old Contour/Forms threads are very painful and not what it should be a user of any product (open or closed).
Earlier this year we became conscious about the issues and we've been re-organising the team around Forms. I'd wish you could fix these things in a heartbeat but it takes time.
In terms of support, as Forms becomes a part of the UaaS offering which means that it'll get much more attention (needless to stress that it'll still be available as a standalone tool). It'll also be a part of the same operations flow we have for that product, so it doesn't rely on individuals.
In terms of focus, Forms gets more love for doing what I originally designed it to be - a form builder for people who weren't technical. It means it'll get better UX, get tightly integrated with the content section, have better reporting and easier out-of-the-box integration with popular services.
If Forms isn't the right tool for you, then I think it makes (a lot of) sense to spend time on making an alternative that works for you (and open source it as perhaps it works for others as well). But if not, I'd encourage people to use the energy on other areas where Umbraco and its ecosystem could be improved.
Love,
Niels...
Hi Niels (and everyone else).
Thanks for clarifying. I think you more or less just ended the discussion, and on a very happy note I might add. Everyone wins. Thank you.
For anyone still following this thread, I'll open source my forms editor sometime this month. Hopefully that will bring some Christmas joy.
Cheers,
-Kenn
Funnily, I've just read the '24 Days in Umbraco' article by Nicholas Westby and it's clear he is a passionate supporter of Umbraco. I don't think excommunication is the best way to resolve this dispute.
I really like what Kevin Giszewski says. It seems to me there are few key points that people agree on:
Isn't it rather obvious that everyone should be working together on this, rather than fighting, banning, or working on multiple rival products?
Like Kevin says, I'm sure a way could be found - either closed or open sourced - to allow people to contribute and still have a revenue stream for HQ.
Even if Forms was open-sourced, I'm sure many companies would still happily pay for a license for support, or easy installation as a package, or for training videos. Or just to help support the Umbraco project.
Also, couldn't it be made open-source but you still require a license to run it in production? The licensing code could be kept-closed. Maybe reward contributors with free licenses?
I'm sure there are ways if we just co-operate in the fashion the Umbraco community is famous for.
Hi Dan
Surely once the code is open any attempt to protect the revenue it provided is lost?
It would be a matter of trust that somebody has purchased a licence for a protected production version of forms, rather than simply deploying a compiled, possibly modified version of the source code.
In my experience licencing based on trust alone....isn't a good idea!
As I said, you could open-source the main code base but keep the license validation code closed (as a referenced DLL, for example). I'm sure determined people could work around this fairly easily, but would most companies really want to go and do this? Is it worth the time and effort to download, hack the source and then build and install rather than pay €99? Plus, as I said, there is also support benefits for license holders.
I don't know if you are aware but most of the forms code can actually be browsed using some form of "reflector", even if it is not open source. If you want to get the most out of it, the first thing you probably need to to is take a peek.
The licensing code is in fact obfuscated.
Forms not being open source really wasn't the issue in this whole story.
And indeed, why bother with all this reverse engineering malarkey if you could buy something that "just works".
Here's to hoping that the changes Niels more or less announced will come around soon and we can all just move along our merry ways...
Hi Dan
I'm sure there are plenty who would, even for the sake of 99eur! It wouldn't take much "hacking" either to allow the open source version to run in a production environment.
Its a lovely idea, based entirely on trust and it's giving away too much!
M.
As Bob expressed well, loads of us make money by using the free Umbraco software. Of course we want it better; our work becomes easier and faster and we make more profit. We rely on the HQ and core team to make great stuff for us to use in our businesses. I want to support them and contribute to the project and the larger ecosystem. That helps everyone. I don't mind buying Contour/Forms. It isn't expensive and even if it doesn't do everything I might like it's worth the money for the many times it meets the client's needs. If I need more than it does, I would probably hand-code those. Buying the Pro products helps to finance the larger project that gives me a better Umbraco for free.
You're right, though, Contour/Forms isn't the holy grail of forms packages right now. It hasn't gotten the attention it deserves for far too long. Your frustrations are shared by many. It would be wonderful if it were better. We all agree on that. The HQ has been aware of it and has been working to address that. Unfortunately the realities of running a project or business don't always allow for getting everything done as quickly and as well as we'd like. I can appreciate that even while I express my frustration with the results of reality. Fortunately progress is being made though the results aren't yet overly visible. Things are, and will continue to get, better in the Contour/Forms world. I'm very much looking forward to that.
How, then, do people like us who aren't part of the HQ and core teams help make things better for everyone? Or, since this thread has seemed to touch some raw nerves can I be allowed to make a few observations about ways we can inadvertently sabotage even the best of our ideas and intentions from being realized, and offer a possible way forward?
Attitude
Having been part of the community for nearly a decade and also being an American I've seen this sort of conversation happen before. I've even done it myself! Not that being an American is a problem, but as a global community I have to realize not everyone shares my biases and way of presenting my ideas in an overly strong/definitive way. I have too-often come across as arrogant, unfeeling, and critical, even when I was trying to be just the opposite. It's taken more than a few mis-steps to learn how to communicate with an international audience of people with their own backgrounds, experiences and ways of doing things without offending by making assumptions I naturally assume everyone should share.
At some level, I think much of this discussion is marred by attitude. Not intentional often times but it's there just the same. And that can make even our best ideas and intentions difficult for others to accept constructively.
It's something we all need to be aware of by thinking of others rather than ourselves first. And that’s not easy! Nobody is perfect in this regard but it's oh so important if we are to foster the kind of community we want to have.
Respect, politeness, working together, concern for one another, kindness, even love. These are some of the aspects of what makes us different than other communities and projects. Umbraco is the "friendly cms". The community site is called "our" rather than "my". It's about us. All of us. How can we all win? Even subtle attitudes and tone in speech and writing goes a very long way in building one another up rather than tearing one another down.
Attitude is key to how our words are received.
The HQ does listen, though perhaps like all of us with more attention when things are presented in a way that makes the words easier to swallow. For instance, Marc Stöcker gave a whole presentation at the #umbUKfest on how the Grid could be better. He could have done it in a negative or condescending tone and turned off the HQ from wanting to listen to his valid concerns and frustrations. Instead he was constructive and helpful. It has made all the difference. The HQ were really pleased to hear his thoughts. They've talked to him more since then to help make the Grid even better.
Uniqueness
Maybe "uniqueness" isn't quite the right term but hopefully you'll get the idea that not only are each of us different than one another, but so is what we have to offer back to the project and community. We can all have a positive impact in our own way.
The frustrations with Contour/Forms are valid. We would like it to be better. Much better. Do more complex things. And some are willing to put in a lot of effort to help. You feel you've been ignored. So you'll strike out on your own, which is also a valid response.
We've all built things ourselves to solve a client or project need. Sometimes it is so useful we share it back with others to make their lives easier, too. Yet we all approach things differently because of the needs of the project and because we have unique backgrounds, skills, time, and ways of thinking about things.
If anyone wants to make a product or package that "does forms" for Umbraco, that's awesome! Please do it. But please, make something unique. That's where power and real change are.
At the beginning of this thread the ideas were definitely unique and the wireframe, though drawing on some concepts from Contour/Forms was certainly derived from the ideas set out at the start. What was taking shape was something unique.
By the time there was a screenshot from github it was a visual clone of Contour/Forms with little more than a word change and a space added to turn Forms into Formulate.
That's neither unique nor true to the founding ideas. A clone, even with the goal of having more/better features, is still a clone. Even if the source code is written from scratch the concepts, naming, and base functionality are essentially identical. That's a problem at many levels from questions of legality to those of appropriateness. It just isn't the done thing, as they say here in England.
In the context of the Umbraco community, to make a look-alike is neither polite nor respectful. Especially without discussing the idea with the product owner beforehand. That might have saved a lot of bother and hurt feelings and poor responses, etc.
Going Forward
If I could be so bold as to offer my advice at this point… I'd say a forms package that is unique would be welcome by the community.
I don't want people working on a "Better Contour/Forms" package. I'll leave the HQ to get on with that.
I would, however, enjoy seeing "unique" forms packages. Ones that take a fundamentally different approach, tries to solve different problems and use cases, appeals to different kinds of users. Better, I'd love to see a collaboration between a number of interested parties to create the best community forms package. It could be another gadget in every Umbracian's tool belt. It might even be a game changer. Who knows!
Caveat
Do bear in mind that when making a product that directly competes with an Umbraco offering there are concomitant considerations. Primary among them being how to reach your target audience and where to host it. It wouldn't be reasonable for the HQ to provide hosting for a competing product. Nor to have invested heavily in developing a passionate community over a decade to then promote and market a competing product on their community platform. That's reasonable, and also part of the terms of use for projects hosted on our.umbraco.org and in the package repository.
That means somewhat less visibility of your project with your target audience. Others have still gone forward and you can too, but give it some thought. You might want to look at packagegarden.com, for instance, if you are considering a commercial package for Umbraco. Or strike out on your own as uskinned.net have done. Or keep things on github and nuget.
Reboot
Or, try again to work with the HQ as they renew their efforts on Forms as Marc has done with the Grid.
If your needs or wants are beyond the scope of where Forms is headed then perhaps extension points can be added to Forms to allow you to make extension packages to add the increased functionality that wouldn't be part of the base Forms product. Forms gets stronger, sells better, meets the needs of more users, and community involvement can make it go even further. That's what's happened with uSync, for instance.
That way everyone wins. This is "our" umbraco after all.
After years in the Umbraco community I've found our greatest strength is in working together for everyone's benefit rather than going our separate ways. That's also our best hope for a strong future.
cheers, and thanks everyone for caring so much about Umbraco!
doug.
Well spoken, Doug.
I doubt anyone can argue with your points. And I can assure you that the form editor I'll open source takes a radically different approach to forms than Contour/Umbraco Forms.
Hosting wise I'm fine with GitHub and NuGet. But for the sake of completeness (read: to satisfy my own curiosity), could you post a link to the terms you're referring to? I can't find them anywhere, not even when creating a new package.
A lot of opinions have been expressed so far, and I think it's great that there is enough interest to generate a discussion this extensive. With regard to any feelings that may have been hurt, I am sorry. I can be obtusely blunt at times, and when I encounter road blocks I can sometimes impetuously plow through them with less consideration than may be appropriate. It seems like that's happened here, and for that I apologize.
With regard to all of the opinions that have been expressed, rather than respond to each of them, I'll just jump straight to this:
This is what Formulate looks like today, after a couple more hours of work on my part. It "looks" much different from Umbraco Forms now. I'm a little surprised that the looks of it were used as the sole judgement of how "unique" it is as compared to Umbraco Forms, especially considering that this screen is only one of many. I would prefer that this book not be judged by its cover, so to speak.
Keep in mind that this is fairly standard for Umbraco functionality (all that really exists is a section, a dashboard, and a tree with a few root nodes), so I would be careful not to construe any similarities with Contour/Umbraco Forms as "borrowing" of intellectual property.
Formulate is in the SUPER early stages right now. It is going to evolve drastically before it's done.
That being said, can we all judge Formulate based on its actual merits and not a superficial comparison? To me, that means any judgement would have to wait until it is closer to completion. I welcome ideas and opinions at any point, but I don't see the point in inflammatory remarks.
Since one of the main points of contention is that there is a perception that Formulate is essentially a clone of Umbraco Forms, I'd like to lay that idea to rest right now so that we can all move on and not let territory conflicts bog down the community and impede progress:
I think Umbraco Forms and Formulate can peacefully co-exist; moreover, I think Formulate will only serve to bolster the community. Formulate will not be an Umbraco Forms replacement (contrary to my original post, which was partially fueled by frustration). It will be an Umbraco Forms alternative.
With enough time, my hope is that Umbraco Forms will become the premier package for Umbraco form building that everyone loves to use. Until then, I'm going to keep plugging away on Formulate and use it for the day-to-day business needs of the company I work for. If the Umbraco core team would like to use any code or ideas from Formulate, they have my express permission to use anything at all they would like. I would be ecstatic if my ideas or code made their way into an Umbraco core code base.
I hope this clears the air. If there are still considerations anybody would like a response to, please let me know. Thank you for your time, and I look forward to a future where Formulate and Umbraco Forms exist side-by-side in an Umbraco that embraces all of the community, whether they are looking for flexible or friendly solutions.
Here are my $0.02 regarding Contour. Also, a disclaimer, I work with Nick Westby. Trust me, he's as adamant an evangelist of Umbraco as I know.
Regarding Contour: My experience with it is that it is great if you want to publish a rather simple form quickly for the client. I have noticed a number of issues with it however.
One of the largest issues I'm dealing with right now actually is that if the form is large, or if there are many edits to the form, it starts to give the message "Form save failed." However, surprisingly, the changes you made will appear on the front end. But when I go back to edit the form again (our clients can be very particular), the form fields and fieldsets will have vanished entirely from the backend. Checking the front end will generate a rendering error on the page, and, no form. So then I have to delete the form entirely, node and all, and re-create it. Sometimes even this doesn't work. This is the situation I'm in right now. I will be submitting a bug report with screenshots when I get a chance.
As promised earlier in this thread, my Form Editor is now open sourced at https://github.com/kjac/FormEditor/ (check https://github.com/kjac/FormEditor/releases for a prebuilt Umbraco package).
Holy moly, that is awesome! Thanks, Kenn!
Hi Nicholas,
First off - this looks great. I agree that the current versions of Contour are lacking and a new and improved tool would be wonderful.
Our biggest issue with Contour is the performance. We've run extensive performance monitoring on it and for a simple 1 field form, Contour makes around 50 sql calls. For a 7 field form, this comes out to about 275 sql hits. That's pretty crazy.
Have you done performance testing on Formulate yet? If so, we'd be curious to see your results.
Also, do you plan on having a migration option to migrate current Contour forms to Formulate?? That would be wonderful.
Thanks and keep up the good work
Zac
Hi Zac,
Yeah, I have also noticed performance issues with Contour. I'm currently dealing with a 90+ field form that is taking around 15 seconds to submit, which is probably related to the 1,600 SQL queries and 17,000 lines written to the Umbraco licensing log file per submission. To the core team's credit, they said they are working on part of that issue (specifically, the licensing log portion).
Formulate isn't far enough along yet to do performance testing (submissions are not yet implemented). However, everything will be swappable. For now, all of my data layers are file system JSON based (e.g., the form and layout persistence). As time permits, I will be building more options for data layers.
No, I do not plan on building a migration option from Contour or Umbraco Forms to Formulate. I will be focusing my time on building something new and will leave support of Contour/Umbraco Forms to the core team.
Thanks for your interest.
Being new to Umbraco and the community, and having just now finished reading this entire thread, I want to say that overall I'm impressed with this discussion, as I feel like nearly everyone here has spoken both openly, and professionally. That's quite a feat for this kind of discussion.
But for a product that lays claim to "the friendliest community," I must confess I have been severely put off by founder Niels Hartvig's "you're no longer welcome here" comment and subsequent defensive attitude.
I take no position here on the topic in question, but I do find myself questioning the stance of an organization that can make such a claim on the one hand, and issue such a bold "excommunication" (to borrow a term used by others in this thread) on the other hand. I find it confusing, at any rate. Where does the "friendly" bit come in?
Deepest apologies if this comes across as antagonistic, that's not at all my intent. I'm just genuinely uncertain as to how I ought to interpret all of this. Thanks.
Exciting news, everyone. Formulate is now live!
I would love it if you would all try it out and give me feedback on the forum: https://our.umbraco.org/projects/backoffice-extensions/formulate/formulate-questions/
I've added enough documentation to get you all up and running, but I will be adding much more over the coming weeks. Still, don't let that stop you from posting your questions; I'll be sure to prioritize the documentation based on your interests.
By the way, if you happen to like Formulate, please do vote for it, as that will help it to appear in the Umbraco package repository faster:
And if you really, really like it, I would hugely appreciate if you share a link to Formulate (http://www.formulate.rocks/) on various social networks (Twitter, Facebook, LinkedIn, etc.).
Thanks again everybody for your interest! If there's anything I can do to make Formulate work for you, don't hesitate to let me know. For the social among you, you can do that at any of these links:
awesome. I am honestly game for open source because I can fix anything that comes up instead of waiting for umbraco forms team to do a fix
hi there...
it doesn't support captcha ??
Not at the moment, but if you need that Formulate is open to pull requests. In fact, CAPTCHA support was one of the first issues I created: https://github.com/rhythmagency/formulate/issues/2
If you have the need for it and some time to allocate toward implementing it, I would love to have that as a feature. If it's not urgent, you can also vote on the above issue and I may prioritize it before other issues.
Form Editor supports reCAPTCHA out of the box - it's all in the documentation.
Kenn
I wouldn't be doing my job by not evaluating your package. Does it work with webforms?
Ta
muirisog
Hey. Nope... well, I guess you could write your own rendering for WebForms if you really wanted to, but it's created for Razor.
I don't particularly recommend doing so, but Formulate can be modified to support web forms, as in this example: https://github.com/nicholas-westby/web-formulate
MuirisOG is already aware of that, but thought I'd mention it in case somebody else stumbles across this thread.
Further discussion on this here: https://our.umbraco.org/projects/backoffice-extensions/formulate/formulate-questions/81853-formulate-and-web-forms
is working on a reply...