retypeapp / retype

Retype is an ✨ ultra-high-performance✨ static site generator that builds a website based on simple text files.
https://retype.com
Other
1.06k stars 204 forks source link

Allow using Pro features with "retype start" #612

Closed patricklafrance closed 1 year ago

patricklafrance commented 1 year ago

Hello!

We just purchased an Enterprise license of Retype, and we are pleased with the additional features that we now have access too.

What bothers me thought, is that now, because we are using Retype Pro features, every developer who's working on our projects documentation websites must add the purchased Retype license key to his local wallet (our repository are public, we can't use the --secret CLI arg).

While I understand why such a requirement exist, for an organisation of 150 developpers like ours, it's painful to manage.

My proposition is to allow access to Retype Pro features without a license for retype start and only enforce the license requirement for Pro features when using retype build.

It could also be a great way to allow non paying users to try the Pro features.

Is this something that you would be willing to consider?

Thank you,

Patrick

geoffreymcgill commented 1 year ago

Is this something that you would be willing to consider?

Yes, this is functionality that we have discussed, and I think at one point we actually had it working this way. I would prefer that Retype did function this way, but...

The issue is how to make it SUPER OBVIOUS that you are using Retype Pro features in a non-pro session? Further complicated by features like outbound being enabled by default in Pro projects.

I 100% do not want to be accused of any bait and switch, and enabling the Pro features by default during retype start could easily trigger that reaction.

For non-pro projects with >100 pages, the following message is rendered to all pages during retype start:

Screen Shot 2023-08-30 at 12 15 42 PM

Something like the above could be added when Pro features are enabled, but with several Pro features being enabled by default, that would mean the message would be rendered for everyone. That is just not a good solution.

Another option is implementing a --pro flag that would unlock the Retype Pro features only during retype start. Startup would then require retype start --pro. Still not ideal for your scenario, but maybe this would be good to implement anyways.

Another option that I think could work well is creating a separate public license key that could be set in the retype.yml and committed to source control. The public key would only work during retype start and would not require any unique action from users of the project. By simply cloning the project and running retype start, the Pro features would be enabled.

I'll put some more thought into this too.

Let me know what you think.

patricklafrance commented 1 year ago

Thank you for the thorough explanation. I understand (and agree with) your main concern.

One think that I am wondering thought is why does some Pro features are enabled by default when a license key is applied? Personally, as a Pro user, the first thing that I did is go to the documentation, look at the Pro features, and manually enable does that I want.

For example, I explicitly enabled the outbound feature in the config file because I find it easier this way for the next developers to understand that this documentation website is using the outbound feature:

# Pro features
outbound:
    enabled: true
    icon: ""

Aside from that, I do like the explicit --pro CLI argument. It's easy to understand for the user and would prevent triggering a bad reaction from non Pro users.

I also like the banner idea. In fact, I was thinking about something similar to the banner, but instead outputted in the console when using retype start with Pro features without a valid Pro license.

geoffreymcgill commented 1 year ago

The new retype start --pro flag to start your Retype project in Pro mode has now been release in v3.5.0.

The start.pro: true project config has also been included in v3.5.0. The following sample demonstrates starting your project in Pro mode:

start:
  pro: true

The start: pro: true project config allows authors to have their users to clone a project and start in "pro mode" with only using the command retype start.

This "pro mode" trial mode is just for testing and include all the Retype Pro features, except poweredByRetype cannot be disabled and the 100 page max limit is still applied.

Hope this helps.

patricklafrance commented 1 year ago

Thank you 🙏