We will discuss it, thank you for the suggestion!
How do we define “make money with your product”? For example, I created the HASPone project, which is a fully-open-source hardware and software product which provides a touchscreen control panel for home automation. Everything in the project is MIT licensed, including the software, the electrical design components, and the mechanical components for the enclosure. One can checkout the git, send me no money, and build everything yourself.
However, you can also send me money and I’ll send you a completed unit, which can be handy for people without the time/skills/tools to build on on their own. I’m sending out the same project using the same code that you can download and make yourself for free, but I’m charging for materials and my time.
Is that still free? When dealing with hardware, the line between “free as in beer” and “free as in speech” can be pretty wide.
One monetization approach I find interesting is the one the Unity game engine uses.
Individuals, hobbyists and small businesses that have less than $100K of revenue or funds raised in the prior 12 months are eligible to use Unity Personal. (FAQ)
This greatly simplifies the task of determining what is considered a “free/noncommercial” product while also preventing the tool from being used for free in a heavily commercialized setting.
Make sure the free version can operate fully offline, no cloud or anything.
@luma
There is one thing that I can’t imagine. Let’s say we provide you a special license because your project is great. In exchange, you add a few lines in the README about the project uses EdgeLine. You have the editor and we have some marketing. Win-win.
But what if an external contributor wants to fix something.
- He can also use EdgeLine with the same license as you:
- will you give the password of EdgeLine to every contributor? It’s certainly not safe.
- will your account be an organization account? But then the contributors need to part of the organization somehow to checks if they can log in.
- Contributors can’t use EdgeLine, only plain LVGL:
- If you export the project again, the contributors’ changes will be overwritten.
@embeddedt
We also know Unity’s approach. The Personal license adds a Unity splash screen when your app starts and there are some limitations. It’s kind of the Free plan of EdgeLine.
Internet will be required to log in.
Thank you, no Edgeline for me in this case.
Looks like going to grow, but the bothering matter is the login. Not being rude, but going toward monetization? Although the one NXP provided seems more complete.
As @vahid_ajalluian has just mentioned, is there a reason why Internet is necessary? Looking at this from a commercial standpoint, it should be possible to fall back to the entirely free tier if there is no Internet connection.
I personally tend to stay away from free products that require cloud access unless cloud access is the whole point of using the software. In this case I don’t see why cloud access should be necessary except for verifying a license.
Hm, interesting idea and it seems really there is a need for the “offline mode”.
Wouldn’t it be an issue you have subscribed for the Professional plan and you had only Free features offline? E.g. limited number of screens?
@nagyrobi @vahid_ajalluian @embeddedt
Please tell me why is it a problem to use internet for logging in? We don’t need to follow others but it’s a “standard” concept for many large software.
If I understand your use case better it’s easier to come up with a good solution.
For a paid product I can understand requiring Internet to prevent piracy, but for the free version of a product, I would generally expect things to work without login/Internet. Maybe it would help if you could provide some insight in to why authentication is currently required even for the free version.
If you are concerned about binary modifications to allow use of paid features, one option is to ship a separate, more limited binary for free. One can’t patch something which doesn’t exist.
I too frowned at the need to register a separate online account for the alpha test… It just raises more questions when it is not clear why this would be required. People are more conscious about registering ‘free’ products these days:
- Is this information really needed?
- Is there any other data being sent besides the initial login?
e.g. like project details, NDA sensitive code, images, … - Is my data safe and treated according to GDPR?
- Will the data be shared?
These things should be handled in the license agreement.
When the use of a software is relying on an active internet connection it feels more like an online service. And we all know online services come-and-go, TOS change, features disappear, …
If you export the project again, the contributors’ changes will be overwritten.
I’m also still struggling with the value proposition and product placement. Is Edgeline going to replace the IDE? How does it integrate in the existing tool-chain, CI/CD and version control? What about my project when I stop paying or switch tiers? At the moment it seems to be like a quick prototyping tool.
A free and limited offline tier can help draw in users, build community awareness and guide people towards the full product. If the initial threshold is too big, you loose initial developers trying the software.
I wouldn’t say it is a “standard” for many large software, maybe a trend (and not a good one imho). It also depends on platform, vendor, price, etc… Even tools like Visual Studio Community Edition don’t require you to register upfront and can be used offline… It’s about expectations, not everyone expects to be online all the time just to use a software.
It seems the main concern is getting revenue. However when the value proposition is right, my experience is that people would pay for software that helps them save time and effort. Certainly the professional developers will be more keen, as they have totally different measures for valuing such a tool. If the tool creates even an air of vendor-lock-in, it will be harder to sell it to a larger audience.
My last concern is that whatever is decided upon for Edgeline might be a precursor for lvgl going forward, but I hope I’m wrong
Thank you for sharing this!
We discussed a lot of aspects of these questions.
Let’s break it down into smaller topics.
Why is it required to have an internet connection only for login?
Actually, it’s not required. It could also work that you log in once and your PC saves the end date of your subscription, the features enabled for you, etc. The validity and integrity of these data can be checked offline too.
Why is it required to register to use EdgeLine?
In the end, the user needs to register if he wants something other than the Free plan to bind the purchased plan to his account. So the question is: why the user needs to register only to try out a limited version of EdgeLine? Do you think it’s a real barrier? We have checked some other UI/graphics/3D editors and couldn’t find even a single one where you could use the SW without registering. SW development tools are different and they are usually free to use. However, you need to register to NXP or ST to get their IDE and SDKs.
How to handle custom code inside EdgeLine’s exported code?
If a button event has “Call function: my_func”, “my_func” and similar functions will be placed in a separate file. EdgeLine won’t remove any functions from there only adds new ones. So the user can clean up the unused/obsolete functions manually. (EdgeLine can mark the “orphan” functions that doesn’t have a counterpart in EdgeLine with a comment)
To aid mixing EdgeLine generated UI code with custom code we can add blocks similar to what you can see in CubeMX:
/*USER CODE BEGIN*/
/*USER CODE END*/
In these extension points, contributors can add custom code without using EdgeLine.
How to work with CI/CD and what is the workflow in general?
To avoid vendor lock and provide maximal flexibility our current approach is to export plain C files. You can version control them (along with the EdgeLine project files) and integrate them into CI/CD as you wish. It also means that by default EdgeLine won’t create ready-to-use CubeIDE or MCUXpresso projects Instead, the UI files can be added to your existing project. In the future certainly will be an option for generating drivers and whole projects in some form the main intention is to be platform agnostic as much as possible.
What’s the relationship between EdgeLine and LVGL? How they affect each other?
LVGL will work flawlessly without EdgeLine in the future too. EdgeLine is an optional extension to make UI development easier and faster. We are event targeting novice and non-developer people with EdgeLine. So in the end, it should be possible to create a whole UI (not the most complex one) without writing a single line of code. At the same time, we need to ensure that professional people with professional needs can use professional features. But all these seem doable.
At the current stage, EdgeLine is really not complete. That’s why it’s still in beta. The first step is to have the features every other UI editor has and then we can add the feature that will make a real difference (announcements coming soon ).
I hope it answered most of the questions. If there unclear points or concerns, please let me know!
Yes. If there is no technical reason why registration is required, I think it shouldn’t be required. The same goes for the Internet connection. Privacy is a very real concern nowadays and not requiring these things for free users would be a great step.
Thinking more about it I agree. We will keep this in mind for v1.0.
If any concerns come up I’ll post here.
Thanks, one thing I appreciate a lot here is the open discussions
So the question is: why the user needs to register only to try out a limited version of EdgeLine?
It boils down to expectations and trust. You deem it reasonable to expect the user to entrust his details before using your software. You may require this, no problem. All I say is that’s a leap of faith that some users are reluctant to give in advance. If the data is not used, why ask it? It puts you in the position to manage and safeguard data that’s not really needed. So, when I stop using the free software, can I ask to be removed from the database? Like I said, it just opens up all these unnecessary questions…
Do you think it’s a real barrier?
Yes, I really do. If this was just some tool I was downloading from the internet, for sure! However, because I’m already familiar with lvgl, and gave you the benefit of a doubt, I registered properly but reluctantly. Any other website would get some meaningless data and a throwaway email account… That’s just annoying for everybody!
We have checked some other UI/graphics/3D editors and couldn’t find even a single one where you could use the SW without registering.
Some for sure, but most certainly not all. I know one that’s free and doesn’t require an account but is vendor specific. Unfortunately it does a phone home, but devs know how to circumvent that . Maybe n00bs put up with these things more easily.
I have registered with ST to download one of their tools, also very reluctantly. I don’t have NXP devices, but I hear it’s the same there too. Espressif doesn’t require anything to get their toolset. I bought a wireless-tag, but refuse to use their online UI editor. I’ll write the code myself, thank you very much. If any of those asked or had an open forum, I would say the same thing. Not sure how much they would listen to their actual users though
Because other vendors do this is no justification to also go down that path, or guarantee that users will just put up with it. That’s my main argument. There will be others like @nagyrobi that won’t use Edgeline out of principle if it’s online only. Maybe this is an opportunity to make Edgeline stand out from the others…
Dear @kisvegabor
Some hardware design companies not reliably trust their employees. They fear from leakage of technical data from computerized source code to mechanical drawings. I have no problem while I am on my own.
@fvanroie
Thank you very much! All sounds very reasonable. I’ll discuss it with the other people around EdgeLine.
Hi,
Do you mean therefore there is no internet connection in some companies?
Well, in such companies, the system which has access to the internet is isolated from the ones which developers do their development on that.