How many (front-end user) accounts can Kirby handle!?

I have always wondered when Kirby starts to flinch regarding front-end users, for instance for a membership site or app built with Kirby CMS… :thinking:

Therefore, I developed a very simple benchmark Plug-in to create and find users by URL routes:

The creation of users was kind of time-consuming, but on the other hand, it is not very likely that there will be 10000+ visitors coming on your website at the same time for front-end registration. :sweat_smile:
(Except for your post on Reddit or Co. goes viral. :grimacing:)

Users Creation Time
1 ~0 Second
100 ~9 Seconds
1000 ~1 Minute 25 Seconds
10.000 ~17 Minutes
50.000 ~1 Hour 50 Minutes 25 Seconds

In case you want to play around with 50.000 users without creating them manually by yourself, I uploaded them in a .zip file attached to the assets of the latest release. :v:

I also totally underestimated the writing consumption for Kirby accounts, since every single account yields four elements. One dedicated folder for the user itself and three files! So 50.000 accounts make 200.000 elements - 50.000 folders and 150.000 files. :exploding_head:

… And here are some (non-scientific) results for finding Kirby CMS accounts:

(Accounts can be either searched by Email or by an attribute)
$user = kirby()->user($email);


$user = kirby()->users()->findBy('Candidate', $candidate);

:green_circle: = Found
:red_circle: = Not Found

Users :green_circle: by Email * :red_circle: by Email * :green_circle: by Attribute * :red_circle: by Attribute *
1 ~0 ~0 ~0 ~0
100 ~0 ~0 ~0 ~0
1000 ~0 ~0 ~0 ~0
10.000 ~2 ±1 ~3 ±1 ~2 ±1 ~4 ±1
50.000 ~25 ±5 ~35 ±5 ~35 ±7 ~37 ±5

* (in Seconds)

Also some Excel charts for illustration:


Up to 1.000 front-end accounts should be no problem at all. Even for 10.000, it is okey-ish.
Of course, all the results are depending on your server. I did the test with Kirby´s Starterkit v3.5.7.1 on my local machine with an Intel i5-7300U and 8 GB RAM running laragon.

I hope you find those numbers as interesting as I do! :grin:

Have a great afternoon,