aura-security 0.4.0 → 0.4.2

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.
@@ -82,6 +82,7 @@
82
82
  right: 0;
83
83
  z-index: 100;
84
84
  padding: 1rem 2rem;
85
+ background: linear-gradient(180deg, var(--bg) 0%, var(--bg) 60%, transparent 100%);
85
86
  }
86
87
 
87
88
  .nav-inner {
@@ -619,6 +620,329 @@
619
620
  }
620
621
  }
621
622
 
623
+ /* What This Replaces Section */
624
+ .replaces-section {
625
+ padding: 5rem 2rem;
626
+ background: linear-gradient(180deg, transparent, rgba(239, 68, 68, 0.02), transparent);
627
+ }
628
+
629
+ .replaces-container {
630
+ max-width: 900px;
631
+ margin: 0 auto;
632
+ }
633
+
634
+ .replaces-grid {
635
+ display: grid;
636
+ grid-template-columns: repeat(2, 1fr);
637
+ gap: 1rem;
638
+ margin-top: 2.5rem;
639
+ }
640
+
641
+ .replaces-item {
642
+ display: flex;
643
+ align-items: center;
644
+ gap: 0.75rem;
645
+ padding: 1rem 1.25rem;
646
+ background: rgba(239, 68, 68, 0.05);
647
+ border: 1px solid rgba(239, 68, 68, 0.15);
648
+ border-radius: 10px;
649
+ font-size: 0.9375rem;
650
+ color: var(--text-secondary);
651
+ }
652
+
653
+ .replaces-item::before {
654
+ content: '✕';
655
+ color: #ef4444;
656
+ font-weight: 600;
657
+ }
658
+
659
+ .replaces-instead {
660
+ margin-top: 2rem;
661
+ padding: 1.5rem;
662
+ background: rgba(16, 185, 129, 0.05);
663
+ border: 1px solid rgba(16, 185, 129, 0.2);
664
+ border-radius: 12px;
665
+ text-align: center;
666
+ }
667
+
668
+ .replaces-instead p {
669
+ color: var(--text);
670
+ font-size: 1rem;
671
+ }
672
+
673
+ .replaces-instead span {
674
+ color: var(--success);
675
+ font-weight: 600;
676
+ }
677
+
678
+ /* Architecture Section */
679
+ .architecture-section {
680
+ padding: 5rem 2rem;
681
+ }
682
+
683
+ .architecture-container {
684
+ max-width: 1100px;
685
+ margin: 0 auto;
686
+ }
687
+
688
+ .architecture-flow {
689
+ display: flex;
690
+ flex-direction: row;
691
+ align-items: center;
692
+ justify-content: center;
693
+ gap: 0;
694
+ margin-top: 2.5rem;
695
+ flex-wrap: nowrap;
696
+ }
697
+
698
+ .arch-step {
699
+ display: flex;
700
+ flex-direction: column;
701
+ align-items: center;
702
+ text-align: center;
703
+ gap: 0.375rem;
704
+ padding: 0.75rem 0.75rem;
705
+ background: var(--bg-card);
706
+ border: 1px solid var(--border);
707
+ border-radius: 10px;
708
+ min-width: 110px;
709
+ max-width: 130px;
710
+ }
711
+
712
+ .arch-step .icon {
713
+ font-size: 1.5rem;
714
+ }
715
+
716
+ .arch-step .label {
717
+ font-family: 'Space Grotesk', sans-serif;
718
+ font-weight: 600;
719
+ font-size: 0.75rem;
720
+ }
721
+
722
+ .arch-step .sublabel {
723
+ font-size: 0.625rem;
724
+ color: var(--text-muted);
725
+ line-height: 1.3;
726
+ }
727
+
728
+ .arch-arrow {
729
+ color: var(--primary);
730
+ font-size: 1rem;
731
+ padding: 0 0.25rem;
732
+ flex-shrink: 0;
733
+ }
734
+
735
+ .arch-note {
736
+ margin-top: 2rem;
737
+ text-align: center;
738
+ color: var(--text-secondary);
739
+ font-size: 0.9375rem;
740
+ }
741
+
742
+ /* Principles Section */
743
+ .principles-section {
744
+ padding: 5rem 2rem;
745
+ background: linear-gradient(180deg, transparent, rgba(6, 182, 212, 0.02), transparent);
746
+ }
747
+
748
+ .principles-container {
749
+ max-width: 900px;
750
+ margin: 0 auto;
751
+ }
752
+
753
+ .principles-grid {
754
+ display: grid;
755
+ grid-template-columns: repeat(3, 1fr);
756
+ gap: 1rem;
757
+ margin-top: 2.5rem;
758
+ }
759
+
760
+ .principle-item {
761
+ display: flex;
762
+ align-items: center;
763
+ gap: 0.75rem;
764
+ padding: 1rem 1.25rem;
765
+ background: var(--bg-card);
766
+ border: 1px solid var(--border);
767
+ border-radius: 10px;
768
+ font-size: 0.9375rem;
769
+ }
770
+
771
+ .principle-item::before {
772
+ content: '✓';
773
+ color: var(--primary);
774
+ font-weight: 600;
775
+ }
776
+
777
+ /* Built For Section */
778
+ .builtfor-section {
779
+ padding: 5rem 2rem;
780
+ }
781
+
782
+ .builtfor-container {
783
+ max-width: 900px;
784
+ margin: 0 auto;
785
+ }
786
+
787
+ .builtfor-grid {
788
+ display: grid;
789
+ grid-template-columns: repeat(2, 1fr);
790
+ gap: 1.5rem;
791
+ margin-top: 2.5rem;
792
+ }
793
+
794
+ .builtfor-card {
795
+ padding: 1.5rem;
796
+ background: var(--bg-card);
797
+ border: 1px solid var(--border);
798
+ border-radius: 12px;
799
+ }
800
+
801
+ .builtfor-card h4 {
802
+ font-family: 'Space Grotesk', sans-serif;
803
+ font-size: 1rem;
804
+ font-weight: 600;
805
+ margin-bottom: 0.5rem;
806
+ display: flex;
807
+ align-items: center;
808
+ gap: 0.5rem;
809
+ }
810
+
811
+ .builtfor-card p {
812
+ font-size: 0.875rem;
813
+ color: var(--text-secondary);
814
+ }
815
+
816
+ /* Get Started Section */
817
+ .getstarted-section {
818
+ padding: 5rem 2rem;
819
+ background: linear-gradient(180deg, rgba(6, 182, 212, 0.03), transparent);
820
+ }
821
+
822
+ .getstarted-container {
823
+ max-width: 900px;
824
+ margin: 0 auto;
825
+ }
826
+
827
+ .install-box {
828
+ background: var(--bg-card);
829
+ border: 1px solid var(--border);
830
+ border-radius: 20px;
831
+ padding: 2.5rem;
832
+ margin-top: 2.5rem;
833
+ }
834
+
835
+ .install-steps {
836
+ display: flex;
837
+ flex-direction: column;
838
+ gap: 1.5rem;
839
+ }
840
+
841
+ .install-step {
842
+ display: flex;
843
+ gap: 1.25rem;
844
+ align-items: flex-start;
845
+ }
846
+
847
+ .step-number {
848
+ width: 32px;
849
+ height: 32px;
850
+ background: linear-gradient(135deg, var(--primary), var(--secondary));
851
+ border-radius: 50%;
852
+ display: flex;
853
+ align-items: center;
854
+ justify-content: center;
855
+ font-family: 'Space Grotesk', sans-serif;
856
+ font-weight: 700;
857
+ font-size: 0.875rem;
858
+ flex-shrink: 0;
859
+ }
860
+
861
+ .step-content {
862
+ flex: 1;
863
+ }
864
+
865
+ .step-content h4 {
866
+ font-size: 1rem;
867
+ font-weight: 600;
868
+ margin-bottom: 0.5rem;
869
+ color: var(--text);
870
+ }
871
+
872
+ .step-content p {
873
+ font-size: 0.875rem;
874
+ color: var(--text-secondary);
875
+ margin-bottom: 0.75rem;
876
+ }
877
+
878
+ .code-block {
879
+ background: rgba(0, 0, 0, 0.5);
880
+ border: 1px solid var(--border);
881
+ border-radius: 10px;
882
+ padding: 1rem 1.25rem;
883
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
884
+ font-size: 0.875rem;
885
+ color: var(--text);
886
+ position: relative;
887
+ overflow-x: auto;
888
+ }
889
+
890
+ .code-block .prompt {
891
+ color: var(--primary);
892
+ user-select: none;
893
+ }
894
+
895
+ .code-block .comment {
896
+ color: var(--text-muted);
897
+ }
898
+
899
+ .copy-btn {
900
+ position: absolute;
901
+ top: 0.75rem;
902
+ right: 0.75rem;
903
+ background: rgba(148, 163, 184, 0.1);
904
+ border: 1px solid var(--border);
905
+ border-radius: 6px;
906
+ padding: 0.375rem 0.625rem;
907
+ font-size: 0.75rem;
908
+ color: var(--text-secondary);
909
+ cursor: pointer;
910
+ transition: all 0.2s;
911
+ }
912
+
913
+ .copy-btn:hover {
914
+ background: rgba(148, 163, 184, 0.2);
915
+ color: var(--text);
916
+ }
917
+
918
+ .install-links {
919
+ display: flex;
920
+ gap: 1.5rem;
921
+ margin-top: 2rem;
922
+ padding-top: 1.5rem;
923
+ border-top: 1px solid var(--border);
924
+ flex-wrap: wrap;
925
+ }
926
+
927
+ .install-link {
928
+ display: flex;
929
+ align-items: center;
930
+ gap: 0.5rem;
931
+ color: var(--text-secondary);
932
+ text-decoration: none;
933
+ font-size: 0.875rem;
934
+ transition: color 0.2s;
935
+ }
936
+
937
+ .install-link:hover {
938
+ color: var(--primary);
939
+ }
940
+
941
+ .install-link svg {
942
+ width: 18px;
943
+ height: 18px;
944
+ }
945
+
622
946
  /* Tools Section */
623
947
  .tools-section {
624
948
  padding: 6rem 2rem;
@@ -787,27 +1111,372 @@
787
1111
  }
788
1112
 
789
1113
  @media (max-width: 640px) {
790
- .nav-links {
1114
+ /* Navigation */
1115
+ nav {
1116
+ padding: 0.75rem 1rem;
1117
+ }
1118
+
1119
+ .nav-inner {
1120
+ padding: 0.5rem 1rem;
1121
+ }
1122
+
1123
+ .nav-links .nav-link {
791
1124
  display: none;
792
1125
  }
793
1126
 
1127
+ .nav-links .btn-primary {
1128
+ padding: 0.5rem 1rem;
1129
+ font-size: 0.8125rem;
1130
+ }
1131
+
1132
+ .logo {
1133
+ font-size: 1.1rem;
1134
+ }
1135
+
1136
+ .logo-mark {
1137
+ width: 32px;
1138
+ height: 32px;
1139
+ font-size: 1rem;
1140
+ }
1141
+
1142
+ /* Hero Section */
1143
+ .hero {
1144
+ min-height: auto;
1145
+ padding: 6rem 1rem 3rem;
1146
+ }
1147
+
1148
+ .hero-container {
1149
+ gap: 2rem;
1150
+ }
1151
+
1152
+ .hero-3d {
1153
+ height: 250px;
1154
+ }
1155
+
1156
+ .hero-badge {
1157
+ font-size: 0.7rem;
1158
+ padding: 0.375rem 0.75rem;
1159
+ }
1160
+
794
1161
  .hero h1 {
795
- font-size: 2rem;
1162
+ font-size: 1.75rem;
1163
+ margin-bottom: 1rem;
796
1164
  }
797
1165
 
798
- .hero-stats {
1166
+ .hero-description {
1167
+ font-size: 0.9375rem;
1168
+ margin-bottom: 1.5rem;
1169
+ }
1170
+
1171
+ .hero-actions {
799
1172
  flex-direction: column;
1173
+ gap: 0.75rem;
1174
+ }
1175
+
1176
+ .hero-actions .btn {
1177
+ width: 100%;
1178
+ justify-content: center;
1179
+ padding: 0.75rem 1.5rem;
1180
+ }
1181
+
1182
+ .hero-stats {
1183
+ flex-direction: row;
1184
+ flex-wrap: wrap;
800
1185
  gap: 1.5rem;
801
- align-items: center;
1186
+ justify-content: center;
1187
+ margin-top: 2rem;
1188
+ padding-top: 1.5rem;
1189
+ }
1190
+
1191
+ .stat {
1192
+ text-align: center;
1193
+ min-width: 80px;
1194
+ }
1195
+
1196
+ .stat-value {
1197
+ font-size: 1.5rem;
1198
+ }
1199
+
1200
+ .stat-label {
1201
+ font-size: 0.75rem;
1202
+ }
1203
+
1204
+ /* Sections */
1205
+ .features-section,
1206
+ .slop-section,
1207
+ .team-section,
1208
+ .tools-section,
1209
+ .deterministic-section,
1210
+ .getstarted-section,
1211
+ .replaces-section,
1212
+ .architecture-section,
1213
+ .principles-section,
1214
+ .builtfor-section {
1215
+ padding: 3rem 1rem;
1216
+ }
1217
+
1218
+ .replaces-grid {
1219
+ grid-template-columns: 1fr;
1220
+ }
1221
+
1222
+ .replaces-item {
1223
+ font-size: 0.875rem;
1224
+ padding: 0.875rem 1rem;
1225
+ }
1226
+
1227
+ .principles-grid {
1228
+ grid-template-columns: 1fr;
1229
+ }
1230
+
1231
+ .principle-item {
1232
+ font-size: 0.875rem;
1233
+ }
1234
+
1235
+ .architecture-flow {
1236
+ flex-direction: column;
1237
+ }
1238
+
1239
+ .arch-step {
1240
+ min-width: auto;
1241
+ max-width: none;
1242
+ width: 100%;
1243
+ flex-direction: row;
1244
+ text-align: left;
1245
+ }
1246
+
1247
+ .arch-arrow {
1248
+ transform: rotate(90deg);
1249
+ padding: 0.5rem 0;
1250
+ }
1251
+
1252
+ .builtfor-grid {
1253
+ grid-template-columns: 1fr;
1254
+ gap: 1rem;
1255
+ }
1256
+
1257
+ /* Get Started mobile */
1258
+ .install-box {
1259
+ padding: 1.5rem;
1260
+ border-radius: 16px;
1261
+ margin-top: 1.5rem;
1262
+ }
1263
+
1264
+ .install-steps {
1265
+ gap: 1.25rem;
1266
+ }
1267
+
1268
+ .install-step {
1269
+ flex-direction: column;
1270
+ gap: 0.75rem;
1271
+ }
1272
+
1273
+ .step-number {
1274
+ width: 28px;
1275
+ height: 28px;
1276
+ font-size: 0.8125rem;
1277
+ }
1278
+
1279
+ .step-content h4 {
1280
+ font-size: 0.9375rem;
1281
+ }
1282
+
1283
+ .step-content p {
1284
+ font-size: 0.8125rem;
1285
+ }
1286
+
1287
+ .code-block {
1288
+ padding: 0.875rem 1rem;
1289
+ font-size: 0.75rem;
1290
+ padding-right: 3.5rem;
1291
+ }
1292
+
1293
+ .copy-btn {
1294
+ padding: 0.25rem 0.5rem;
1295
+ font-size: 0.6875rem;
1296
+ }
1297
+
1298
+ .install-links {
1299
+ flex-direction: column;
1300
+ gap: 1rem;
1301
+ margin-top: 1.5rem;
1302
+ padding-top: 1.25rem;
1303
+ }
1304
+
1305
+ .install-link {
1306
+ font-size: 0.8125rem;
1307
+ }
1308
+
1309
+ .section-header {
1310
+ margin-bottom: 2rem;
1311
+ }
1312
+
1313
+ .section-header h2 {
1314
+ font-size: 1.75rem;
1315
+ }
1316
+
1317
+ .section-header p {
1318
+ font-size: 0.9375rem;
1319
+ }
1320
+
1321
+ /* Bento Cards */
1322
+ .bento-grid {
1323
+ gap: 1rem;
1324
+ }
1325
+
1326
+ .bento-card {
1327
+ padding: 1.5rem;
1328
+ border-radius: 16px;
1329
+ }
1330
+
1331
+ .bento-icon {
1332
+ width: 40px;
1333
+ height: 40px;
1334
+ font-size: 1.25rem;
1335
+ margin-bottom: 1rem;
1336
+ }
1337
+
1338
+ .bento-card h3 {
1339
+ font-size: 1.1rem;
1340
+ }
1341
+
1342
+ .bento-card p {
1343
+ font-size: 0.875rem;
1344
+ }
1345
+
1346
+ .code-preview {
1347
+ padding: 0.75rem 1rem;
1348
+ font-size: 0.75rem;
1349
+ }
1350
+
1351
+ /* SLOP Cards */
1352
+ .slop-grid {
1353
+ gap: 1rem;
1354
+ }
1355
+
1356
+ .slop-card {
1357
+ padding: 1.25rem;
1358
+ border-radius: 12px;
1359
+ }
1360
+
1361
+ .slop-letter {
1362
+ font-size: 2.25rem;
1363
+ }
1364
+
1365
+ .slop-word {
1366
+ font-size: 1rem;
1367
+ }
1368
+
1369
+ .slop-desc {
1370
+ font-size: 0.8125rem;
1371
+ }
1372
+
1373
+ /* Team Cards */
1374
+ .team-grid {
1375
+ gap: 1rem;
1376
+ }
1377
+
1378
+ .team-card {
1379
+ padding: 1.5rem;
1380
+ border-radius: 12px;
1381
+ }
1382
+
1383
+ .team-icon {
1384
+ width: 56px;
1385
+ height: 56px;
1386
+ font-size: 1.5rem;
1387
+ }
1388
+
1389
+ .team-card h3 {
1390
+ font-size: 1rem;
1391
+ }
1392
+
1393
+ .team-card p {
1394
+ font-size: 0.875rem;
1395
+ }
1396
+
1397
+ /* Comparison Cards */
1398
+ .comparison-grid {
1399
+ gap: 1rem;
1400
+ }
1401
+
1402
+ .comparison-card {
1403
+ padding: 1.5rem;
1404
+ border-radius: 12px;
1405
+ }
1406
+
1407
+ .comparison-header {
1408
+ font-size: 0.9375rem;
1409
+ }
1410
+
1411
+ .comparison-list {
1412
+ font-size: 0.8125rem;
1413
+ }
1414
+
1415
+ /* Tools */
1416
+ .tools-grid {
1417
+ gap: 0.75rem;
1418
+ margin-top: 2rem;
1419
+ }
1420
+
1421
+ .tool-chip {
1422
+ padding: 0.5rem 1rem;
1423
+ font-size: 0.8125rem;
1424
+ }
1425
+
1426
+ .tool-chip .icon {
1427
+ font-size: 1rem;
1428
+ }
1429
+
1430
+ /* CTA */
1431
+ .cta-section {
1432
+ padding: 4rem 1rem;
1433
+ }
1434
+
1435
+ .cta-content h2 {
1436
+ font-size: 1.75rem;
1437
+ }
1438
+
1439
+ .cta-content p {
1440
+ font-size: 0.9375rem;
1441
+ }
1442
+
1443
+ .cta-buttons {
1444
+ flex-direction: column;
1445
+ }
1446
+
1447
+ .cta-buttons .btn {
1448
+ width: 100%;
1449
+ justify-content: center;
1450
+ }
1451
+
1452
+ /* Footer */
1453
+ footer {
1454
+ padding: 2rem 1rem 1.5rem;
802
1455
  }
803
1456
 
804
1457
  .footer-container {
805
1458
  flex-direction: column;
806
1459
  text-align: center;
1460
+ gap: 1.5rem;
807
1461
  }
808
1462
 
809
1463
  .footer-left {
810
1464
  flex-direction: column;
1465
+ gap: 1rem;
1466
+ }
1467
+
1468
+ .footer-links {
1469
+ flex-wrap: wrap;
1470
+ justify-content: center;
1471
+ gap: 1rem;
1472
+ }
1473
+
1474
+ .footer-links a {
1475
+ font-size: 0.8125rem;
1476
+ }
1477
+
1478
+ .footer-right {
1479
+ font-size: 0.75rem;
811
1480
  }
812
1481
  }
813
1482
  </style>
@@ -824,11 +1493,11 @@
824
1493
  aurasecurity
825
1494
  </a>
826
1495
  <div class="nav-links">
827
- <a href="#slop" class="nav-link">SLOP Protocol</a>
828
- <a href="#features" class="nav-link">Features</a>
829
- <a href="#team" class="nav-link">Team</a>
830
- <a href="https://github.com/aurasecurity/aura-security" target="_blank" class="nav-link">GitHub</a>
831
- <a href="/app" class="btn btn-primary">Open Dashboard</a>
1496
+ <a href="#install" class="nav-link">Install</a>
1497
+ <a href="#features" class="nav-link">Outcomes</a>
1498
+ <a href="#architecture" class="nav-link">How it Works</a>
1499
+ <a href="https://github.com/aurasecurityio/aura-security" target="_blank" class="nav-link">GitHub</a>
1500
+ <a href="https://app.aurasecurity.io" class="btn btn-primary">Open Dashboard</a>
832
1501
  </div>
833
1502
  </div>
834
1503
  </nav>
@@ -837,38 +1506,37 @@
837
1506
  <section class="hero">
838
1507
  <div class="hero-container">
839
1508
  <div class="hero-content">
840
- <div class="hero-badge">Built by Security Engineers · 100% Deterministic</div>
841
- <h1>Real security tools.<br><span class="gradient-text">Zero AI hallucinations.</span></h1>
1509
+ <div class="hero-badge">Deterministic · Reproducible · Audit-Ready</div>
1510
+ <h1>Security audits that produce<br><span class="gradient-text">evidence, not opinions.</span></h1>
842
1511
  <p class="hero-description">
843
- We run Gitleaks, Trivy, Semgrep, and Grype in parallel. Same input = same output, every time.
844
- No LLM guessing. No false confidence. Just real CVEs and real secrets, with line numbers.
1512
+ aurasecurity turns code changes into verifiable security events using real scanners, reproducible output, and structured findings — no black boxes.
845
1513
  </p>
846
1514
  <div class="hero-actions">
847
- <a href="/app" class="btn btn-primary">
1515
+ <a href="#install" class="btn btn-primary">
848
1516
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
849
1517
  <path d="M5 12h14M12 5l7 7-7 7"/>
850
1518
  </svg>
851
- Try Dashboard
1519
+ Run your first audit
852
1520
  </a>
853
- <a href="https://github.com/aurasecurity/aura-security" target="_blank" class="btn btn-ghost">
854
- <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
855
- <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
1521
+ <a href="https://github.com/aurasecurityio/aura-security#example-output" target="_blank" class="btn btn-ghost">
1522
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
1523
+ <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/>
856
1524
  </svg>
857
- View Source
1525
+ View example output
858
1526
  </a>
859
1527
  </div>
860
1528
  <div class="hero-stats">
861
1529
  <div class="stat">
862
- <div class="stat-value">0%</div>
863
- <div class="stat-label">AI Hallucinations</div>
1530
+ <div class="stat-value">100%</div>
1531
+ <div class="stat-label">Reproducible</div>
864
1532
  </div>
865
1533
  <div class="stat">
866
1534
  <div class="stat-value">8+</div>
867
1535
  <div class="stat-label">Real Scanners</div>
868
1536
  </div>
869
1537
  <div class="stat">
870
- <div class="stat-value">SLOP</div>
871
- <div class="stat-label">Multi-Agent Protocol</div>
1538
+ <div class="stat-value">0</div>
1539
+ <div class="stat-label">Black Boxes</div>
872
1540
  </div>
873
1541
  </div>
874
1542
  </div>
@@ -879,53 +1547,141 @@
879
1547
  </div>
880
1548
  </section>
881
1549
 
882
- <!-- Features Section -->
1550
+ <!-- What This Replaces Section -->
1551
+ <section class="replaces-section">
1552
+ <div class="replaces-container">
1553
+ <div class="section-header">
1554
+ <h2>What aurasecurity replaces</h2>
1555
+ </div>
1556
+ <div class="replaces-grid">
1557
+ <div class="replaces-item">Ad-hoc security scripts</div>
1558
+ <div class="replaces-item">Noisy AI-only scanners</div>
1559
+ <div class="replaces-item">Unverifiable security reports</div>
1560
+ <div class="replaces-item">Screenshot-based compliance evidence</div>
1561
+ </div>
1562
+ <div class="replaces-instead">
1563
+ <p><span>Instead:</span> Structured security events that can be replayed, visualized, and audited.</p>
1564
+ </div>
1565
+ </div>
1566
+ </section>
1567
+
1568
+ <!-- Get Started Section -->
1569
+ <section class="getstarted-section" id="install">
1570
+ <div class="getstarted-container">
1571
+ <div class="section-header">
1572
+ <h2>Get Started in 60 Seconds</h2>
1573
+ <p>Install globally via npm and start scanning immediately. No configuration required.</p>
1574
+ </div>
1575
+
1576
+ <div class="install-box">
1577
+ <div class="install-steps">
1578
+ <div class="install-step">
1579
+ <div class="step-number">1</div>
1580
+ <div class="step-content">
1581
+ <h4>Install the CLI</h4>
1582
+ <p>Install aurasecurity globally using npm</p>
1583
+ <div class="code-block">
1584
+ <span class="prompt">$</span> npm install -g aura-security
1585
+ <button class="copy-btn" onclick="navigator.clipboard.writeText('npm install -g aura-security')">Copy</button>
1586
+ </div>
1587
+ </div>
1588
+ </div>
1589
+
1590
+ <div class="install-step">
1591
+ <div class="step-number">2</div>
1592
+ <div class="step-content">
1593
+ <h4>Scan Your Project</h4>
1594
+ <p>Run a full security scan on any directory</p>
1595
+ <div class="code-block">
1596
+ <span class="prompt">$</span> aura-security scan ./my-project
1597
+ <button class="copy-btn" onclick="navigator.clipboard.writeText('aura-security scan ./my-project')">Copy</button>
1598
+ </div>
1599
+ </div>
1600
+ </div>
1601
+
1602
+ <div class="install-step">
1603
+ <div class="step-number">3</div>
1604
+ <div class="step-content">
1605
+ <h4>Launch the Dashboard</h4>
1606
+ <p>Start the local 3D visualizer to explore findings</p>
1607
+ <div class="code-block">
1608
+ <span class="prompt">$</span> aura-security visualizer<br>
1609
+ <span class="comment"># Opens http://localhost:8080</span>
1610
+ <button class="copy-btn" onclick="navigator.clipboard.writeText('aura-security visualizer')">Copy</button>
1611
+ </div>
1612
+ </div>
1613
+ </div>
1614
+ </div>
1615
+
1616
+ <p style="margin-top: 1.5rem; font-size: 0.875rem; color: var(--text-muted); text-align: center;">
1617
+ Missing scanners are logged, not fatal. Works with whatever tools you have installed.
1618
+ </p>
1619
+
1620
+ <div class="install-links">
1621
+ <a href="https://www.npmjs.com/package/aura-security" target="_blank" class="install-link">
1622
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M0 7.334v8h6.666v1.332H12v-1.332h12v-8H0zm6.666 6.664H5.334v-4H3.999v4H1.335V8.667h5.331v5.331zm4 0v1.336H8.001V8.667h5.334v5.332h-2.669v-.001zm12.001 0h-1.33v-4h-1.336v4h-1.335v-4h-1.33v4h-2.671V8.667h8.002v5.331z"/></svg>
1623
+ npm package
1624
+ </a>
1625
+ <a href="https://github.com/aurasecurityio/aura-security" target="_blank" class="install-link">
1626
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
1627
+ View on GitHub
1628
+ </a>
1629
+ <a href="https://github.com/aurasecurityio/aura-security#readme" target="_blank" class="install-link">
1630
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
1631
+ Documentation
1632
+ </a>
1633
+ </div>
1634
+ </div>
1635
+ </div>
1636
+ </section>
1637
+
1638
+ <!-- Features Section (Outcomes) -->
883
1639
  <section class="features-section" id="features">
884
1640
  <div class="features-container">
885
1641
  <div class="section-header">
886
- <h2>No fluff. Just works.</h2>
887
- <p>One command. Eight scanners. Real vulnerabilities with real line numbers.</p>
1642
+ <h2>What you can do</h2>
1643
+ <p>Outcomes, not features. Here's what actually happens when you run aurasecurity.</p>
888
1644
  </div>
889
1645
 
890
1646
  <div class="bento-grid">
891
1647
  <div class="bento-card featured">
892
- <div class="bento-icon">⚡</div>
893
- <h3>Unified Command Interface</h3>
894
- <p>Run multiple security scanners with a single command. No more juggling terminals and output formats. Results aggregated and normalized automatically.</p>
1648
+ <div class="bento-icon">🛑</div>
1649
+ <h3>Block risky changes before merge</h3>
1650
+ <p>Deterministic detection of high-risk diffs: exposed secrets, open ingress, misconfigs. Every finding includes file path and line number.</p>
895
1651
  <div class="code-preview">
896
1652
  <div class="code-line">
897
1653
  <span class="code-prompt">$</span>
898
- <span class="code-command">aura-security scan ./my-project</span>
1654
+ <span class="code-command">aura-security scan . --fail-on critical</span>
899
1655
  </div>
900
1656
  </div>
901
1657
  </div>
902
1658
 
903
1659
  <div class="bento-card">
904
- <div class="bento-icon">🎯</div>
905
- <h3>3D Dashboard</h3>
906
- <p>Interactive Three.js visualization shows your security posture spatially. Click nodes, filter findings, see the big picture.</p>
1660
+ <div class="bento-icon">📋</div>
1661
+ <h3>Generate audit-ready evidence</h3>
1662
+ <p>SBOMs, scan outputs, and findings stored as structured JSON events. Ready for SOC2, ISO, or any compliance audit.</p>
907
1663
  </div>
908
1664
 
909
1665
  <div class="bento-card">
910
- <div class="bento-icon">☁️</div>
911
- <h3>AWS Scanning</h3>
912
- <p>Audit IAM, S3, EC2, Lambda, and RDS for misconfigurations. Cloud security in the same unified view.</p>
1666
+ <div class="bento-icon">📊</div>
1667
+ <h3>Visualize security over time</h3>
1668
+ <p>3D event timeline shows drift, regressions, and escalation paths. See exactly when and where issues appeared.</p>
913
1669
  </div>
914
1670
 
915
1671
  <div class="bento-card">
916
- <div class="bento-icon">📡</div>
917
- <h3>Real-time WebSocket</h3>
918
- <p>Live updates as scanners run. No polling, no refresh. Findings appear instantly in the dashboard.</p>
1672
+ <div class="bento-icon">🔁</div>
1673
+ <h3>Replay any scan, anytime</h3>
1674
+ <p>Every scan is reproducible. Same input = same output. Share findings with exact reproduction steps.</p>
919
1675
  </div>
920
1676
 
921
1677
  <div class="bento-card featured">
922
- <div class="bento-icon">🔔</div>
923
- <h3>Notifications & Integrations</h3>
924
- <p>Slack, Discord, and custom webhooks. Get alerted on critical findings. Integrates with your existing workflow seamlessly.</p>
1678
+ <div class="bento-icon">🤖</div>
1679
+ <h3>AI as advisor, not authority</h3>
1680
+ <p>Optional LLM analysis provides context and remediation hints but never overrides scanner findings. Fail-closed by design.</p>
925
1681
  <div class="code-preview">
926
1682
  <div class="code-line">
927
1683
  <span class="code-prompt">$</span>
928
- <span class="code-command">aura-security scan . --notify slack</span>
1684
+ <span class="code-command">aura-security scan . --ai-advisory</span>
929
1685
  </div>
930
1686
  </div>
931
1687
  </div>
@@ -966,6 +1722,77 @@
966
1722
  </div>
967
1723
  </section>
968
1724
 
1725
+ <!-- Architecture Section -->
1726
+ <section class="architecture-section" id="architecture">
1727
+ <div class="architecture-container">
1728
+ <div class="section-header">
1729
+ <h2>How it works</h2>
1730
+ <p>Every step emits signed, replayable events — no hidden logic.</p>
1731
+ </div>
1732
+
1733
+ <div class="architecture-flow">
1734
+ <div class="arch-step">
1735
+ <span class="icon">💻</span>
1736
+ <div>
1737
+ <div class="label">CLI / CI Pipeline</div>
1738
+ <div class="sublabel">Your code, your environment</div>
1739
+ </div>
1740
+ </div>
1741
+ <div class="arch-arrow">→</div>
1742
+ <div class="arch-step">
1743
+ <span class="icon">🔬</span>
1744
+ <div>
1745
+ <div class="label">Real Scanners</div>
1746
+ <div class="sublabel">Gitleaks, Trivy, Semgrep, Grype, npm audit</div>
1747
+ </div>
1748
+ </div>
1749
+ <div class="arch-arrow">→</div>
1750
+ <div class="arch-step">
1751
+ <span class="icon">📦</span>
1752
+ <div>
1753
+ <div class="label">SLOP Event Protocol</div>
1754
+ <div class="sublabel">Structured, labeled findings</div>
1755
+ </div>
1756
+ </div>
1757
+ <div class="arch-arrow">→</div>
1758
+ <div class="arch-step">
1759
+ <span class="icon">🗄️</span>
1760
+ <div>
1761
+ <div class="label">Audit Server</div>
1762
+ <div class="sublabel">Persistent storage + API</div>
1763
+ </div>
1764
+ </div>
1765
+ <div class="arch-arrow">→</div>
1766
+ <div class="arch-step">
1767
+ <span class="icon">📊</span>
1768
+ <div>
1769
+ <div class="label">Output</div>
1770
+ <div class="sublabel">3D Visualizer / JSON / CI Gates</div>
1771
+ </div>
1772
+ </div>
1773
+ </div>
1774
+ </div>
1775
+ </section>
1776
+
1777
+ <!-- Principles Section -->
1778
+ <section class="principles-section" id="principles">
1779
+ <div class="principles-container">
1780
+ <div class="section-header">
1781
+ <h2>Design principles</h2>
1782
+ <p>This is where we differ from "AI security platforms".</p>
1783
+ </div>
1784
+
1785
+ <div class="principles-grid">
1786
+ <div class="principle-item">Deterministic by default</div>
1787
+ <div class="principle-item">Offline-capable</div>
1788
+ <div class="principle-item">Scanner-native output</div>
1789
+ <div class="principle-item">AI is advisory only</div>
1790
+ <div class="principle-item">Open-source, MIT licensed</div>
1791
+ <div class="principle-item">No vendor lock-in</div>
1792
+ </div>
1793
+ </div>
1794
+ </section>
1795
+
969
1796
  <!-- Deterministic Section -->
970
1797
  <section class="deterministic-section">
971
1798
  <div class="deterministic-container">
@@ -1003,29 +1830,30 @@
1003
1830
  </div>
1004
1831
  </section>
1005
1832
 
1006
- <!-- Team Section -->
1007
- <section class="team-section" id="team">
1008
- <div class="team-container">
1833
+ <!-- Built For Section -->
1834
+ <section class="builtfor-section" id="builtfor">
1835
+ <div class="builtfor-container">
1009
1836
  <div class="section-header">
1010
- <h2>Built by Security Engineers</h2>
1011
- <p>Not a wrapper around ChatGPT. Built by people who've actually found bugs.</p>
1837
+ <h2>Built for</h2>
1838
+ <p>Not "everyone". These specific teams and use cases.</p>
1012
1839
  </div>
1013
1840
 
1014
- <div class="team-grid">
1015
- <div class="team-card">
1016
- <div class="team-icon">🔓</div>
1017
- <h3>Pentest Background</h3>
1018
- <p>Years of offensive security experience. We know what real vulnerabilities look like because we've exploited them.</p>
1841
+ <div class="builtfor-grid">
1842
+ <div class="builtfor-card">
1843
+ <h4>🔐 Security Engineers</h4>
1844
+ <p>Need reproducible findings for incident response and remediation tracking. Tired of AI noise.</p>
1845
+ </div>
1846
+ <div class="builtfor-card">
1847
+ <h4>🏗️ Platform / Infra Teams</h4>
1848
+ <p>Want security gates in CI/CD without vendor lock-in. Need structured output for automation.</p>
1019
1849
  </div>
1020
- <div class="team-card">
1021
- <div class="team-icon">🐛</div>
1022
- <h3>Bug Bounty Hunters</h3>
1023
- <p>Found and reported vulnerabilities in production systems. We built this tool because we needed it ourselves.</p>
1850
+ <div class="builtfor-card">
1851
+ <h4>📋 Startups doing SOC2 / ISO</h4>
1852
+ <p>Need audit evidence without enterprise bloat. Generate compliance artifacts from actual scans.</p>
1024
1853
  </div>
1025
- <div class="team-card">
1026
- <div class="team-icon">📖</div>
1027
- <h3>Open Source</h3>
1028
- <p>MIT licensed. Read every line of code. No telemetry, no tracking, no BS. Fork it, audit it, run it air-gapped.</p>
1854
+ <div class="builtfor-card">
1855
+ <h4>👩‍💻 Developers who want clarity</h4>
1856
+ <p>Want to understand exactly what's wrong and why. No "might be vulnerable" — just facts with line numbers.</p>
1029
1857
  </div>
1030
1858
  </div>
1031
1859
  </div>
@@ -1055,11 +1883,11 @@
1055
1883
  <!-- CTA Section -->
1056
1884
  <section class="cta-section">
1057
1885
  <div class="cta-content">
1058
- <h2>Stop guessing. Start scanning.</h2>
1059
- <p>No signup. No API keys. No cloud dependency. Just clone and run.</p>
1886
+ <h2>Evidence, not opinions.</h2>
1887
+ <p>No signup. No API keys. No cloud dependency. Install and scan in 60 seconds.</p>
1060
1888
  <div class="cta-buttons">
1061
- <a href="/app" class="btn btn-primary">Try the Dashboard</a>
1062
- <a href="https://github.com/aurasecurity/aura-security" target="_blank" class="btn btn-ghost">Read the Code</a>
1889
+ <a href="#install" class="btn btn-primary">Get Started</a>
1890
+ <a href="https://github.com/aurasecurityio/aura-security" target="_blank" class="btn btn-ghost">View Source</a>
1063
1891
  </div>
1064
1892
  </div>
1065
1893
  </section>
@@ -1073,10 +1901,10 @@
1073
1901
  aurasecurity
1074
1902
  </a>
1075
1903
  <div class="footer-links">
1076
- <a href="https://github.com/aurasecurity/aura-security" target="_blank">GitHub</a>
1904
+ <a href="https://github.com/aurasecurityio/aura-security" target="_blank">GitHub</a>
1077
1905
  <a href="https://www.npmjs.com/package/aura-security" target="_blank">npm</a>
1078
1906
  <a href="https://pypi.org/project/aura-security/" target="_blank">PyPI</a>
1079
- <a href="/app">Dashboard</a>
1907
+ <a href="https://app.aurasecurity.io">Dashboard</a>
1080
1908
  </div>
1081
1909
  </div>
1082
1910
  <div class="footer-right">