@stacksfinder/mcp-server 1.5.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,1031 +1,2937 @@
1
1
  {
2
- "$version": "2.4.0",
3
- "$description": "Base scores for 32 technologies across 6 criteria (auto-generated + manual entries)",
4
- "$generatedAt": "2025-12-30T17:47:44.828Z",
5
- "technologies": {
6
- "stripe": {
7
- "id": "stripe",
8
- "name": "Stripe",
9
- "category": "payments",
10
- "url": "https://stripe.com",
11
- "scores": {
12
- "default": {
13
- "perf": 97,
14
- "dx": 94,
15
- "ecosystem": 98,
16
- "maintain": 81,
17
- "cost": 51,
18
- "compliance": 65
19
- },
20
- "mvp": {
21
- "perf": 94,
22
- "dx": 99,
23
- "ecosystem": 100,
24
- "maintain": 81,
25
- "cost": 51,
26
- "compliance": 65
27
- },
28
- "enterprise": {
29
- "perf": 97,
30
- "dx": 94,
31
- "ecosystem": 93,
32
- "maintain": 86,
33
- "cost": 56,
34
- "compliance": 75
35
- }
36
- }
37
- },
38
- "paddle": {
39
- "id": "paddle",
40
- "name": "Paddle",
41
- "category": "payments",
42
- "url": "https://paddle.com",
43
- "scores": {
44
- "default": {
45
- "perf": 95,
46
- "dx": 88,
47
- "ecosystem": 66,
48
- "maintain": 68,
49
- "cost": 41,
50
- "compliance": 99
51
- },
52
- "mvp": {
53
- "perf": 92,
54
- "dx": 93,
55
- "ecosystem": 69,
56
- "maintain": 68,
57
- "cost": 41,
58
- "compliance": 99
59
- },
60
- "enterprise": {
61
- "perf": 95,
62
- "dx": 88,
63
- "ecosystem": 61,
64
- "maintain": 73,
65
- "cost": 46,
66
- "compliance": 100
67
- }
68
- }
69
- },
70
- "lemonsqueezy": {
71
- "id": "lemonsqueezy",
72
- "name": "LemonSqueezy",
73
- "category": "payments",
74
- "url": "https://lemonsqueezy.com",
75
- "scores": {
76
- "default": {
77
- "perf": 92,
78
- "dx": 85,
79
- "ecosystem": 58,
80
- "maintain": 40,
81
- "cost": 44,
82
- "compliance": 96
83
- },
84
- "mvp": {
85
- "perf": 89,
86
- "dx": 90,
87
- "ecosystem": 61,
88
- "maintain": 40,
89
- "cost": 44,
90
- "compliance": 96
91
- },
92
- "enterprise": {
93
- "perf": 92,
94
- "dx": 85,
95
- "ecosystem": 53,
96
- "maintain": 45,
97
- "cost": 49,
98
- "compliance": 100
99
- }
100
- }
101
- },
102
- "gumroad": {
103
- "id": "gumroad",
104
- "name": "Gumroad",
105
- "category": "payments",
106
- "url": "https://gumroad.com",
107
- "scores": {
108
- "default": {
109
- "perf": 79,
110
- "dx": 60,
111
- "ecosystem": 50,
112
- "maintain": 68,
113
- "cost": 32,
114
- "compliance": 79
115
- },
116
- "mvp": {
117
- "perf": 76,
118
- "dx": 65,
119
- "ecosystem": 53,
120
- "maintain": 68,
121
- "cost": 32,
122
- "compliance": 79
123
- },
124
- "enterprise": {
125
- "perf": 79,
126
- "dx": 60,
127
- "ecosystem": 45,
128
- "maintain": 73,
129
- "cost": 37,
130
- "compliance": 89
131
- }
132
- }
133
- },
134
- "neon": {
135
- "id": "neon",
136
- "name": "Neon",
137
- "category": "database",
138
- "url": "https://neon.tech",
139
- "scores": {
140
- "default": {
141
- "perf": 85,
142
- "dx": 97,
143
- "ecosystem": 75,
144
- "maintain": 48,
145
- "cost": 88,
146
- "compliance": 93
147
- },
148
- "mvp": {
149
- "perf": 82,
150
- "dx": 100,
151
- "ecosystem": 78,
152
- "maintain": 48,
153
- "cost": 88,
154
- "compliance": 93
155
- },
156
- "enterprise": {
157
- "perf": 85,
158
- "dx": 97,
159
- "ecosystem": 70,
160
- "maintain": 53,
161
- "cost": 93,
162
- "compliance": 100
163
- }
164
- }
165
- },
166
- "sveltekit": {
167
- "id": "sveltekit",
168
- "name": "SvelteKit",
169
- "category": "meta-framework",
170
- "url": "https://kit.svelte.dev",
171
- "scores": {
172
- "default": {
173
- "perf": 54,
174
- "dx": 96,
175
- "ecosystem": 100,
176
- "maintain": 73,
177
- "cost": 90,
178
- "compliance": 85
179
- },
180
- "mvp": {
181
- "perf": 51,
182
- "dx": 100,
183
- "ecosystem": 100,
184
- "maintain": 73,
185
- "cost": 90,
186
- "compliance": 85
187
- },
188
- "enterprise": {
189
- "perf": 54,
190
- "dx": 96,
191
- "ecosystem": 95,
192
- "maintain": 78,
193
- "cost": 95,
194
- "compliance": 95
195
- }
196
- }
197
- },
198
- "nextjs": {
199
- "id": "nextjs",
200
- "name": "Next.js",
201
- "category": "meta-framework",
202
- "url": "https://nextjs.org",
203
- "scores": {
204
- "default": {
205
- "perf": 68,
206
- "dx": 90,
207
- "ecosystem": 100,
208
- "maintain": 80,
209
- "cost": 90,
210
- "compliance": 85
211
- },
212
- "mvp": {
213
- "perf": 65,
214
- "dx": 95,
215
- "ecosystem": 100,
216
- "maintain": 80,
217
- "cost": 90,
218
- "compliance": 85
219
- },
220
- "enterprise": {
221
- "perf": 68,
222
- "dx": 90,
223
- "ecosystem": 95,
224
- "maintain": 85,
225
- "cost": 95,
226
- "compliance": 95
227
- }
228
- }
229
- },
230
- "nuxt": {
231
- "id": "nuxt",
232
- "name": "Nuxt",
233
- "category": "meta-framework",
234
- "url": "https://nuxt.com",
235
- "scores": {
236
- "default": {
237
- "perf": 30,
238
- "dx": 96,
239
- "ecosystem": 100,
240
- "maintain": 78,
241
- "cost": 90,
242
- "compliance": 85
243
- },
244
- "mvp": {
245
- "perf": 27,
246
- "dx": 100,
247
- "ecosystem": 100,
248
- "maintain": 78,
249
- "cost": 90,
250
- "compliance": 85
251
- },
252
- "enterprise": {
253
- "perf": 30,
254
- "dx": 96,
255
- "ecosystem": 95,
256
- "maintain": 83,
257
- "cost": 95,
258
- "compliance": 95
259
- }
260
- }
261
- },
262
- "remix": {
263
- "id": "remix",
264
- "name": "Remix",
265
- "category": "meta-framework",
266
- "url": "https://remix.run",
267
- "scores": {
268
- "default": {
269
- "perf": 70,
270
- "dx": 98,
271
- "ecosystem": 100,
272
- "maintain": 83,
273
- "cost": 90,
274
- "compliance": 85
275
- },
276
- "mvp": {
277
- "perf": 67,
278
- "dx": 100,
279
- "ecosystem": 100,
280
- "maintain": 83,
281
- "cost": 90,
282
- "compliance": 85
283
- },
284
- "enterprise": {
285
- "perf": 70,
286
- "dx": 98,
287
- "ecosystem": 95,
288
- "maintain": 88,
289
- "cost": 95,
290
- "compliance": 95
291
- }
292
- }
293
- },
294
- "astro": {
295
- "id": "astro",
296
- "name": "Astro",
297
- "category": "meta-framework",
298
- "url": "https://astro.build",
299
- "scores": {
300
- "default": {
301
- "perf": 30,
302
- "dx": 98,
303
- "ecosystem": 100,
304
- "maintain": 85,
305
- "cost": 90,
306
- "compliance": 85
307
- },
308
- "mvp": {
309
- "perf": 27,
310
- "dx": 100,
311
- "ecosystem": 100,
312
- "maintain": 85,
313
- "cost": 90,
314
- "compliance": 85
315
- },
316
- "enterprise": {
317
- "perf": 30,
318
- "dx": 98,
319
- "ecosystem": 95,
320
- "maintain": 90,
321
- "cost": 95,
322
- "compliance": 95
323
- }
324
- }
325
- },
326
- "react": {
327
- "id": "react",
328
- "name": "React",
329
- "category": "frontend",
330
- "url": "https://react.dev",
331
- "scores": {
332
- "default": {
333
- "perf": 82,
334
- "dx": 78,
335
- "ecosystem": 100,
336
- "maintain": 76,
337
- "cost": 90,
338
- "compliance": 85
339
- },
340
- "mvp": {
341
- "perf": 79,
342
- "dx": 83,
343
- "ecosystem": 100,
344
- "maintain": 76,
345
- "cost": 90,
346
- "compliance": 85
347
- },
348
- "enterprise": {
349
- "perf": 82,
350
- "dx": 78,
351
- "ecosystem": 95,
352
- "maintain": 81,
353
- "cost": 95,
354
- "compliance": 95
355
- }
356
- }
357
- },
358
- "vue": {
359
- "id": "vue",
360
- "name": "Vue",
361
- "category": "frontend",
362
- "url": "https://vuejs.org",
363
- "scores": {
364
- "default": {
365
- "perf": 67,
366
- "dx": 96,
367
- "ecosystem": 100,
368
- "maintain": 72,
369
- "cost": 90,
370
- "compliance": 85
371
- },
372
- "mvp": {
373
- "perf": 64,
374
- "dx": 100,
375
- "ecosystem": 100,
376
- "maintain": 72,
377
- "cost": 90,
378
- "compliance": 85
379
- },
380
- "enterprise": {
381
- "perf": 67,
382
- "dx": 96,
383
- "ecosystem": 95,
384
- "maintain": 77,
385
- "cost": 95,
386
- "compliance": 95
387
- }
388
- }
389
- },
390
- "svelte": {
391
- "id": "svelte",
392
- "name": "Svelte",
393
- "category": "frontend",
394
- "url": "https://svelte.dev",
395
- "scores": {
396
- "default": {
397
- "perf": 81,
398
- "dx": 99,
399
- "ecosystem": 100,
400
- "maintain": 76,
401
- "cost": 90,
402
- "compliance": 85
403
- },
404
- "mvp": {
405
- "perf": 78,
406
- "dx": 100,
407
- "ecosystem": 100,
408
- "maintain": 76,
409
- "cost": 90,
410
- "compliance": 85
411
- },
412
- "enterprise": {
413
- "perf": 81,
414
- "dx": 99,
415
- "ecosystem": 95,
416
- "maintain": 81,
417
- "cost": 95,
418
- "compliance": 95
419
- }
420
- }
421
- },
422
- "solid": {
423
- "id": "solid",
424
- "name": "Solid",
425
- "category": "frontend",
426
- "url": "https://solidjs.com",
427
- "scores": {
428
- "default": {
429
- "perf": 98,
430
- "dx": 52,
431
- "ecosystem": 98,
432
- "maintain": 42,
433
- "cost": 90,
434
- "compliance": 85
435
- },
436
- "mvp": {
437
- "perf": 95,
438
- "dx": 57,
439
- "ecosystem": 100,
440
- "maintain": 42,
441
- "cost": 90,
442
- "compliance": 85
443
- },
444
- "enterprise": {
445
- "perf": 98,
446
- "dx": 52,
447
- "ecosystem": 93,
448
- "maintain": 47,
449
- "cost": 95,
450
- "compliance": 95
451
- }
452
- }
453
- },
454
- "postgres": {
455
- "id": "postgres",
456
- "name": "PostgreSQL",
457
- "category": "database",
458
- "url": "https://postgresql.org",
459
- "scores": {
460
- "default": {
461
- "perf": 84,
462
- "dx": 67,
463
- "ecosystem": 77,
464
- "maintain": 88,
465
- "cost": 100,
466
- "compliance": 93
467
- },
468
- "mvp": {
469
- "perf": 81,
470
- "dx": 72,
471
- "ecosystem": 80,
472
- "maintain": 88,
473
- "cost": 100,
474
- "compliance": 93
475
- },
476
- "enterprise": {
477
- "perf": 84,
478
- "dx": 67,
479
- "ecosystem": 72,
480
- "maintain": 93,
481
- "cost": 100,
482
- "compliance": 100
483
- }
484
- }
485
- },
486
- "supabase": {
487
- "id": "supabase",
488
- "name": "Supabase",
489
- "category": "database",
490
- "url": "https://supabase.com",
491
- "scores": {
492
- "default": {
493
- "perf": 91,
494
- "dx": 97,
495
- "ecosystem": 85,
496
- "maintain": 81,
497
- "cost": 83,
498
- "compliance": 90
499
- },
500
- "mvp": {
501
- "perf": 88,
502
- "dx": 100,
503
- "ecosystem": 88,
504
- "maintain": 81,
505
- "cost": 83,
506
- "compliance": 90
507
- },
508
- "enterprise": {
509
- "perf": 91,
510
- "dx": 97,
511
- "ecosystem": 80,
512
- "maintain": 86,
513
- "cost": 88,
514
- "compliance": 100
515
- }
516
- }
517
- },
518
- "mysql": {
519
- "id": "mysql",
520
- "name": "MySQL",
521
- "category": "database",
522
- "url": "https://mysql.com",
523
- "scores": {
524
- "default": {
525
- "perf": 82,
526
- "dx": 64,
527
- "ecosystem": 74,
528
- "maintain": 88,
529
- "cost": 100,
530
- "compliance": 88
531
- },
532
- "mvp": {
533
- "perf": 79,
534
- "dx": 69,
535
- "ecosystem": 77,
536
- "maintain": 88,
537
- "cost": 100,
538
- "compliance": 88
539
- },
540
- "enterprise": {
541
- "perf": 82,
542
- "dx": 64,
543
- "ecosystem": 69,
544
- "maintain": 93,
545
- "cost": 100,
546
- "compliance": 98
547
- }
548
- }
549
- },
550
- "sqlite": {
551
- "id": "sqlite",
552
- "name": "SQLite",
553
- "category": "database",
554
- "url": "https://sqlite.org",
555
- "scores": {
556
- "default": {
557
- "perf": 91,
558
- "dx": 74,
559
- "ecosystem": 88,
560
- "maintain": 72,
561
- "cost": 100,
562
- "compliance": 78
563
- },
564
- "mvp": {
565
- "perf": 88,
566
- "dx": 79,
567
- "ecosystem": 91,
568
- "maintain": 72,
569
- "cost": 100,
570
- "compliance": 78
571
- },
572
- "enterprise": {
573
- "perf": 91,
574
- "dx": 74,
575
- "ecosystem": 83,
576
- "maintain": 77,
577
- "cost": 100,
578
- "compliance": 88
579
- }
580
- }
581
- },
582
- "mongodb": {
583
- "id": "mongodb",
584
- "name": "MongoDB",
585
- "category": "database",
586
- "url": "https://mongodb.com",
587
- "scores": {
588
- "default": {
589
- "perf": 85,
590
- "dx": 83,
591
- "ecosystem": 88,
592
- "maintain": 80,
593
- "cost": 90,
594
- "compliance": 87
595
- },
596
- "mvp": {
597
- "perf": 82,
598
- "dx": 88,
599
- "ecosystem": 91,
600
- "maintain": 80,
601
- "cost": 90,
602
- "compliance": 87
603
- },
604
- "enterprise": {
605
- "perf": 85,
606
- "dx": 83,
607
- "ecosystem": 83,
608
- "maintain": 85,
609
- "cost": 95,
610
- "compliance": 97
611
- }
612
- }
613
- },
614
- "drizzle": {
615
- "id": "drizzle",
616
- "name": "Drizzle ORM",
617
- "category": "orm",
618
- "url": "https://orm.drizzle.team",
619
- "scores": {
620
- "default": {
621
- "perf": 92,
622
- "dx": 80,
623
- "ecosystem": 98,
624
- "maintain": 54,
625
- "cost": 90,
626
- "compliance": 85
627
- },
628
- "mvp": {
629
- "perf": 89,
630
- "dx": 85,
631
- "ecosystem": 100,
632
- "maintain": 54,
633
- "cost": 90,
634
- "compliance": 85
635
- },
636
- "enterprise": {
637
- "perf": 92,
638
- "dx": 80,
639
- "ecosystem": 93,
640
- "maintain": 59,
641
- "cost": 95,
642
- "compliance": 95
643
- }
644
- }
645
- },
646
- "prisma": {
647
- "id": "prisma",
648
- "name": "Prisma",
649
- "category": "orm",
650
- "url": "https://prisma.io",
651
- "scores": {
652
- "default": {
653
- "perf": 68,
654
- "dx": 97,
655
- "ecosystem": 100,
656
- "maintain": 73,
657
- "cost": 90,
658
- "compliance": 85
659
- },
660
- "mvp": {
661
- "perf": 65,
662
- "dx": 100,
663
- "ecosystem": 100,
664
- "maintain": 73,
665
- "cost": 90,
666
- "compliance": 85
667
- },
668
- "enterprise": {
669
- "perf": 68,
670
- "dx": 97,
671
- "ecosystem": 95,
672
- "maintain": 78,
673
- "cost": 95,
674
- "compliance": 95
675
- }
676
- }
677
- },
678
- "kysely": {
679
- "id": "kysely",
680
- "name": "Kysely",
681
- "category": "orm",
682
- "url": "https://kysely.dev",
683
- "scores": {
684
- "default": {
685
- "perf": 75,
686
- "dx": 72,
687
- "ecosystem": 95,
688
- "maintain": 51,
689
- "cost": 90,
690
- "compliance": 85
691
- },
692
- "mvp": {
693
- "perf": 72,
694
- "dx": 77,
695
- "ecosystem": 98,
696
- "maintain": 51,
697
- "cost": 90,
698
- "compliance": 85
699
- },
700
- "enterprise": {
701
- "perf": 75,
702
- "dx": 72,
703
- "ecosystem": 90,
704
- "maintain": 56,
705
- "cost": 95,
706
- "compliance": 95
707
- }
708
- }
709
- },
710
- "lucia": {
711
- "id": "lucia",
712
- "name": "Lucia",
713
- "category": "auth",
714
- "url": "https://lucia-auth.com",
715
- "scores": {
716
- "default": {
717
- "perf": 89,
718
- "dx": 50,
719
- "ecosystem": 93,
720
- "maintain": 17,
721
- "cost": 90,
722
- "compliance": 85
723
- },
724
- "mvp": {
725
- "perf": 86,
726
- "dx": 55,
727
- "ecosystem": 96,
728
- "maintain": 17,
729
- "cost": 90,
730
- "compliance": 85
731
- },
732
- "enterprise": {
733
- "perf": 89,
734
- "dx": 50,
735
- "ecosystem": 88,
736
- "maintain": 22,
737
- "cost": 95,
738
- "compliance": 95
739
- }
740
- }
741
- },
742
- "authjs": {
743
- "id": "authjs",
744
- "name": "Auth.js",
745
- "category": "auth",
746
- "url": "https://authjs.dev",
747
- "scores": {
748
- "default": {
749
- "perf": 57,
750
- "dx": 62,
751
- "ecosystem": 100,
752
- "maintain": 45,
753
- "cost": 90,
754
- "compliance": 85
755
- },
756
- "mvp": {
757
- "perf": 54,
758
- "dx": 67,
759
- "ecosystem": 100,
760
- "maintain": 45,
761
- "cost": 90,
762
- "compliance": 85
763
- },
764
- "enterprise": {
765
- "perf": 57,
766
- "dx": 62,
767
- "ecosystem": 95,
768
- "maintain": 50,
769
- "cost": 95,
770
- "compliance": 95
771
- }
772
- }
773
- },
774
- "clerk": {
775
- "id": "clerk",
776
- "name": "Clerk",
777
- "category": "auth",
778
- "url": "https://clerk.com",
779
- "scores": {
780
- "default": {
781
- "perf": 79,
782
- "dx": 86,
783
- "ecosystem": 66,
784
- "maintain": 93,
785
- "cost": 67,
786
- "compliance": 92
787
- },
788
- "mvp": {
789
- "perf": 76,
790
- "dx": 91,
791
- "ecosystem": 69,
792
- "maintain": 93,
793
- "cost": 67,
794
- "compliance": 92
795
- },
796
- "enterprise": {
797
- "perf": 79,
798
- "dx": 86,
799
- "ecosystem": 61,
800
- "maintain": 98,
801
- "cost": 72,
802
- "compliance": 100
803
- }
804
- }
805
- },
806
- "vercel": {
807
- "id": "vercel",
808
- "name": "Vercel",
809
- "category": "hosting",
810
- "url": "https://vercel.com",
811
- "scores": {
812
- "default": {
813
- "perf": 87,
814
- "dx": 77,
815
- "ecosystem": 65,
816
- "maintain": 81,
817
- "cost": 74,
818
- "compliance": 92
819
- },
820
- "mvp": {
821
- "perf": 84,
822
- "dx": 82,
823
- "ecosystem": 68,
824
- "maintain": 81,
825
- "cost": 74,
826
- "compliance": 92
827
- },
828
- "enterprise": {
829
- "perf": 87,
830
- "dx": 77,
831
- "ecosystem": 60,
832
- "maintain": 86,
833
- "cost": 79,
834
- "compliance": 100
835
- }
836
- }
837
- },
838
- "cloudflare": {
839
- "id": "cloudflare",
840
- "name": "Cloudflare",
841
- "category": "hosting",
842
- "url": "https://cloudflare.com",
843
- "scores": {
844
- "default": {
845
- "perf": 87,
846
- "dx": 73,
847
- "ecosystem": 68,
848
- "maintain": 80,
849
- "cost": 92,
850
- "compliance": 96
851
- },
852
- "mvp": {
853
- "perf": 84,
854
- "dx": 78,
855
- "ecosystem": 71,
856
- "maintain": 80,
857
- "cost": 92,
858
- "compliance": 96
859
- },
860
- "enterprise": {
861
- "perf": 87,
862
- "dx": 73,
863
- "ecosystem": 63,
864
- "maintain": 85,
865
- "cost": 97,
866
- "compliance": 100
867
- }
868
- }
869
- },
870
- "railway": {
871
- "id": "railway",
872
- "name": "Railway",
873
- "category": "hosting",
874
- "url": "https://railway.app",
875
- "scores": {
876
- "default": {
877
- "perf": 85,
878
- "dx": 73,
879
- "ecosystem": 45,
880
- "maintain": 77,
881
- "cost": 73,
882
- "compliance": 82
883
- },
884
- "mvp": {
885
- "perf": 82,
886
- "dx": 78,
887
- "ecosystem": 48,
888
- "maintain": 77,
889
- "cost": 73,
890
- "compliance": 82
891
- },
892
- "enterprise": {
893
- "perf": 85,
894
- "dx": 73,
895
- "ecosystem": 40,
896
- "maintain": 82,
897
- "cost": 78,
898
- "compliance": 92
899
- }
900
- }
901
- },
902
- "fly": {
903
- "id": "fly",
904
- "name": "Fly.io",
905
- "category": "hosting",
906
- "url": "https://fly.io",
907
- "scores": {
908
- "default": {
909
- "perf": 85,
910
- "dx": 71,
911
- "ecosystem": 43,
912
- "maintain": 75,
913
- "cost": 78,
914
- "compliance": 81
915
- },
916
- "mvp": {
917
- "perf": 82,
918
- "dx": 76,
919
- "ecosystem": 46,
920
- "maintain": 75,
921
- "cost": 78,
922
- "compliance": 81
923
- },
924
- "enterprise": {
925
- "perf": 85,
926
- "dx": 71,
927
- "ecosystem": 38,
928
- "maintain": 80,
929
- "cost": 83,
930
- "compliance": 91
931
- }
932
- }
933
- },
934
- "nodejs": {
935
- "id": "nodejs",
936
- "name": "Node.js",
937
- "category": "backend",
938
- "url": "https://nodejs.org",
939
- "scores": {
940
- "default": {
941
- "perf": 75,
942
- "dx": 85,
943
- "ecosystem": 98,
944
- "maintain": 80,
945
- "cost": 90,
946
- "compliance": 88
947
- },
948
- "mvp": {
949
- "perf": 70,
950
- "dx": 85,
951
- "ecosystem": 98,
952
- "maintain": 78,
953
- "cost": 95,
954
- "compliance": 85
955
- },
956
- "enterprise": {
957
- "perf": 78,
958
- "dx": 85,
959
- "ecosystem": 98,
960
- "maintain": 82,
961
- "cost": 85,
962
- "compliance": 90
963
- }
964
- }
965
- },
966
- "bun": {
967
- "id": "bun",
968
- "name": "Bun",
969
- "category": "backend",
970
- "url": "https://bun.sh",
971
- "scores": {
972
- "default": {
973
- "perf": 98,
974
- "dx": 92,
975
- "ecosystem": 60,
976
- "maintain": 75,
977
- "cost": 95,
978
- "compliance": 80
979
- },
980
- "mvp": {
981
- "perf": 98,
982
- "dx": 95,
983
- "ecosystem": 55,
984
- "maintain": 72,
985
- "cost": 98,
986
- "compliance": 78
987
- },
988
- "enterprise": {
989
- "perf": 98,
990
- "dx": 88,
991
- "ecosystem": 58,
992
- "maintain": 70,
993
- "cost": 90,
994
- "compliance": 75
995
- }
996
- }
997
- },
998
- "better-auth": {
999
- "id": "better-auth",
1000
- "name": "Better Auth",
1001
- "category": "auth",
1002
- "url": "https://better-auth.com",
1003
- "scores": {
1004
- "default": {
1005
- "perf": 90,
1006
- "dx": 92,
1007
- "ecosystem": 55,
1008
- "maintain": 88,
1009
- "cost": 98,
1010
- "compliance": 85
1011
- },
1012
- "mvp": {
1013
- "perf": 90,
1014
- "dx": 95,
1015
- "ecosystem": 50,
1016
- "maintain": 88,
1017
- "cost": 100,
1018
- "compliance": 82
1019
- },
1020
- "enterprise": {
1021
- "perf": 88,
1022
- "dx": 88,
1023
- "ecosystem": 55,
1024
- "maintain": 85,
1025
- "cost": 95,
1026
- "compliance": 85
1027
- }
1028
- }
1029
- }
1030
- }
1031
- }
2
+ "$version": "2.9.1",
3
+ "$description": "Base scores for technologies with ecosystem metadata",
4
+ "$generatedAt": "2026-01-29T00:17:47.028Z",
5
+ "technologies": {
6
+ "stripe": {
7
+ "id": "stripe",
8
+ "name": "Stripe",
9
+ "category": "payments",
10
+ "ecosystem": "universal",
11
+ "url": "https://stripe.com",
12
+ "scores": {
13
+ "default": {
14
+ "perf": 97,
15
+ "dx": 94,
16
+ "ecosystem": 98,
17
+ "maintain": 86,
18
+ "cost": 51,
19
+ "compliance": 65
20
+ },
21
+ "mvp": {
22
+ "perf": 94,
23
+ "dx": 99,
24
+ "ecosystem": 100,
25
+ "maintain": 86,
26
+ "cost": 51,
27
+ "compliance": 65
28
+ },
29
+ "enterprise": {
30
+ "perf": 97,
31
+ "dx": 94,
32
+ "ecosystem": 93,
33
+ "maintain": 91,
34
+ "cost": 56,
35
+ "compliance": 75
36
+ }
37
+ }
38
+ },
39
+ "paddle": {
40
+ "id": "paddle",
41
+ "name": "Paddle",
42
+ "category": "payments",
43
+ "ecosystem": "universal",
44
+ "url": "https://paddle.com",
45
+ "scores": {
46
+ "default": {
47
+ "perf": 95,
48
+ "dx": 88,
49
+ "ecosystem": 68,
50
+ "maintain": 60,
51
+ "cost": 41,
52
+ "compliance": 99
53
+ },
54
+ "mvp": {
55
+ "perf": 92,
56
+ "dx": 93,
57
+ "ecosystem": 71,
58
+ "maintain": 60,
59
+ "cost": 41,
60
+ "compliance": 99
61
+ },
62
+ "enterprise": {
63
+ "perf": 95,
64
+ "dx": 88,
65
+ "ecosystem": 63,
66
+ "maintain": 65,
67
+ "cost": 46,
68
+ "compliance": 100
69
+ }
70
+ }
71
+ },
72
+ "lemonsqueezy": {
73
+ "id": "lemonsqueezy",
74
+ "name": "LemonSqueezy",
75
+ "category": "payments",
76
+ "ecosystem": "universal",
77
+ "url": "https://lemonsqueezy.com",
78
+ "scores": {
79
+ "default": {
80
+ "perf": 92,
81
+ "dx": 85,
82
+ "ecosystem": 60,
83
+ "maintain": 40,
84
+ "cost": 44,
85
+ "compliance": 96
86
+ },
87
+ "mvp": {
88
+ "perf": 89,
89
+ "dx": 90,
90
+ "ecosystem": 63,
91
+ "maintain": 40,
92
+ "cost": 44,
93
+ "compliance": 96
94
+ },
95
+ "enterprise": {
96
+ "perf": 92,
97
+ "dx": 85,
98
+ "ecosystem": 55,
99
+ "maintain": 45,
100
+ "cost": 49,
101
+ "compliance": 100
102
+ }
103
+ }
104
+ },
105
+ "gumroad": {
106
+ "id": "gumroad",
107
+ "name": "Gumroad",
108
+ "category": "payments",
109
+ "ecosystem": "universal",
110
+ "url": "https://gumroad.com",
111
+ "scores": {
112
+ "default": {
113
+ "perf": 79,
114
+ "dx": 60,
115
+ "ecosystem": 50,
116
+ "maintain": 68,
117
+ "cost": 32,
118
+ "compliance": 79
119
+ },
120
+ "mvp": {
121
+ "perf": 76,
122
+ "dx": 65,
123
+ "ecosystem": 53,
124
+ "maintain": 68,
125
+ "cost": 32,
126
+ "compliance": 79
127
+ },
128
+ "enterprise": {
129
+ "perf": 79,
130
+ "dx": 60,
131
+ "ecosystem": 45,
132
+ "maintain": 73,
133
+ "cost": 37,
134
+ "compliance": 89
135
+ }
136
+ }
137
+ },
138
+ "neon": {
139
+ "id": "neon",
140
+ "name": "Neon",
141
+ "category": "database",
142
+ "ecosystem": "universal",
143
+ "url": "https://neon.tech",
144
+ "scores": {
145
+ "default": {
146
+ "perf": 83,
147
+ "dx": 97,
148
+ "ecosystem": 76,
149
+ "maintain": 48,
150
+ "cost": 88,
151
+ "compliance": 93
152
+ },
153
+ "mvp": {
154
+ "perf": 80,
155
+ "dx": 100,
156
+ "ecosystem": 79,
157
+ "maintain": 48,
158
+ "cost": 88,
159
+ "compliance": 93
160
+ },
161
+ "enterprise": {
162
+ "perf": 83,
163
+ "dx": 97,
164
+ "ecosystem": 71,
165
+ "maintain": 53,
166
+ "cost": 93,
167
+ "compliance": 100
168
+ }
169
+ }
170
+ },
171
+ "sveltekit": {
172
+ "id": "sveltekit",
173
+ "name": "SvelteKit",
174
+ "category": "meta-framework",
175
+ "ecosystem": "javascript",
176
+ "stackType": "modular",
177
+ "preferredHosting": [
178
+ "vercel",
179
+ "cloudflare",
180
+ "railway",
181
+ "fly"
182
+ ],
183
+ "url": "https://kit.svelte.dev",
184
+ "scores": {
185
+ "default": {
186
+ "perf": 54,
187
+ "dx": 99,
188
+ "ecosystem": 100,
189
+ "maintain": 74,
190
+ "cost": 90,
191
+ "compliance": 85
192
+ },
193
+ "mvp": {
194
+ "perf": 51,
195
+ "dx": 100,
196
+ "ecosystem": 100,
197
+ "maintain": 74,
198
+ "cost": 90,
199
+ "compliance": 85
200
+ },
201
+ "enterprise": {
202
+ "perf": 54,
203
+ "dx": 99,
204
+ "ecosystem": 95,
205
+ "maintain": 79,
206
+ "cost": 95,
207
+ "compliance": 95
208
+ }
209
+ }
210
+ },
211
+ "nextjs": {
212
+ "id": "nextjs",
213
+ "name": "Next.js",
214
+ "category": "meta-framework",
215
+ "ecosystem": "javascript",
216
+ "stackType": "modular",
217
+ "preferredHosting": [
218
+ "vercel",
219
+ "cloudflare",
220
+ "railway"
221
+ ],
222
+ "url": "https://nextjs.org",
223
+ "scores": {
224
+ "default": {
225
+ "perf": 68,
226
+ "dx": 90,
227
+ "ecosystem": 100,
228
+ "maintain": 80,
229
+ "cost": 90,
230
+ "compliance": 85
231
+ },
232
+ "mvp": {
233
+ "perf": 65,
234
+ "dx": 95,
235
+ "ecosystem": 100,
236
+ "maintain": 80,
237
+ "cost": 90,
238
+ "compliance": 85
239
+ },
240
+ "enterprise": {
241
+ "perf": 68,
242
+ "dx": 90,
243
+ "ecosystem": 95,
244
+ "maintain": 85,
245
+ "cost": 95,
246
+ "compliance": 95
247
+ }
248
+ }
249
+ },
250
+ "nuxt": {
251
+ "id": "nuxt",
252
+ "name": "Nuxt",
253
+ "category": "meta-framework",
254
+ "ecosystem": "javascript",
255
+ "stackType": "modular",
256
+ "preferredHosting": [
257
+ "vercel",
258
+ "cloudflare",
259
+ "railway"
260
+ ],
261
+ "url": "https://nuxt.com",
262
+ "scores": {
263
+ "default": {
264
+ "perf": 30,
265
+ "dx": 99,
266
+ "ecosystem": 100,
267
+ "maintain": 79,
268
+ "cost": 90,
269
+ "compliance": 85
270
+ },
271
+ "mvp": {
272
+ "perf": 27,
273
+ "dx": 100,
274
+ "ecosystem": 100,
275
+ "maintain": 79,
276
+ "cost": 90,
277
+ "compliance": 85
278
+ },
279
+ "enterprise": {
280
+ "perf": 30,
281
+ "dx": 99,
282
+ "ecosystem": 95,
283
+ "maintain": 84,
284
+ "cost": 95,
285
+ "compliance": 95
286
+ }
287
+ }
288
+ },
289
+ "remix": {
290
+ "id": "remix",
291
+ "name": "Remix",
292
+ "category": "meta-framework",
293
+ "ecosystem": "javascript",
294
+ "stackType": "modular",
295
+ "preferredHosting": [
296
+ "vercel",
297
+ "cloudflare",
298
+ "fly",
299
+ "railway"
300
+ ],
301
+ "url": "https://remix.run",
302
+ "scores": {
303
+ "default": {
304
+ "perf": 70,
305
+ "dx": 99,
306
+ "ecosystem": 100,
307
+ "maintain": 86,
308
+ "cost": 90,
309
+ "compliance": 85
310
+ },
311
+ "mvp": {
312
+ "perf": 67,
313
+ "dx": 100,
314
+ "ecosystem": 100,
315
+ "maintain": 86,
316
+ "cost": 90,
317
+ "compliance": 85
318
+ },
319
+ "enterprise": {
320
+ "perf": 70,
321
+ "dx": 99,
322
+ "ecosystem": 95,
323
+ "maintain": 91,
324
+ "cost": 95,
325
+ "compliance": 95
326
+ }
327
+ }
328
+ },
329
+ "astro": {
330
+ "id": "astro",
331
+ "name": "Astro",
332
+ "category": "meta-framework",
333
+ "ecosystem": "javascript",
334
+ "stackType": "modular",
335
+ "preferredHosting": [
336
+ "vercel",
337
+ "cloudflare",
338
+ "netlify"
339
+ ],
340
+ "url": "https://astro.build",
341
+ "scores": {
342
+ "default": {
343
+ "perf": 30,
344
+ "dx": 100,
345
+ "ecosystem": 100,
346
+ "maintain": 85,
347
+ "cost": 90,
348
+ "compliance": 85
349
+ },
350
+ "mvp": {
351
+ "perf": 27,
352
+ "dx": 100,
353
+ "ecosystem": 100,
354
+ "maintain": 85,
355
+ "cost": 90,
356
+ "compliance": 85
357
+ },
358
+ "enterprise": {
359
+ "perf": 30,
360
+ "dx": 100,
361
+ "ecosystem": 95,
362
+ "maintain": 90,
363
+ "cost": 95,
364
+ "compliance": 95
365
+ }
366
+ }
367
+ },
368
+ "react": {
369
+ "id": "react",
370
+ "name": "React",
371
+ "category": "frontend",
372
+ "ecosystem": "javascript",
373
+ "url": "https://react.dev",
374
+ "scores": {
375
+ "default": {
376
+ "perf": 82,
377
+ "dx": 78,
378
+ "ecosystem": 100,
379
+ "maintain": 76,
380
+ "cost": 90,
381
+ "compliance": 85
382
+ },
383
+ "mvp": {
384
+ "perf": 79,
385
+ "dx": 83,
386
+ "ecosystem": 100,
387
+ "maintain": 76,
388
+ "cost": 90,
389
+ "compliance": 85
390
+ },
391
+ "enterprise": {
392
+ "perf": 82,
393
+ "dx": 78,
394
+ "ecosystem": 95,
395
+ "maintain": 81,
396
+ "cost": 95,
397
+ "compliance": 95
398
+ }
399
+ }
400
+ },
401
+ "vue": {
402
+ "id": "vue",
403
+ "name": "Vue",
404
+ "category": "frontend",
405
+ "ecosystem": "javascript",
406
+ "url": "https://vuejs.org",
407
+ "scores": {
408
+ "default": {
409
+ "perf": 67,
410
+ "dx": 96,
411
+ "ecosystem": 100,
412
+ "maintain": 72,
413
+ "cost": 90,
414
+ "compliance": 85
415
+ },
416
+ "mvp": {
417
+ "perf": 64,
418
+ "dx": 100,
419
+ "ecosystem": 100,
420
+ "maintain": 72,
421
+ "cost": 90,
422
+ "compliance": 85
423
+ },
424
+ "enterprise": {
425
+ "perf": 67,
426
+ "dx": 96,
427
+ "ecosystem": 95,
428
+ "maintain": 77,
429
+ "cost": 95,
430
+ "compliance": 95
431
+ }
432
+ }
433
+ },
434
+ "svelte": {
435
+ "id": "svelte",
436
+ "name": "Svelte",
437
+ "category": "frontend",
438
+ "ecosystem": "javascript",
439
+ "url": "https://svelte.dev",
440
+ "scores": {
441
+ "default": {
442
+ "perf": 81,
443
+ "dx": 99,
444
+ "ecosystem": 100,
445
+ "maintain": 76,
446
+ "cost": 90,
447
+ "compliance": 85
448
+ },
449
+ "mvp": {
450
+ "perf": 78,
451
+ "dx": 100,
452
+ "ecosystem": 100,
453
+ "maintain": 76,
454
+ "cost": 90,
455
+ "compliance": 85
456
+ },
457
+ "enterprise": {
458
+ "perf": 81,
459
+ "dx": 99,
460
+ "ecosystem": 95,
461
+ "maintain": 81,
462
+ "cost": 95,
463
+ "compliance": 95
464
+ }
465
+ }
466
+ },
467
+ "solid": {
468
+ "id": "solid",
469
+ "name": "Solid",
470
+ "category": "frontend",
471
+ "ecosystem": "javascript",
472
+ "url": "https://solidjs.com",
473
+ "scores": {
474
+ "default": {
475
+ "perf": 98,
476
+ "dx": 52,
477
+ "ecosystem": 98,
478
+ "maintain": 42,
479
+ "cost": 90,
480
+ "compliance": 85
481
+ },
482
+ "mvp": {
483
+ "perf": 95,
484
+ "dx": 57,
485
+ "ecosystem": 100,
486
+ "maintain": 42,
487
+ "cost": 90,
488
+ "compliance": 85
489
+ },
490
+ "enterprise": {
491
+ "perf": 98,
492
+ "dx": 52,
493
+ "ecosystem": 93,
494
+ "maintain": 47,
495
+ "cost": 95,
496
+ "compliance": 95
497
+ }
498
+ }
499
+ },
500
+ "postgres": {
501
+ "id": "postgres",
502
+ "name": "PostgreSQL",
503
+ "category": "database",
504
+ "ecosystem": "universal",
505
+ "url": "https://postgresql.org",
506
+ "scores": {
507
+ "default": {
508
+ "perf": 84,
509
+ "dx": 67,
510
+ "ecosystem": 77,
511
+ "maintain": 88,
512
+ "cost": 100,
513
+ "compliance": 93
514
+ },
515
+ "mvp": {
516
+ "perf": 81,
517
+ "dx": 72,
518
+ "ecosystem": 80,
519
+ "maintain": 88,
520
+ "cost": 100,
521
+ "compliance": 93
522
+ },
523
+ "enterprise": {
524
+ "perf": 84,
525
+ "dx": 67,
526
+ "ecosystem": 72,
527
+ "maintain": 93,
528
+ "cost": 100,
529
+ "compliance": 100
530
+ }
531
+ }
532
+ },
533
+ "supabase": {
534
+ "id": "supabase",
535
+ "name": "Supabase",
536
+ "category": "database",
537
+ "ecosystem": "universal",
538
+ "stackType": "platform",
539
+ "provides": {
540
+ "auth": {
541
+ "techId": "supabase-auth",
542
+ "type": "builtin",
543
+ "label": "Supabase Auth inclus",
544
+ "description": "Email, OAuth, Magic Links, Row Level Security"
545
+ }
546
+ },
547
+ "url": "https://supabase.com",
548
+ "scores": {
549
+ "default": {
550
+ "perf": 92,
551
+ "dx": 97,
552
+ "ecosystem": 85,
553
+ "maintain": 83,
554
+ "cost": 83,
555
+ "compliance": 90
556
+ },
557
+ "mvp": {
558
+ "perf": 89,
559
+ "dx": 100,
560
+ "ecosystem": 88,
561
+ "maintain": 83,
562
+ "cost": 83,
563
+ "compliance": 90
564
+ },
565
+ "enterprise": {
566
+ "perf": 92,
567
+ "dx": 97,
568
+ "ecosystem": 80,
569
+ "maintain": 88,
570
+ "cost": 88,
571
+ "compliance": 100
572
+ }
573
+ }
574
+ },
575
+ "firebase": {
576
+ "id": "firebase",
577
+ "name": "Firebase",
578
+ "category": "database",
579
+ "ecosystem": "universal",
580
+ "stackType": "platform",
581
+ "provides": {
582
+ "auth": {
583
+ "techId": "firebase-auth",
584
+ "type": "builtin",
585
+ "label": "Firebase Auth inclus",
586
+ "description": "Email, OAuth, Phone, Anonymous authentication"
587
+ }
588
+ },
589
+ "url": "https://firebase.google.com",
590
+ "scores": {
591
+ "default": {
592
+ "perf": 84,
593
+ "dx": 96,
594
+ "ecosystem": 94,
595
+ "maintain": 79,
596
+ "cost": 73,
597
+ "compliance": 88
598
+ },
599
+ "mvp": {
600
+ "perf": 81,
601
+ "dx": 100,
602
+ "ecosystem": 97,
603
+ "maintain": 79,
604
+ "cost": 73,
605
+ "compliance": 88
606
+ },
607
+ "enterprise": {
608
+ "perf": 84,
609
+ "dx": 96,
610
+ "ecosystem": 89,
611
+ "maintain": 84,
612
+ "cost": 78,
613
+ "compliance": 98
614
+ }
615
+ }
616
+ },
617
+ "mysql": {
618
+ "id": "mysql",
619
+ "name": "MySQL",
620
+ "category": "database",
621
+ "ecosystem": "universal",
622
+ "url": "https://mysql.com",
623
+ "scores": {
624
+ "default": {
625
+ "perf": 82,
626
+ "dx": 64,
627
+ "ecosystem": 74,
628
+ "maintain": 88,
629
+ "cost": 100,
630
+ "compliance": 88
631
+ },
632
+ "mvp": {
633
+ "perf": 79,
634
+ "dx": 69,
635
+ "ecosystem": 77,
636
+ "maintain": 88,
637
+ "cost": 100,
638
+ "compliance": 88
639
+ },
640
+ "enterprise": {
641
+ "perf": 82,
642
+ "dx": 64,
643
+ "ecosystem": 69,
644
+ "maintain": 93,
645
+ "cost": 100,
646
+ "compliance": 98
647
+ }
648
+ }
649
+ },
650
+ "sqlite": {
651
+ "id": "sqlite",
652
+ "name": "SQLite",
653
+ "category": "database",
654
+ "ecosystem": "universal",
655
+ "url": "https://sqlite.org",
656
+ "scores": {
657
+ "default": {
658
+ "perf": 94,
659
+ "dx": 74,
660
+ "ecosystem": 88,
661
+ "maintain": 76,
662
+ "cost": 100,
663
+ "compliance": 78
664
+ },
665
+ "mvp": {
666
+ "perf": 91,
667
+ "dx": 79,
668
+ "ecosystem": 91,
669
+ "maintain": 76,
670
+ "cost": 100,
671
+ "compliance": 78
672
+ },
673
+ "enterprise": {
674
+ "perf": 94,
675
+ "dx": 74,
676
+ "ecosystem": 83,
677
+ "maintain": 81,
678
+ "cost": 100,
679
+ "compliance": 88
680
+ }
681
+ }
682
+ },
683
+ "mongodb": {
684
+ "id": "mongodb",
685
+ "name": "MongoDB",
686
+ "category": "database",
687
+ "ecosystem": "universal",
688
+ "url": "https://mongodb.com",
689
+ "scores": {
690
+ "default": {
691
+ "perf": 83,
692
+ "dx": 82,
693
+ "ecosystem": 88,
694
+ "maintain": 72,
695
+ "cost": 90,
696
+ "compliance": 87
697
+ },
698
+ "mvp": {
699
+ "perf": 80,
700
+ "dx": 87,
701
+ "ecosystem": 91,
702
+ "maintain": 72,
703
+ "cost": 90,
704
+ "compliance": 87
705
+ },
706
+ "enterprise": {
707
+ "perf": 83,
708
+ "dx": 82,
709
+ "ecosystem": 83,
710
+ "maintain": 77,
711
+ "cost": 95,
712
+ "compliance": 97
713
+ }
714
+ }
715
+ },
716
+ "drizzle": {
717
+ "id": "drizzle",
718
+ "name": "Drizzle ORM",
719
+ "category": "orm",
720
+ "ecosystem": "javascript",
721
+ "url": "https://orm.drizzle.team",
722
+ "scores": {
723
+ "default": {
724
+ "perf": 94,
725
+ "dx": 80,
726
+ "ecosystem": 98,
727
+ "maintain": 57,
728
+ "cost": 90,
729
+ "compliance": 85
730
+ },
731
+ "mvp": {
732
+ "perf": 91,
733
+ "dx": 85,
734
+ "ecosystem": 100,
735
+ "maintain": 57,
736
+ "cost": 90,
737
+ "compliance": 85
738
+ },
739
+ "enterprise": {
740
+ "perf": 94,
741
+ "dx": 80,
742
+ "ecosystem": 93,
743
+ "maintain": 62,
744
+ "cost": 95,
745
+ "compliance": 95
746
+ }
747
+ }
748
+ },
749
+ "prisma": {
750
+ "id": "prisma",
751
+ "name": "Prisma",
752
+ "category": "orm",
753
+ "ecosystem": "javascript",
754
+ "url": "https://prisma.io",
755
+ "scores": {
756
+ "default": {
757
+ "perf": 68,
758
+ "dx": 99,
759
+ "ecosystem": 100,
760
+ "maintain": 72,
761
+ "cost": 90,
762
+ "compliance": 85
763
+ },
764
+ "mvp": {
765
+ "perf": 65,
766
+ "dx": 100,
767
+ "ecosystem": 100,
768
+ "maintain": 72,
769
+ "cost": 90,
770
+ "compliance": 85
771
+ },
772
+ "enterprise": {
773
+ "perf": 68,
774
+ "dx": 99,
775
+ "ecosystem": 95,
776
+ "maintain": 77,
777
+ "cost": 95,
778
+ "compliance": 95
779
+ }
780
+ }
781
+ },
782
+ "kysely": {
783
+ "id": "kysely",
784
+ "name": "Kysely",
785
+ "category": "orm",
786
+ "ecosystem": "javascript",
787
+ "url": "https://kysely.dev",
788
+ "scores": {
789
+ "default": {
790
+ "perf": 80,
791
+ "dx": 76,
792
+ "ecosystem": 95,
793
+ "maintain": 53,
794
+ "cost": 90,
795
+ "compliance": 85
796
+ },
797
+ "mvp": {
798
+ "perf": 77,
799
+ "dx": 81,
800
+ "ecosystem": 98,
801
+ "maintain": 53,
802
+ "cost": 90,
803
+ "compliance": 85
804
+ },
805
+ "enterprise": {
806
+ "perf": 80,
807
+ "dx": 76,
808
+ "ecosystem": 90,
809
+ "maintain": 58,
810
+ "cost": 95,
811
+ "compliance": 95
812
+ }
813
+ }
814
+ },
815
+ "lucia": {
816
+ "id": "lucia",
817
+ "name": "Lucia",
818
+ "category": "auth",
819
+ "ecosystem": "javascript",
820
+ "url": "https://lucia-auth.com",
821
+ "deprecated": {
822
+ "since": "2025-03",
823
+ "reason": "Library no longer maintained",
824
+ "alternatives": [
825
+ "better-auth",
826
+ "authjs"
827
+ ]
828
+ },
829
+ "scores": {
830
+ "default": {
831
+ "perf": 76,
832
+ "dx": 50,
833
+ "ecosystem": 96,
834
+ "maintain": 5,
835
+ "cost": 90,
836
+ "compliance": 85
837
+ },
838
+ "mvp": {
839
+ "perf": 73,
840
+ "dx": 55,
841
+ "ecosystem": 99,
842
+ "maintain": 5,
843
+ "cost": 90,
844
+ "compliance": 85
845
+ },
846
+ "enterprise": {
847
+ "perf": 76,
848
+ "dx": 50,
849
+ "ecosystem": 91,
850
+ "maintain": 5,
851
+ "cost": 95,
852
+ "compliance": 95
853
+ }
854
+ }
855
+ },
856
+ "authjs": {
857
+ "id": "authjs",
858
+ "name": "Auth.js",
859
+ "category": "auth",
860
+ "ecosystem": "javascript",
861
+ "url": "https://authjs.dev",
862
+ "scores": {
863
+ "default": {
864
+ "perf": 57,
865
+ "dx": 52,
866
+ "ecosystem": 100,
867
+ "maintain": 35,
868
+ "cost": 90,
869
+ "compliance": 85
870
+ },
871
+ "mvp": {
872
+ "perf": 54,
873
+ "dx": 57,
874
+ "ecosystem": 100,
875
+ "maintain": 35,
876
+ "cost": 90,
877
+ "compliance": 85
878
+ },
879
+ "enterprise": {
880
+ "perf": 57,
881
+ "dx": 52,
882
+ "ecosystem": 95,
883
+ "maintain": 40,
884
+ "cost": 95,
885
+ "compliance": 95
886
+ }
887
+ }
888
+ },
889
+ "clerk": {
890
+ "id": "clerk",
891
+ "name": "Clerk",
892
+ "category": "auth",
893
+ "ecosystem": "universal",
894
+ "url": "https://clerk.com",
895
+ "scores": {
896
+ "default": {
897
+ "perf": 79,
898
+ "dx": 86,
899
+ "ecosystem": 69,
900
+ "maintain": 95,
901
+ "cost": 67,
902
+ "compliance": 92
903
+ },
904
+ "mvp": {
905
+ "perf": 76,
906
+ "dx": 91,
907
+ "ecosystem": 72,
908
+ "maintain": 95,
909
+ "cost": 67,
910
+ "compliance": 92
911
+ },
912
+ "enterprise": {
913
+ "perf": 79,
914
+ "dx": 86,
915
+ "ecosystem": 64,
916
+ "maintain": 100,
917
+ "cost": 72,
918
+ "compliance": 100
919
+ }
920
+ }
921
+ },
922
+ "vercel": {
923
+ "id": "vercel",
924
+ "name": "Vercel",
925
+ "category": "hosting",
926
+ "ecosystem": "javascript",
927
+ "url": "https://vercel.com",
928
+ "scores": {
929
+ "default": {
930
+ "perf": 87,
931
+ "dx": 77,
932
+ "ecosystem": 65,
933
+ "maintain": 81,
934
+ "cost": 74,
935
+ "compliance": 92
936
+ },
937
+ "mvp": {
938
+ "perf": 84,
939
+ "dx": 82,
940
+ "ecosystem": 68,
941
+ "maintain": 81,
942
+ "cost": 74,
943
+ "compliance": 92
944
+ },
945
+ "enterprise": {
946
+ "perf": 87,
947
+ "dx": 77,
948
+ "ecosystem": 60,
949
+ "maintain": 86,
950
+ "cost": 79,
951
+ "compliance": 100
952
+ }
953
+ }
954
+ },
955
+ "cloudflare": {
956
+ "id": "cloudflare",
957
+ "name": "Cloudflare",
958
+ "category": "hosting",
959
+ "ecosystem": "javascript",
960
+ "url": "https://cloudflare.com",
961
+ "scores": {
962
+ "default": {
963
+ "perf": 87,
964
+ "dx": 73,
965
+ "ecosystem": 68,
966
+ "maintain": 80,
967
+ "cost": 92,
968
+ "compliance": 96
969
+ },
970
+ "mvp": {
971
+ "perf": 84,
972
+ "dx": 78,
973
+ "ecosystem": 71,
974
+ "maintain": 80,
975
+ "cost": 92,
976
+ "compliance": 96
977
+ },
978
+ "enterprise": {
979
+ "perf": 87,
980
+ "dx": 73,
981
+ "ecosystem": 63,
982
+ "maintain": 85,
983
+ "cost": 97,
984
+ "compliance": 100
985
+ }
986
+ }
987
+ },
988
+ "railway": {
989
+ "id": "railway",
990
+ "name": "Railway",
991
+ "category": "hosting",
992
+ "ecosystem": "universal",
993
+ "url": "https://railway.app",
994
+ "scores": {
995
+ "default": {
996
+ "perf": 85,
997
+ "dx": 73,
998
+ "ecosystem": 45,
999
+ "maintain": 77,
1000
+ "cost": 73,
1001
+ "compliance": 82
1002
+ },
1003
+ "mvp": {
1004
+ "perf": 82,
1005
+ "dx": 78,
1006
+ "ecosystem": 48,
1007
+ "maintain": 77,
1008
+ "cost": 73,
1009
+ "compliance": 82
1010
+ },
1011
+ "enterprise": {
1012
+ "perf": 85,
1013
+ "dx": 73,
1014
+ "ecosystem": 40,
1015
+ "maintain": 82,
1016
+ "cost": 78,
1017
+ "compliance": 92
1018
+ }
1019
+ }
1020
+ },
1021
+ "fly": {
1022
+ "id": "fly",
1023
+ "name": "Fly.io",
1024
+ "category": "hosting",
1025
+ "ecosystem": "universal",
1026
+ "url": "https://fly.io",
1027
+ "scores": {
1028
+ "default": {
1029
+ "perf": 85,
1030
+ "dx": 71,
1031
+ "ecosystem": 43,
1032
+ "maintain": 75,
1033
+ "cost": 78,
1034
+ "compliance": 81
1035
+ },
1036
+ "mvp": {
1037
+ "perf": 82,
1038
+ "dx": 76,
1039
+ "ecosystem": 46,
1040
+ "maintain": 75,
1041
+ "cost": 78,
1042
+ "compliance": 81
1043
+ },
1044
+ "enterprise": {
1045
+ "perf": 85,
1046
+ "dx": 71,
1047
+ "ecosystem": 38,
1048
+ "maintain": 80,
1049
+ "cost": 83,
1050
+ "compliance": 91
1051
+ }
1052
+ }
1053
+ },
1054
+ "nodejs": {
1055
+ "id": "nodejs",
1056
+ "name": "Node.js",
1057
+ "category": "backend",
1058
+ "ecosystem": "javascript",
1059
+ "url": "https://nodejs.org",
1060
+ "scores": {
1061
+ "default": {
1062
+ "perf": 75,
1063
+ "dx": 85,
1064
+ "ecosystem": 98,
1065
+ "maintain": 80,
1066
+ "cost": 90,
1067
+ "compliance": 88
1068
+ },
1069
+ "mvp": {
1070
+ "perf": 70,
1071
+ "dx": 85,
1072
+ "ecosystem": 98,
1073
+ "maintain": 78,
1074
+ "cost": 95,
1075
+ "compliance": 85
1076
+ },
1077
+ "enterprise": {
1078
+ "perf": 78,
1079
+ "dx": 85,
1080
+ "ecosystem": 98,
1081
+ "maintain": 82,
1082
+ "cost": 85,
1083
+ "compliance": 90
1084
+ }
1085
+ }
1086
+ },
1087
+ "bun": {
1088
+ "id": "bun",
1089
+ "name": "Bun",
1090
+ "category": "backend",
1091
+ "ecosystem": "javascript",
1092
+ "url": "https://bun.sh",
1093
+ "scores": {
1094
+ "default": {
1095
+ "perf": 98,
1096
+ "dx": 92,
1097
+ "ecosystem": 60,
1098
+ "maintain": 75,
1099
+ "cost": 95,
1100
+ "compliance": 80
1101
+ },
1102
+ "mvp": {
1103
+ "perf": 98,
1104
+ "dx": 95,
1105
+ "ecosystem": 55,
1106
+ "maintain": 72,
1107
+ "cost": 98,
1108
+ "compliance": 78
1109
+ },
1110
+ "enterprise": {
1111
+ "perf": 98,
1112
+ "dx": 88,
1113
+ "ecosystem": 58,
1114
+ "maintain": 70,
1115
+ "cost": 90,
1116
+ "compliance": 75
1117
+ }
1118
+ }
1119
+ },
1120
+ "better-auth": {
1121
+ "id": "better-auth",
1122
+ "name": "Better Auth",
1123
+ "category": "auth",
1124
+ "ecosystem": "javascript",
1125
+ "url": "https://better-auth.com",
1126
+ "scores": {
1127
+ "default": {
1128
+ "perf": 56,
1129
+ "dx": 99,
1130
+ "ecosystem": 100,
1131
+ "maintain": 89,
1132
+ "cost": 90,
1133
+ "compliance": 85
1134
+ },
1135
+ "mvp": {
1136
+ "perf": 53,
1137
+ "dx": 100,
1138
+ "ecosystem": 100,
1139
+ "maintain": 89,
1140
+ "cost": 90,
1141
+ "compliance": 85
1142
+ },
1143
+ "enterprise": {
1144
+ "perf": 56,
1145
+ "dx": 99,
1146
+ "ecosystem": 95,
1147
+ "maintain": 94,
1148
+ "cost": 95,
1149
+ "compliance": 95
1150
+ }
1151
+ }
1152
+ },
1153
+ "php": {
1154
+ "id": "php",
1155
+ "name": "PHP",
1156
+ "category": "backend",
1157
+ "ecosystem": "php",
1158
+ "url": "https://php.net",
1159
+ "scores": {
1160
+ "default": {
1161
+ "perf": 75,
1162
+ "dx": 80,
1163
+ "ecosystem": 95,
1164
+ "maintain": 85,
1165
+ "cost": 90,
1166
+ "compliance": 80
1167
+ },
1168
+ "mvp": {
1169
+ "perf": 72,
1170
+ "dx": 85,
1171
+ "ecosystem": 98,
1172
+ "maintain": 85,
1173
+ "cost": 95,
1174
+ "compliance": 78
1175
+ },
1176
+ "enterprise": {
1177
+ "perf": 78,
1178
+ "dx": 78,
1179
+ "ecosystem": 92,
1180
+ "maintain": 90,
1181
+ "cost": 88,
1182
+ "compliance": 85
1183
+ }
1184
+ }
1185
+ },
1186
+ "laravel": {
1187
+ "id": "laravel",
1188
+ "name": "Laravel",
1189
+ "category": "meta-framework",
1190
+ "ecosystem": "php",
1191
+ "stackType": "all-in-one",
1192
+ "provides": {
1193
+ "orm": {
1194
+ "techId": "eloquent",
1195
+ "type": "native",
1196
+ "label": "Eloquent ORM inclus"
1197
+ },
1198
+ "auth": {
1199
+ "options": [
1200
+ {
1201
+ "techId": "laravel-sanctum",
1202
+ "type": "native",
1203
+ "label": "Sanctum (API tokens)"
1204
+ },
1205
+ {
1206
+ "techId": "laravel-breeze",
1207
+ "type": "native",
1208
+ "label": "Breeze (starter kit)"
1209
+ }
1210
+ ],
1211
+ "note": "Auth native incluse. Clerk disponible pour SSO avance."
1212
+ }
1213
+ },
1214
+ "preferredHosting": [
1215
+ "forge",
1216
+ "vapor",
1217
+ "ploi",
1218
+ "railway"
1219
+ ],
1220
+ "url": "https://laravel.com",
1221
+ "scores": {
1222
+ "default": {
1223
+ "perf": 78,
1224
+ "dx": 95,
1225
+ "ecosystem": 92,
1226
+ "maintain": 88,
1227
+ "cost": 85,
1228
+ "compliance": 82
1229
+ },
1230
+ "mvp": {
1231
+ "perf": 75,
1232
+ "dx": 98,
1233
+ "ecosystem": 95,
1234
+ "maintain": 88,
1235
+ "cost": 90,
1236
+ "compliance": 80
1237
+ },
1238
+ "enterprise": {
1239
+ "perf": 80,
1240
+ "dx": 92,
1241
+ "ecosystem": 88,
1242
+ "maintain": 92,
1243
+ "cost": 80,
1244
+ "compliance": 88
1245
+ }
1246
+ }
1247
+ },
1248
+ "eloquent": {
1249
+ "id": "eloquent",
1250
+ "name": "Eloquent ORM",
1251
+ "category": "orm",
1252
+ "ecosystem": "php",
1253
+ "nativeFor": [
1254
+ "laravel"
1255
+ ],
1256
+ "url": "https://laravel.com/docs/eloquent",
1257
+ "scores": {
1258
+ "default": {
1259
+ "perf": 75,
1260
+ "dx": 92,
1261
+ "ecosystem": 88,
1262
+ "maintain": 85,
1263
+ "cost": 95,
1264
+ "compliance": 80
1265
+ },
1266
+ "mvp": {
1267
+ "perf": 72,
1268
+ "dx": 96,
1269
+ "ecosystem": 90,
1270
+ "maintain": 85,
1271
+ "cost": 98,
1272
+ "compliance": 78
1273
+ },
1274
+ "enterprise": {
1275
+ "perf": 78,
1276
+ "dx": 88,
1277
+ "ecosystem": 85,
1278
+ "maintain": 90,
1279
+ "cost": 92,
1280
+ "compliance": 85
1281
+ }
1282
+ }
1283
+ },
1284
+ "livewire": {
1285
+ "id": "livewire",
1286
+ "name": "Livewire",
1287
+ "category": "frontend",
1288
+ "ecosystem": "php",
1289
+ "nativeFor": [
1290
+ "laravel"
1291
+ ],
1292
+ "url": "https://livewire.laravel.com",
1293
+ "scores": {
1294
+ "default": {
1295
+ "perf": 70,
1296
+ "dx": 90,
1297
+ "ecosystem": 75,
1298
+ "maintain": 80,
1299
+ "cost": 95,
1300
+ "compliance": 80
1301
+ },
1302
+ "mvp": {
1303
+ "perf": 68,
1304
+ "dx": 95,
1305
+ "ecosystem": 78,
1306
+ "maintain": 80,
1307
+ "cost": 98,
1308
+ "compliance": 78
1309
+ },
1310
+ "enterprise": {
1311
+ "perf": 72,
1312
+ "dx": 88,
1313
+ "ecosystem": 72,
1314
+ "maintain": 85,
1315
+ "cost": 92,
1316
+ "compliance": 85
1317
+ }
1318
+ }
1319
+ },
1320
+ "inertia": {
1321
+ "id": "inertia",
1322
+ "name": "Inertia.js",
1323
+ "category": "frontend",
1324
+ "ecosystem": "php",
1325
+ "nativeFor": [
1326
+ "laravel"
1327
+ ],
1328
+ "url": "https://inertiajs.com",
1329
+ "scores": {
1330
+ "default": {
1331
+ "perf": 80,
1332
+ "dx": 88,
1333
+ "ecosystem": 70,
1334
+ "maintain": 82,
1335
+ "cost": 95,
1336
+ "compliance": 80
1337
+ },
1338
+ "mvp": {
1339
+ "perf": 78,
1340
+ "dx": 92,
1341
+ "ecosystem": 73,
1342
+ "maintain": 82,
1343
+ "cost": 98,
1344
+ "compliance": 78
1345
+ },
1346
+ "enterprise": {
1347
+ "perf": 82,
1348
+ "dx": 85,
1349
+ "ecosystem": 68,
1350
+ "maintain": 87,
1351
+ "cost": 92,
1352
+ "compliance": 85
1353
+ }
1354
+ }
1355
+ },
1356
+ "laravel-sanctum": {
1357
+ "id": "laravel-sanctum",
1358
+ "name": "Laravel Sanctum",
1359
+ "category": "auth",
1360
+ "ecosystem": "php",
1361
+ "nativeFor": [
1362
+ "laravel"
1363
+ ],
1364
+ "url": "https://laravel.com/docs/sanctum",
1365
+ "scores": {
1366
+ "default": {
1367
+ "perf": 85,
1368
+ "dx": 90,
1369
+ "ecosystem": 80,
1370
+ "maintain": 85,
1371
+ "cost": 95,
1372
+ "compliance": 85
1373
+ },
1374
+ "mvp": {
1375
+ "perf": 82,
1376
+ "dx": 94,
1377
+ "ecosystem": 83,
1378
+ "maintain": 85,
1379
+ "cost": 98,
1380
+ "compliance": 82
1381
+ },
1382
+ "enterprise": {
1383
+ "perf": 88,
1384
+ "dx": 87,
1385
+ "ecosystem": 78,
1386
+ "maintain": 90,
1387
+ "cost": 92,
1388
+ "compliance": 90
1389
+ }
1390
+ }
1391
+ },
1392
+ "laravel-breeze": {
1393
+ "id": "laravel-breeze",
1394
+ "name": "Laravel Breeze",
1395
+ "category": "auth",
1396
+ "ecosystem": "php",
1397
+ "nativeFor": [
1398
+ "laravel"
1399
+ ],
1400
+ "url": "https://laravel.com/docs/starter-kits",
1401
+ "scores": {
1402
+ "default": {
1403
+ "perf": 80,
1404
+ "dx": 95,
1405
+ "ecosystem": 75,
1406
+ "maintain": 85,
1407
+ "cost": 100,
1408
+ "compliance": 80
1409
+ },
1410
+ "mvp": {
1411
+ "perf": 78,
1412
+ "dx": 98,
1413
+ "ecosystem": 78,
1414
+ "maintain": 85,
1415
+ "cost": 100,
1416
+ "compliance": 78
1417
+ },
1418
+ "enterprise": {
1419
+ "perf": 82,
1420
+ "dx": 92,
1421
+ "ecosystem": 72,
1422
+ "maintain": 90,
1423
+ "cost": 100,
1424
+ "compliance": 85
1425
+ }
1426
+ }
1427
+ },
1428
+ "forge": {
1429
+ "id": "forge",
1430
+ "name": "Laravel Forge",
1431
+ "category": "hosting",
1432
+ "ecosystem": "php",
1433
+ "url": "https://forge.laravel.com",
1434
+ "scores": {
1435
+ "default": {
1436
+ "perf": 85,
1437
+ "dx": 88,
1438
+ "ecosystem": 80,
1439
+ "maintain": 75,
1440
+ "cost": 60,
1441
+ "compliance": 85
1442
+ },
1443
+ "mvp": {
1444
+ "perf": 82,
1445
+ "dx": 92,
1446
+ "ecosystem": 83,
1447
+ "maintain": 75,
1448
+ "cost": 55,
1449
+ "compliance": 82
1450
+ },
1451
+ "enterprise": {
1452
+ "perf": 88,
1453
+ "dx": 85,
1454
+ "ecosystem": 78,
1455
+ "maintain": 80,
1456
+ "cost": 65,
1457
+ "compliance": 90
1458
+ }
1459
+ }
1460
+ },
1461
+ "vapor": {
1462
+ "id": "vapor",
1463
+ "name": "Laravel Vapor",
1464
+ "category": "hosting",
1465
+ "ecosystem": "php",
1466
+ "url": "https://vapor.laravel.com",
1467
+ "scores": {
1468
+ "default": {
1469
+ "perf": 90,
1470
+ "dx": 85,
1471
+ "ecosystem": 70,
1472
+ "maintain": 70,
1473
+ "cost": 50,
1474
+ "compliance": 90
1475
+ },
1476
+ "mvp": {
1477
+ "perf": 88,
1478
+ "dx": 88,
1479
+ "ecosystem": 73,
1480
+ "maintain": 70,
1481
+ "cost": 45,
1482
+ "compliance": 88
1483
+ },
1484
+ "enterprise": {
1485
+ "perf": 92,
1486
+ "dx": 82,
1487
+ "ecosystem": 68,
1488
+ "maintain": 75,
1489
+ "cost": 55,
1490
+ "compliance": 95
1491
+ }
1492
+ }
1493
+ },
1494
+ "ploi": {
1495
+ "id": "ploi",
1496
+ "name": "Ploi.io",
1497
+ "category": "hosting",
1498
+ "ecosystem": "php",
1499
+ "url": "https://ploi.io",
1500
+ "scores": {
1501
+ "default": {
1502
+ "perf": 82,
1503
+ "dx": 90,
1504
+ "ecosystem": 65,
1505
+ "maintain": 75,
1506
+ "cost": 70,
1507
+ "compliance": 80
1508
+ },
1509
+ "mvp": {
1510
+ "perf": 80,
1511
+ "dx": 94,
1512
+ "ecosystem": 68,
1513
+ "maintain": 75,
1514
+ "cost": 75,
1515
+ "compliance": 78
1516
+ },
1517
+ "enterprise": {
1518
+ "perf": 85,
1519
+ "dx": 87,
1520
+ "ecosystem": 62,
1521
+ "maintain": 80,
1522
+ "cost": 68,
1523
+ "compliance": 85
1524
+ }
1525
+ }
1526
+ },
1527
+ "symfony": {
1528
+ "id": "symfony",
1529
+ "name": "Symfony",
1530
+ "category": "meta-framework",
1531
+ "ecosystem": "php",
1532
+ "stackType": "modular",
1533
+ "preferredHosting": [
1534
+ "forge",
1535
+ "ploi",
1536
+ "railway"
1537
+ ],
1538
+ "url": "https://symfony.com",
1539
+ "scores": {
1540
+ "default": {
1541
+ "perf": 80,
1542
+ "dx": 75,
1543
+ "ecosystem": 88,
1544
+ "maintain": 90,
1545
+ "cost": 85,
1546
+ "compliance": 88
1547
+ },
1548
+ "mvp": {
1549
+ "perf": 78,
1550
+ "dx": 78,
1551
+ "ecosystem": 90,
1552
+ "maintain": 90,
1553
+ "cost": 88,
1554
+ "compliance": 85
1555
+ },
1556
+ "enterprise": {
1557
+ "perf": 82,
1558
+ "dx": 72,
1559
+ "ecosystem": 85,
1560
+ "maintain": 95,
1561
+ "cost": 82,
1562
+ "compliance": 92
1563
+ }
1564
+ }
1565
+ },
1566
+ "doctrine": {
1567
+ "id": "doctrine",
1568
+ "name": "Doctrine ORM",
1569
+ "category": "orm",
1570
+ "ecosystem": "php",
1571
+ "nativeFor": [
1572
+ "symfony"
1573
+ ],
1574
+ "url": "https://doctrine-project.org",
1575
+ "scores": {
1576
+ "default": {
1577
+ "perf": 78,
1578
+ "dx": 70,
1579
+ "ecosystem": 85,
1580
+ "maintain": 88,
1581
+ "cost": 95,
1582
+ "compliance": 85
1583
+ },
1584
+ "mvp": {
1585
+ "perf": 75,
1586
+ "dx": 73,
1587
+ "ecosystem": 88,
1588
+ "maintain": 88,
1589
+ "cost": 98,
1590
+ "compliance": 82
1591
+ },
1592
+ "enterprise": {
1593
+ "perf": 80,
1594
+ "dx": 68,
1595
+ "ecosystem": 82,
1596
+ "maintain": 92,
1597
+ "cost": 92,
1598
+ "compliance": 90
1599
+ }
1600
+ }
1601
+ },
1602
+ "filament": {
1603
+ "id": "filament",
1604
+ "name": "Filament",
1605
+ "category": "cms",
1606
+ "ecosystem": "php",
1607
+ "nativeFor": [
1608
+ "laravel"
1609
+ ],
1610
+ "url": "https://filamentphp.com",
1611
+ "scores": {
1612
+ "default": {
1613
+ "perf": 75,
1614
+ "dx": 92,
1615
+ "ecosystem": 70,
1616
+ "maintain": 80,
1617
+ "cost": 100,
1618
+ "compliance": 80
1619
+ },
1620
+ "mvp": {
1621
+ "perf": 72,
1622
+ "dx": 96,
1623
+ "ecosystem": 73,
1624
+ "maintain": 80,
1625
+ "cost": 100,
1626
+ "compliance": 78
1627
+ },
1628
+ "enterprise": {
1629
+ "perf": 78,
1630
+ "dx": 89,
1631
+ "ecosystem": 68,
1632
+ "maintain": 85,
1633
+ "cost": 100,
1634
+ "compliance": 85
1635
+ }
1636
+ }
1637
+ },
1638
+ "nova": {
1639
+ "id": "nova",
1640
+ "name": "Laravel Nova",
1641
+ "category": "cms",
1642
+ "ecosystem": "php",
1643
+ "nativeFor": [
1644
+ "laravel"
1645
+ ],
1646
+ "url": "https://nova.laravel.com",
1647
+ "scores": {
1648
+ "default": {
1649
+ "perf": 80,
1650
+ "dx": 88,
1651
+ "ecosystem": 75,
1652
+ "maintain": 85,
1653
+ "cost": 40,
1654
+ "compliance": 85
1655
+ },
1656
+ "mvp": {
1657
+ "perf": 78,
1658
+ "dx": 92,
1659
+ "ecosystem": 78,
1660
+ "maintain": 85,
1661
+ "cost": 35,
1662
+ "compliance": 82
1663
+ },
1664
+ "enterprise": {
1665
+ "perf": 82,
1666
+ "dx": 85,
1667
+ "ecosystem": 72,
1668
+ "maintain": 90,
1669
+ "cost": 45,
1670
+ "compliance": 90
1671
+ }
1672
+ }
1673
+ },
1674
+ "planetscale": {
1675
+ "id": "planetscale",
1676
+ "name": "Planetscale",
1677
+ "category": "database",
1678
+ "ecosystem": "universal",
1679
+ "url": "https://planetscale.com",
1680
+ "scores": {
1681
+ "default": {
1682
+ "perf": 75,
1683
+ "dx": 95,
1684
+ "ecosystem": 74,
1685
+ "maintain": 50,
1686
+ "cost": 73,
1687
+ "compliance": 94
1688
+ },
1689
+ "mvp": {
1690
+ "perf": 72,
1691
+ "dx": 100,
1692
+ "ecosystem": 77,
1693
+ "maintain": 50,
1694
+ "cost": 73,
1695
+ "compliance": 94
1696
+ },
1697
+ "enterprise": {
1698
+ "perf": 75,
1699
+ "dx": 95,
1700
+ "ecosystem": 69,
1701
+ "maintain": 55,
1702
+ "cost": 78,
1703
+ "compliance": 100
1704
+ }
1705
+ }
1706
+ },
1707
+ "turso": {
1708
+ "id": "turso",
1709
+ "name": "Turso",
1710
+ "category": "database",
1711
+ "ecosystem": "universal",
1712
+ "url": "https://turso.tech",
1713
+ "scores": {
1714
+ "default": {
1715
+ "perf": 92,
1716
+ "dx": 95,
1717
+ "ecosystem": 67,
1718
+ "maintain": 45,
1719
+ "cost": 88,
1720
+ "compliance": 88
1721
+ },
1722
+ "mvp": {
1723
+ "perf": 89,
1724
+ "dx": 100,
1725
+ "ecosystem": 70,
1726
+ "maintain": 45,
1727
+ "cost": 88,
1728
+ "compliance": 88
1729
+ },
1730
+ "enterprise": {
1731
+ "perf": 92,
1732
+ "dx": 95,
1733
+ "ecosystem": 62,
1734
+ "maintain": 50,
1735
+ "cost": 93,
1736
+ "compliance": 98
1737
+ }
1738
+ }
1739
+ },
1740
+ "convex": {
1741
+ "id": "convex",
1742
+ "name": "Convex",
1743
+ "category": "database",
1744
+ "ecosystem": "javascript",
1745
+ "url": "https://convex.dev",
1746
+ "scores": {
1747
+ "default": {
1748
+ "perf": 92,
1749
+ "dx": 100,
1750
+ "ecosystem": 41,
1751
+ "maintain": 49,
1752
+ "cost": 83,
1753
+ "compliance": 83
1754
+ },
1755
+ "mvp": {
1756
+ "perf": 89,
1757
+ "dx": 100,
1758
+ "ecosystem": 44,
1759
+ "maintain": 49,
1760
+ "cost": 83,
1761
+ "compliance": 83
1762
+ },
1763
+ "enterprise": {
1764
+ "perf": 92,
1765
+ "dx": 100,
1766
+ "ecosystem": 36,
1767
+ "maintain": 54,
1768
+ "cost": 88,
1769
+ "compliance": 93
1770
+ }
1771
+ }
1772
+ },
1773
+ "timescaledb": {
1774
+ "id": "timescaledb",
1775
+ "name": "Timescaledb",
1776
+ "category": "database",
1777
+ "ecosystem": "universal",
1778
+ "url": "https://timescale.com",
1779
+ "scores": {
1780
+ "default": {
1781
+ "perf": 84,
1782
+ "dx": 69,
1783
+ "ecosystem": 50,
1784
+ "maintain": 79,
1785
+ "cost": 73,
1786
+ "compliance": 90
1787
+ },
1788
+ "mvp": {
1789
+ "perf": 81,
1790
+ "dx": 74,
1791
+ "ecosystem": 53,
1792
+ "maintain": 79,
1793
+ "cost": 73,
1794
+ "compliance": 90
1795
+ },
1796
+ "enterprise": {
1797
+ "perf": 84,
1798
+ "dx": 69,
1799
+ "ecosystem": 45,
1800
+ "maintain": 84,
1801
+ "cost": 78,
1802
+ "compliance": 100
1803
+ }
1804
+ }
1805
+ },
1806
+ "clickhouse": {
1807
+ "id": "clickhouse",
1808
+ "name": "Clickhouse",
1809
+ "category": "database",
1810
+ "ecosystem": "universal",
1811
+ "url": "https://clickhouse.com",
1812
+ "scores": {
1813
+ "default": {
1814
+ "perf": 93,
1815
+ "dx": 78,
1816
+ "ecosystem": 56,
1817
+ "maintain": 69,
1818
+ "cost": 78,
1819
+ "compliance": 89
1820
+ },
1821
+ "mvp": {
1822
+ "perf": 90,
1823
+ "dx": 83,
1824
+ "ecosystem": 59,
1825
+ "maintain": 69,
1826
+ "cost": 78,
1827
+ "compliance": 89
1828
+ },
1829
+ "enterprise": {
1830
+ "perf": 93,
1831
+ "dx": 78,
1832
+ "ecosystem": 51,
1833
+ "maintain": 74,
1834
+ "cost": 83,
1835
+ "compliance": 99
1836
+ }
1837
+ }
1838
+ },
1839
+ "neo4j": {
1840
+ "id": "neo4j",
1841
+ "name": "Neo4j",
1842
+ "category": "database",
1843
+ "ecosystem": "universal",
1844
+ "url": "https://neo4j.com",
1845
+ "scores": {
1846
+ "default": {
1847
+ "perf": 82,
1848
+ "dx": 82,
1849
+ "ecosystem": 76,
1850
+ "maintain": 74,
1851
+ "cost": 68,
1852
+ "compliance": 91
1853
+ },
1854
+ "mvp": {
1855
+ "perf": 79,
1856
+ "dx": 87,
1857
+ "ecosystem": 79,
1858
+ "maintain": 74,
1859
+ "cost": 68,
1860
+ "compliance": 91
1861
+ },
1862
+ "enterprise": {
1863
+ "perf": 82,
1864
+ "dx": 82,
1865
+ "ecosystem": 71,
1866
+ "maintain": 79,
1867
+ "cost": 73,
1868
+ "compliance": 100
1869
+ }
1870
+ }
1871
+ },
1872
+ "auth0": {
1873
+ "id": "auth0",
1874
+ "name": "Auth0",
1875
+ "category": "auth",
1876
+ "ecosystem": "universal",
1877
+ "url": "https://auth0.com",
1878
+ "scores": {
1879
+ "default": {
1880
+ "perf": 97,
1881
+ "dx": 88,
1882
+ "ecosystem": 68,
1883
+ "maintain": 84,
1884
+ "cost": 54,
1885
+ "compliance": 99
1886
+ },
1887
+ "mvp": {
1888
+ "perf": 94,
1889
+ "dx": 93,
1890
+ "ecosystem": 71,
1891
+ "maintain": 84,
1892
+ "cost": 54,
1893
+ "compliance": 99
1894
+ },
1895
+ "enterprise": {
1896
+ "perf": 97,
1897
+ "dx": 88,
1898
+ "ecosystem": 63,
1899
+ "maintain": 89,
1900
+ "cost": 59,
1901
+ "compliance": 100
1902
+ }
1903
+ }
1904
+ },
1905
+ "workos": {
1906
+ "id": "workos",
1907
+ "name": "WorkOS",
1908
+ "category": "auth",
1909
+ "ecosystem": "universal",
1910
+ "url": "https://workos.com",
1911
+ "scores": {
1912
+ "default": {
1913
+ "perf": 97,
1914
+ "dx": 86,
1915
+ "ecosystem": 43,
1916
+ "maintain": 84,
1917
+ "cost": 47,
1918
+ "compliance": 99
1919
+ },
1920
+ "mvp": {
1921
+ "perf": 94,
1922
+ "dx": 91,
1923
+ "ecosystem": 46,
1924
+ "maintain": 84,
1925
+ "cost": 47,
1926
+ "compliance": 99
1927
+ },
1928
+ "enterprise": {
1929
+ "perf": 97,
1930
+ "dx": 86,
1931
+ "ecosystem": 38,
1932
+ "maintain": 89,
1933
+ "cost": 52,
1934
+ "compliance": 100
1935
+ }
1936
+ }
1937
+ },
1938
+ "hanko": {
1939
+ "id": "hanko",
1940
+ "name": "Hanko",
1941
+ "category": "auth",
1942
+ "ecosystem": "universal",
1943
+ "url": "https://hanko.io",
1944
+ "scores": {
1945
+ "default": {
1946
+ "perf": 85,
1947
+ "dx": 81,
1948
+ "ecosystem": 35,
1949
+ "maintain": 87,
1950
+ "cost": 87,
1951
+ "compliance": 90
1952
+ },
1953
+ "mvp": {
1954
+ "perf": 82,
1955
+ "dx": 86,
1956
+ "ecosystem": 38,
1957
+ "maintain": 87,
1958
+ "cost": 87,
1959
+ "compliance": 90
1960
+ },
1961
+ "enterprise": {
1962
+ "perf": 85,
1963
+ "dx": 81,
1964
+ "ecosystem": 30,
1965
+ "maintain": 92,
1966
+ "cost": 92,
1967
+ "compliance": 100
1968
+ }
1969
+ }
1970
+ },
1971
+ "kinde": {
1972
+ "id": "kinde",
1973
+ "name": "Kinde",
1974
+ "category": "auth",
1975
+ "ecosystem": "universal",
1976
+ "url": "https://kinde.com",
1977
+ "scores": {
1978
+ "default": {
1979
+ "perf": 92,
1980
+ "dx": 85,
1981
+ "ecosystem": 38,
1982
+ "maintain": 56,
1983
+ "cost": 77,
1984
+ "compliance": 92
1985
+ },
1986
+ "mvp": {
1987
+ "perf": 89,
1988
+ "dx": 90,
1989
+ "ecosystem": 41,
1990
+ "maintain": 56,
1991
+ "cost": 77,
1992
+ "compliance": 92
1993
+ },
1994
+ "enterprise": {
1995
+ "perf": 92,
1996
+ "dx": 85,
1997
+ "ecosystem": 33,
1998
+ "maintain": 61,
1999
+ "cost": 82,
2000
+ "compliance": 100
2001
+ }
2002
+ }
2003
+ },
2004
+ "solidstart": {
2005
+ "id": "solidstart",
2006
+ "name": "Solidstart",
2007
+ "category": "meta-framework",
2008
+ "ecosystem": "javascript",
2009
+ "url": "https://start.solidjs.com",
2010
+ "scores": {
2011
+ "default": {
2012
+ "perf": 50,
2013
+ "dx": 73,
2014
+ "ecosystem": 88,
2015
+ "maintain": 52,
2016
+ "cost": 90,
2017
+ "compliance": 85
2018
+ },
2019
+ "mvp": {
2020
+ "perf": 47,
2021
+ "dx": 78,
2022
+ "ecosystem": 91,
2023
+ "maintain": 52,
2024
+ "cost": 90,
2025
+ "compliance": 85
2026
+ },
2027
+ "enterprise": {
2028
+ "perf": 50,
2029
+ "dx": 73,
2030
+ "ecosystem": 83,
2031
+ "maintain": 57,
2032
+ "cost": 95,
2033
+ "compliance": 95
2034
+ }
2035
+ }
2036
+ },
2037
+ "typeorm": {
2038
+ "id": "typeorm",
2039
+ "name": "Typeorm",
2040
+ "category": "orm",
2041
+ "ecosystem": "javascript",
2042
+ "url": "https://typeorm.io",
2043
+ "scores": {
2044
+ "default": {
2045
+ "perf": 50,
2046
+ "dx": 89,
2047
+ "ecosystem": 100,
2048
+ "maintain": 74,
2049
+ "cost": 90,
2050
+ "compliance": 85
2051
+ },
2052
+ "mvp": {
2053
+ "perf": 47,
2054
+ "dx": 94,
2055
+ "ecosystem": 100,
2056
+ "maintain": 74,
2057
+ "cost": 90,
2058
+ "compliance": 85
2059
+ },
2060
+ "enterprise": {
2061
+ "perf": 50,
2062
+ "dx": 89,
2063
+ "ecosystem": 95,
2064
+ "maintain": 79,
2065
+ "cost": 95,
2066
+ "compliance": 95
2067
+ }
2068
+ }
2069
+ },
2070
+ "sequelize": {
2071
+ "id": "sequelize",
2072
+ "name": "Sequelize",
2073
+ "category": "orm",
2074
+ "ecosystem": "javascript",
2075
+ "url": "https://sequelize.org",
2076
+ "scores": {
2077
+ "default": {
2078
+ "perf": 48,
2079
+ "dx": 67,
2080
+ "ecosystem": 100,
2081
+ "maintain": 49,
2082
+ "cost": 90,
2083
+ "compliance": 85
2084
+ },
2085
+ "mvp": {
2086
+ "perf": 45,
2087
+ "dx": 72,
2088
+ "ecosystem": 100,
2089
+ "maintain": 49,
2090
+ "cost": 90,
2091
+ "compliance": 85
2092
+ },
2093
+ "enterprise": {
2094
+ "perf": 48,
2095
+ "dx": 67,
2096
+ "ecosystem": 95,
2097
+ "maintain": 54,
2098
+ "cost": 95,
2099
+ "compliance": 95
2100
+ }
2101
+ }
2102
+ },
2103
+ "netlify": {
2104
+ "id": "netlify",
2105
+ "name": "Netlify",
2106
+ "category": "hosting",
2107
+ "ecosystem": "universal",
2108
+ "url": "https://netlify.com",
2109
+ "scores": {
2110
+ "default": {
2111
+ "perf": 87,
2112
+ "dx": 76,
2113
+ "ecosystem": 63,
2114
+ "maintain": 82,
2115
+ "cost": 79,
2116
+ "compliance": 90
2117
+ },
2118
+ "mvp": {
2119
+ "perf": 84,
2120
+ "dx": 81,
2121
+ "ecosystem": 66,
2122
+ "maintain": 82,
2123
+ "cost": 79,
2124
+ "compliance": 90
2125
+ },
2126
+ "enterprise": {
2127
+ "perf": 87,
2128
+ "dx": 76,
2129
+ "ecosystem": 58,
2130
+ "maintain": 87,
2131
+ "cost": 84,
2132
+ "compliance": 100
2133
+ }
2134
+ }
2135
+ },
2136
+ "deno-deploy": {
2137
+ "id": "deno-deploy",
2138
+ "name": "Deno Deploy",
2139
+ "category": "hosting",
2140
+ "ecosystem": "javascript",
2141
+ "url": "https://deno.com/deploy",
2142
+ "scores": {
2143
+ "default": {
2144
+ "perf": 86,
2145
+ "dx": 73,
2146
+ "ecosystem": 38,
2147
+ "maintain": 77,
2148
+ "cost": 87,
2149
+ "compliance": 85
2150
+ },
2151
+ "mvp": {
2152
+ "perf": 83,
2153
+ "dx": 78,
2154
+ "ecosystem": 41,
2155
+ "maintain": 77,
2156
+ "cost": 87,
2157
+ "compliance": 85
2158
+ },
2159
+ "enterprise": {
2160
+ "perf": 86,
2161
+ "dx": 73,
2162
+ "ecosystem": 33,
2163
+ "maintain": 82,
2164
+ "cost": 92,
2165
+ "compliance": 95
2166
+ }
2167
+ }
2168
+ },
2169
+ "coolify": {
2170
+ "id": "coolify",
2171
+ "name": "Coolify",
2172
+ "category": "hosting",
2173
+ "ecosystem": "universal",
2174
+ "url": "https://coolify.io",
2175
+ "scores": {
2176
+ "default": {
2177
+ "perf": 82,
2178
+ "dx": 71,
2179
+ "ecosystem": 33,
2180
+ "maintain": 87,
2181
+ "cost": 97,
2182
+ "compliance": 90
2183
+ },
2184
+ "mvp": {
2185
+ "perf": 79,
2186
+ "dx": 76,
2187
+ "ecosystem": 36,
2188
+ "maintain": 87,
2189
+ "cost": 97,
2190
+ "compliance": 90
2191
+ },
2192
+ "enterprise": {
2193
+ "perf": 82,
2194
+ "dx": 71,
2195
+ "ecosystem": 28,
2196
+ "maintain": 92,
2197
+ "cost": 100,
2198
+ "compliance": 100
2199
+ }
2200
+ }
2201
+ },
2202
+ "rust": {
2203
+ "id": "rust",
2204
+ "name": "Rust",
2205
+ "category": "backend",
2206
+ "ecosystem": "rust",
2207
+ "url": "https://www.rust-lang.org",
2208
+ "scores": {
2209
+ "default": {
2210
+ "perf": 98,
2211
+ "dx": 58,
2212
+ "ecosystem": 55,
2213
+ "maintain": 88,
2214
+ "cost": 95,
2215
+ "compliance": 92
2216
+ },
2217
+ "mvp": {
2218
+ "perf": 95,
2219
+ "dx": 48,
2220
+ "ecosystem": 50,
2221
+ "maintain": 83,
2222
+ "cost": 95,
2223
+ "compliance": 88
2224
+ },
2225
+ "enterprise": {
2226
+ "perf": 98,
2227
+ "dx": 62,
2228
+ "ecosystem": 58,
2229
+ "maintain": 92,
2230
+ "cost": 92,
2231
+ "compliance": 96
2232
+ }
2233
+ }
2234
+ },
2235
+ "axum": {
2236
+ "id": "axum",
2237
+ "name": "Axum",
2238
+ "category": "meta-framework",
2239
+ "ecosystem": "rust",
2240
+ "stackType": "modular",
2241
+ "preferredHosting": [
2242
+ "shuttle",
2243
+ "fly",
2244
+ "railway"
2245
+ ],
2246
+ "url": "https://github.com/tokio-rs/axum",
2247
+ "scores": {
2248
+ "default": {
2249
+ "perf": 96,
2250
+ "dx": 72,
2251
+ "ecosystem": 58,
2252
+ "maintain": 78,
2253
+ "cost": 95,
2254
+ "compliance": 88
2255
+ },
2256
+ "mvp": {
2257
+ "perf": 93,
2258
+ "dx": 62,
2259
+ "ecosystem": 52,
2260
+ "maintain": 73,
2261
+ "cost": 95,
2262
+ "compliance": 85
2263
+ },
2264
+ "enterprise": {
2265
+ "perf": 98,
2266
+ "dx": 75,
2267
+ "ecosystem": 62,
2268
+ "maintain": 85,
2269
+ "cost": 92,
2270
+ "compliance": 95
2271
+ }
2272
+ }
2273
+ },
2274
+ "actix": {
2275
+ "id": "actix",
2276
+ "name": "Actix Web",
2277
+ "category": "meta-framework",
2278
+ "ecosystem": "rust",
2279
+ "stackType": "modular",
2280
+ "preferredHosting": [
2281
+ "shuttle",
2282
+ "fly",
2283
+ "railway"
2284
+ ],
2285
+ "url": "https://actix.rs",
2286
+ "scores": {
2287
+ "default": {
2288
+ "perf": 99,
2289
+ "dx": 65,
2290
+ "ecosystem": 62,
2291
+ "maintain": 82,
2292
+ "cost": 95,
2293
+ "compliance": 88
2294
+ },
2295
+ "mvp": {
2296
+ "perf": 96,
2297
+ "dx": 55,
2298
+ "ecosystem": 56,
2299
+ "maintain": 77,
2300
+ "cost": 95,
2301
+ "compliance": 85
2302
+ },
2303
+ "enterprise": {
2304
+ "perf": 99,
2305
+ "dx": 68,
2306
+ "ecosystem": 65,
2307
+ "maintain": 88,
2308
+ "cost": 92,
2309
+ "compliance": 95
2310
+ }
2311
+ }
2312
+ },
2313
+ "rocket": {
2314
+ "id": "rocket",
2315
+ "name": "Rocket",
2316
+ "category": "meta-framework",
2317
+ "ecosystem": "rust",
2318
+ "stackType": "modular",
2319
+ "preferredHosting": [
2320
+ "shuttle",
2321
+ "fly",
2322
+ "railway"
2323
+ ],
2324
+ "url": "https://rocket.rs",
2325
+ "scores": {
2326
+ "default": {
2327
+ "perf": 92,
2328
+ "dx": 78,
2329
+ "ecosystem": 55,
2330
+ "maintain": 75,
2331
+ "cost": 95,
2332
+ "compliance": 85
2333
+ },
2334
+ "mvp": {
2335
+ "perf": 89,
2336
+ "dx": 72,
2337
+ "ecosystem": 50,
2338
+ "maintain": 70,
2339
+ "cost": 95,
2340
+ "compliance": 82
2341
+ },
2342
+ "enterprise": {
2343
+ "perf": 92,
2344
+ "dx": 80,
2345
+ "ecosystem": 58,
2346
+ "maintain": 82,
2347
+ "cost": 92,
2348
+ "compliance": 92
2349
+ }
2350
+ }
2351
+ },
2352
+ "loco": {
2353
+ "id": "loco",
2354
+ "name": "Loco",
2355
+ "category": "meta-framework",
2356
+ "ecosystem": "rust",
2357
+ "stackType": "all-in-one",
2358
+ "preferredHosting": [
2359
+ "shuttle",
2360
+ "fly",
2361
+ "railway"
2362
+ ],
2363
+ "url": "https://loco.rs",
2364
+ "provides": {
2365
+ "orm": {
2366
+ "techId": "sea-orm",
2367
+ "type": "native",
2368
+ "label": "SeaORM inclus",
2369
+ "description": "Loco utilise SeaORM nativement pour l'acces aux donnees"
2370
+ }
2371
+ },
2372
+ "scores": {
2373
+ "default": {
2374
+ "perf": 90,
2375
+ "dx": 82,
2376
+ "ecosystem": 42,
2377
+ "maintain": 68,
2378
+ "cost": 95,
2379
+ "compliance": 85
2380
+ },
2381
+ "mvp": {
2382
+ "perf": 87,
2383
+ "dx": 85,
2384
+ "ecosystem": 38,
2385
+ "maintain": 65,
2386
+ "cost": 95,
2387
+ "compliance": 82
2388
+ },
2389
+ "enterprise": {
2390
+ "perf": 90,
2391
+ "dx": 78,
2392
+ "ecosystem": 45,
2393
+ "maintain": 75,
2394
+ "cost": 92,
2395
+ "compliance": 92
2396
+ }
2397
+ }
2398
+ },
2399
+ "diesel": {
2400
+ "id": "diesel",
2401
+ "name": "Diesel",
2402
+ "category": "orm",
2403
+ "ecosystem": "rust",
2404
+ "url": "https://diesel.rs",
2405
+ "scores": {
2406
+ "default": {
2407
+ "perf": 98,
2408
+ "dx": 58,
2409
+ "ecosystem": 52,
2410
+ "maintain": 85,
2411
+ "cost": 100,
2412
+ "compliance": 88
2413
+ },
2414
+ "mvp": {
2415
+ "perf": 95,
2416
+ "dx": 50,
2417
+ "ecosystem": 48,
2418
+ "maintain": 80,
2419
+ "cost": 100,
2420
+ "compliance": 85
2421
+ },
2422
+ "enterprise": {
2423
+ "perf": 98,
2424
+ "dx": 62,
2425
+ "ecosystem": 55,
2426
+ "maintain": 90,
2427
+ "cost": 100,
2428
+ "compliance": 95
2429
+ }
2430
+ }
2431
+ },
2432
+ "sea-orm": {
2433
+ "id": "sea-orm",
2434
+ "name": "SeaORM",
2435
+ "category": "orm",
2436
+ "ecosystem": "rust",
2437
+ "nativeFor": [
2438
+ "loco"
2439
+ ],
2440
+ "url": "https://www.sea-ql.org/SeaORM",
2441
+ "scores": {
2442
+ "default": {
2443
+ "perf": 90,
2444
+ "dx": 75,
2445
+ "ecosystem": 48,
2446
+ "maintain": 72,
2447
+ "cost": 100,
2448
+ "compliance": 85
2449
+ },
2450
+ "mvp": {
2451
+ "perf": 87,
2452
+ "dx": 78,
2453
+ "ecosystem": 45,
2454
+ "maintain": 68,
2455
+ "cost": 100,
2456
+ "compliance": 82
2457
+ },
2458
+ "enterprise": {
2459
+ "perf": 90,
2460
+ "dx": 72,
2461
+ "ecosystem": 52,
2462
+ "maintain": 78,
2463
+ "cost": 100,
2464
+ "compliance": 92
2465
+ }
2466
+ }
2467
+ },
2468
+ "sqlx": {
2469
+ "id": "sqlx",
2470
+ "name": "SQLx",
2471
+ "category": "orm",
2472
+ "ecosystem": "rust",
2473
+ "url": "https://github.com/launchbadge/sqlx",
2474
+ "scores": {
2475
+ "default": {
2476
+ "perf": 95,
2477
+ "dx": 68,
2478
+ "ecosystem": 55,
2479
+ "maintain": 78,
2480
+ "cost": 100,
2481
+ "compliance": 88
2482
+ },
2483
+ "mvp": {
2484
+ "perf": 92,
2485
+ "dx": 65,
2486
+ "ecosystem": 50,
2487
+ "maintain": 73,
2488
+ "cost": 100,
2489
+ "compliance": 85
2490
+ },
2491
+ "enterprise": {
2492
+ "perf": 95,
2493
+ "dx": 70,
2494
+ "ecosystem": 58,
2495
+ "maintain": 85,
2496
+ "cost": 100,
2497
+ "compliance": 95
2498
+ }
2499
+ }
2500
+ },
2501
+ "shuttle": {
2502
+ "id": "shuttle",
2503
+ "name": "Shuttle",
2504
+ "category": "hosting",
2505
+ "ecosystem": "rust",
2506
+ "url": "https://www.shuttle.dev",
2507
+ "scores": {
2508
+ "default": {
2509
+ "perf": 88,
2510
+ "dx": 92,
2511
+ "ecosystem": 45,
2512
+ "maintain": 65,
2513
+ "cost": 85,
2514
+ "compliance": 82
2515
+ },
2516
+ "mvp": {
2517
+ "perf": 85,
2518
+ "dx": 95,
2519
+ "ecosystem": 42,
2520
+ "maintain": 62,
2521
+ "cost": 88,
2522
+ "compliance": 78
2523
+ },
2524
+ "enterprise": {
2525
+ "perf": 88,
2526
+ "dx": 88,
2527
+ "ecosystem": 48,
2528
+ "maintain": 72,
2529
+ "cost": 80,
2530
+ "compliance": 88
2531
+ }
2532
+ }
2533
+ },
2534
+ "trpc": {
2535
+ "id": "trpc",
2536
+ "name": "tRPC",
2537
+ "category": "backend",
2538
+ "ecosystem": "javascript",
2539
+ "url": "https://trpc.io",
2540
+ "scores": {
2541
+ "default": {
2542
+ "perf": 80,
2543
+ "dx": 89,
2544
+ "ecosystem": 99,
2545
+ "maintain": 63,
2546
+ "cost": 90,
2547
+ "compliance": 85
2548
+ },
2549
+ "mvp": {
2550
+ "perf": 77,
2551
+ "dx": 94,
2552
+ "ecosystem": 100,
2553
+ "maintain": 63,
2554
+ "cost": 90,
2555
+ "compliance": 85
2556
+ },
2557
+ "enterprise": {
2558
+ "perf": 80,
2559
+ "dx": 89,
2560
+ "ecosystem": 94,
2561
+ "maintain": 68,
2562
+ "cost": 95,
2563
+ "compliance": 95
2564
+ }
2565
+ }
2566
+ },
2567
+ "orpc": {
2568
+ "id": "orpc",
2569
+ "name": "oRPC",
2570
+ "category": "backend",
2571
+ "ecosystem": "javascript",
2572
+ "url": "https://orpc.unnoq.com",
2573
+ "scores": {
2574
+ "default": {
2575
+ "perf": 58,
2576
+ "dx": 43,
2577
+ "ecosystem": 58,
2578
+ "maintain": 51,
2579
+ "cost": 90,
2580
+ "compliance": 85
2581
+ },
2582
+ "mvp": {
2583
+ "perf": 55,
2584
+ "dx": 48,
2585
+ "ecosystem": 61,
2586
+ "maintain": 51,
2587
+ "cost": 90,
2588
+ "compliance": 85
2589
+ },
2590
+ "enterprise": {
2591
+ "perf": 58,
2592
+ "dx": 43,
2593
+ "ecosystem": 53,
2594
+ "maintain": 56,
2595
+ "cost": 95,
2596
+ "compliance": 95
2597
+ }
2598
+ }
2599
+ },
2600
+ "express": {
2601
+ "id": "express",
2602
+ "name": "Express",
2603
+ "category": "backend",
2604
+ "ecosystem": "javascript",
2605
+ "url": "https://expressjs.com",
2606
+ "scores": {
2607
+ "default": {
2608
+ "perf": 30,
2609
+ "dx": 41,
2610
+ "ecosystem": 100,
2611
+ "maintain": 56,
2612
+ "cost": 90,
2613
+ "compliance": 85
2614
+ },
2615
+ "mvp": {
2616
+ "perf": 27,
2617
+ "dx": 46,
2618
+ "ecosystem": 100,
2619
+ "maintain": 56,
2620
+ "cost": 90,
2621
+ "compliance": 85
2622
+ },
2623
+ "enterprise": {
2624
+ "perf": 30,
2625
+ "dx": 41,
2626
+ "ecosystem": 95,
2627
+ "maintain": 61,
2628
+ "cost": 95,
2629
+ "compliance": 95
2630
+ }
2631
+ }
2632
+ },
2633
+ "fastify": {
2634
+ "id": "fastify",
2635
+ "name": "Fastify",
2636
+ "category": "backend",
2637
+ "ecosystem": "javascript",
2638
+ "url": "https://fastify.dev",
2639
+ "scores": {
2640
+ "default": {
2641
+ "perf": 50,
2642
+ "dx": 71,
2643
+ "ecosystem": 100,
2644
+ "maintain": 60,
2645
+ "cost": 90,
2646
+ "compliance": 85
2647
+ },
2648
+ "mvp": {
2649
+ "perf": 47,
2650
+ "dx": 76,
2651
+ "ecosystem": 100,
2652
+ "maintain": 60,
2653
+ "cost": 90,
2654
+ "compliance": 85
2655
+ },
2656
+ "enterprise": {
2657
+ "perf": 50,
2658
+ "dx": 71,
2659
+ "ecosystem": 95,
2660
+ "maintain": 65,
2661
+ "cost": 95,
2662
+ "compliance": 95
2663
+ }
2664
+ }
2665
+ },
2666
+ "hono": {
2667
+ "id": "hono",
2668
+ "name": "Hono",
2669
+ "category": "backend",
2670
+ "ecosystem": "javascript",
2671
+ "url": "https://hono.dev",
2672
+ "scores": {
2673
+ "default": {
2674
+ "perf": 85,
2675
+ "dx": 87,
2676
+ "ecosystem": 98,
2677
+ "maintain": 62,
2678
+ "cost": 90,
2679
+ "compliance": 85
2680
+ },
2681
+ "mvp": {
2682
+ "perf": 82,
2683
+ "dx": 92,
2684
+ "ecosystem": 100,
2685
+ "maintain": 62,
2686
+ "cost": 90,
2687
+ "compliance": 85
2688
+ },
2689
+ "enterprise": {
2690
+ "perf": 85,
2691
+ "dx": 87,
2692
+ "ecosystem": 93,
2693
+ "maintain": 67,
2694
+ "cost": 95,
2695
+ "compliance": 95
2696
+ }
2697
+ }
2698
+ },
2699
+ "elysia": {
2700
+ "id": "elysia",
2701
+ "name": "Elysia",
2702
+ "category": "backend",
2703
+ "ecosystem": "javascript",
2704
+ "url": "https://elysiajs.com",
2705
+ "scores": {
2706
+ "default": {
2707
+ "perf": 72,
2708
+ "dx": 97,
2709
+ "ecosystem": 96,
2710
+ "maintain": 76,
2711
+ "cost": 90,
2712
+ "compliance": 85
2713
+ },
2714
+ "mvp": {
2715
+ "perf": 69,
2716
+ "dx": 100,
2717
+ "ecosystem": 99,
2718
+ "maintain": 76,
2719
+ "cost": 90,
2720
+ "compliance": 85
2721
+ },
2722
+ "enterprise": {
2723
+ "perf": 72,
2724
+ "dx": 97,
2725
+ "ecosystem": 91,
2726
+ "maintain": 81,
2727
+ "cost": 95,
2728
+ "compliance": 95
2729
+ }
2730
+ }
2731
+ },
2732
+ "tanstack-router": {
2733
+ "id": "tanstack-router",
2734
+ "name": "TanStack Router",
2735
+ "category": "frontend",
2736
+ "ecosystem": "javascript",
2737
+ "url": "https://tanstack.com/router",
2738
+ "scores": {
2739
+ "default": {
2740
+ "perf": 68,
2741
+ "dx": 100,
2742
+ "ecosystem": 99,
2743
+ "maintain": 83,
2744
+ "cost": 90,
2745
+ "compliance": 85
2746
+ },
2747
+ "mvp": {
2748
+ "perf": 65,
2749
+ "dx": 100,
2750
+ "ecosystem": 100,
2751
+ "maintain": 83,
2752
+ "cost": 90,
2753
+ "compliance": 85
2754
+ },
2755
+ "enterprise": {
2756
+ "perf": 68,
2757
+ "dx": 100,
2758
+ "ecosystem": 94,
2759
+ "maintain": 88,
2760
+ "cost": 95,
2761
+ "compliance": 95
2762
+ }
2763
+ }
2764
+ },
2765
+ "tanstack-start": {
2766
+ "id": "tanstack-start",
2767
+ "name": "TanStack Start",
2768
+ "category": "meta-framework",
2769
+ "ecosystem": "javascript",
2770
+ "stackType": "modular",
2771
+ "preferredHosting": [
2772
+ "vercel",
2773
+ "cloudflare",
2774
+ "netlify"
2775
+ ],
2776
+ "url": "https://tanstack.com/start",
2777
+ "scores": {
2778
+ "default": {
2779
+ "perf": 64,
2780
+ "dx": 100,
2781
+ "ecosystem": 99,
2782
+ "maintain": 83,
2783
+ "cost": 90,
2784
+ "compliance": 85
2785
+ },
2786
+ "mvp": {
2787
+ "perf": 61,
2788
+ "dx": 100,
2789
+ "ecosystem": 100,
2790
+ "maintain": 83,
2791
+ "cost": 90,
2792
+ "compliance": 85
2793
+ },
2794
+ "enterprise": {
2795
+ "perf": 64,
2796
+ "dx": 100,
2797
+ "ecosystem": 94,
2798
+ "maintain": 88,
2799
+ "cost": 95,
2800
+ "compliance": 95
2801
+ }
2802
+ }
2803
+ },
2804
+ "react-router": {
2805
+ "id": "react-router",
2806
+ "name": "React Router",
2807
+ "category": "frontend",
2808
+ "ecosystem": "javascript",
2809
+ "url": "https://reactrouter.com",
2810
+ "scores": {
2811
+ "default": {
2812
+ "perf": 77,
2813
+ "dx": 99,
2814
+ "ecosystem": 100,
2815
+ "maintain": 84,
2816
+ "cost": 90,
2817
+ "compliance": 85
2818
+ },
2819
+ "mvp": {
2820
+ "perf": 74,
2821
+ "dx": 100,
2822
+ "ecosystem": 100,
2823
+ "maintain": 84,
2824
+ "cost": 90,
2825
+ "compliance": 85
2826
+ },
2827
+ "enterprise": {
2828
+ "perf": 77,
2829
+ "dx": 99,
2830
+ "ecosystem": 95,
2831
+ "maintain": 89,
2832
+ "cost": 95,
2833
+ "compliance": 95
2834
+ }
2835
+ }
2836
+ },
2837
+ "mongoose": {
2838
+ "id": "mongoose",
2839
+ "name": "Mongoose",
2840
+ "category": "orm",
2841
+ "ecosystem": "javascript",
2842
+ "url": "https://mongoosejs.com",
2843
+ "scores": {
2844
+ "default": {
2845
+ "perf": 68,
2846
+ "dx": 90,
2847
+ "ecosystem": 100,
2848
+ "maintain": 80,
2849
+ "cost": 90,
2850
+ "compliance": 85
2851
+ },
2852
+ "mvp": {
2853
+ "perf": 65,
2854
+ "dx": 95,
2855
+ "ecosystem": 100,
2856
+ "maintain": 80,
2857
+ "cost": 90,
2858
+ "compliance": 85
2859
+ },
2860
+ "enterprise": {
2861
+ "perf": 68,
2862
+ "dx": 90,
2863
+ "ecosystem": 95,
2864
+ "maintain": 85,
2865
+ "cost": 95,
2866
+ "compliance": 95
2867
+ }
2868
+ }
2869
+ },
2870
+ "polar": {
2871
+ "id": "polar",
2872
+ "name": "Polar",
2873
+ "category": "payments",
2874
+ "ecosystem": "universal",
2875
+ "url": "https://polar.sh",
2876
+ "scores": {
2877
+ "default": {
2878
+ "perf": 93,
2879
+ "dx": 84,
2880
+ "ecosystem": 49,
2881
+ "maintain": 87,
2882
+ "cost": 72,
2883
+ "compliance": 83
2884
+ },
2885
+ "mvp": {
2886
+ "perf": 90,
2887
+ "dx": 89,
2888
+ "ecosystem": 52,
2889
+ "maintain": 87,
2890
+ "cost": 72,
2891
+ "compliance": 83
2892
+ },
2893
+ "enterprise": {
2894
+ "perf": 93,
2895
+ "dx": 84,
2896
+ "ecosystem": 44,
2897
+ "maintain": 92,
2898
+ "cost": 77,
2899
+ "compliance": 93
2900
+ }
2901
+ }
2902
+ },
2903
+ "cloudflare-d1": {
2904
+ "id": "cloudflare-d1",
2905
+ "name": "Cloudflare D1",
2906
+ "category": "database",
2907
+ "ecosystem": "javascript",
2908
+ "url": "https://developers.cloudflare.com/d1",
2909
+ "scores": {
2910
+ "default": {
2911
+ "perf": 84,
2912
+ "dx": 76,
2913
+ "ecosystem": 41,
2914
+ "maintain": 72,
2915
+ "cost": 93,
2916
+ "compliance": 91
2917
+ },
2918
+ "mvp": {
2919
+ "perf": 81,
2920
+ "dx": 81,
2921
+ "ecosystem": 44,
2922
+ "maintain": 72,
2923
+ "cost": 93,
2924
+ "compliance": 91
2925
+ },
2926
+ "enterprise": {
2927
+ "perf": 84,
2928
+ "dx": 76,
2929
+ "ecosystem": 36,
2930
+ "maintain": 77,
2931
+ "cost": 98,
2932
+ "compliance": 100
2933
+ }
2934
+ }
2935
+ }
2936
+ }
2937
+ }