Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

cashlion's avatar

Spark: A Free Lifetime Team?

So I am very much interested in using Spark for its team/user scaffolding, initially, and would not be rolling out the billing piece for some time after the application is in use. This first 6 mos or so will really be a 'beta period' of sorts and those that will be using it during this time would ideally be part of a 'free lifetime team' even after the billing did start for new teams.

Is there a way to accomplish this with Spark? Ideally I'd like to forego setting up billing during this initial period but could do so if it's required. Any suggestions?

Thanks!

0 likes
6 replies
EventFellows's avatar

A very straight forward way that comes to mind seems to be the ->archived() method you can use for plans (see docs for details).

Simply create a free plan for your users now and let them use it. Once you introduce billing for others you set the initital free plan to archived (which closes it for new signup but keeps it for existing users)

This way they have an unlimited free plan until they cancel it.

Side note: You can only do one plan as Spark::freePlan() but you can have others with a price of 0 if you also need a free plan after your billing starts..

2 likes
dannydjones's avatar

Another possible solution would be to create a coupon that a gives 100% off, which you can pass to everyone you would like to access the product early, then at a later date you can set the coupon to not allow anyone else to use it.

This would also have the benefit of letting you limit the amount of people who get the free plan for life.

EventFellows's avatar

@dannydjones1994 This could also work, but be aware that it has been reported that the KPI dashboard of spark does not consider discounts when calculating renenue totals, etc. So in this setup all free users would be treated as fully paying in terms of the build in reporting.

1 like
tptompkins's avatar

@EventFellows You mentioned this:

Side note: You can only do one plan as Spark::freePlan() but you can have others with a price of 0 if you also need a free plan after your billing starts..

I have a free plan configured that's $0.00 and I'd like that to be the default plan that is selected using no card up front, but I can't figure out how to make that happen. My next plan up is $4 / mo and this ends up being the plan that is selected right after registering for a new account. Also, my free plan doesn't even show up in the subscription plans list in the settings section. If I change the price to $1, the plan shows up. If I switch it back to $0 it disappears. Any idea what I'm doing wrong?

Thanks!

EventFellows's avatar

You are not doing anything wrong.

Taylor has set it up this way in the blade views. In many places there is a condition price > 0 (or similar) hardcoded. If you want to change it you need to change the views' condtional setup.

Please or to participate in this conversation.