From 9fba223ad19e187b0747fed945156a87d26ba53c Mon Sep 17 00:00:00 2001 From: man25-dotcom Date: Mon, 20 Oct 2025 18:33:50 +0530 Subject: [PATCH 1/8] feat: integrate authentication logic for starting scans in Home component --- src/pages/Home.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index edac5d7..fa342cf 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -3,6 +3,7 @@ import "./Home.css"; import { useState } from "react"; import FeatureCard from "@/components/FeatureCard.tsx"; import PricingCard from "@/components/PricingCard.tsx"; +import { useAuth } from "@/contexts/AuthContext.tsx"; // Feature list const features = [ @@ -53,8 +54,19 @@ const DOT_COUNT = 4; // Number of dots to show const Home = () => { const navigate = useNavigate(); + const { user, login } = useAuth(); const [active, setActive] = useState(0); + const handleStartScan = () => { + if (user) { + // If user is already logged in, go to repo import + navigate("/repo-import"); + } else { + // If not logged in, trigger GitHub OAuth login + login(); + } + }; + const getDotActive = (dotIdx: number) => { // Map dot index to feature index const start = active - (active % DOT_COUNT); @@ -85,7 +97,7 @@ const Home = () => {

Our AI-powered platform analyzes your MERN stack applications for security vulnerabilities providing actionable insights and automated fixes.

From c51400516a2296300979fc5103b886602a78ee79 Mon Sep 17 00:00:00 2001 From: man25-dotcom Date: Mon, 20 Oct 2025 18:39:59 +0530 Subject: [PATCH 2/8] refactor: simplify PrivacyStatement component by removing emojis and redundant text --- src/pages/Statement.tsx | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/pages/Statement.tsx b/src/pages/Statement.tsx index 06b5d34..85a0538 100644 --- a/src/pages/Statement.tsx +++ b/src/pages/Statement.tsx @@ -58,7 +58,7 @@ export default function PrivacyStatement() {

- ✓ We NEVER sell, publicly share, or monetize your source code or personal data. + We NEVER sell, publicly share, or monetize your source code or personal data.

@@ -132,22 +132,18 @@ export default function PrivacyStatement() { } title="How We Share Data">
@@ -156,12 +152,12 @@ export default function PrivacyStatement() { } title="Security Measures">
- - - - - - + + + + + +
@@ -180,7 +176,7 @@ export default function PrivacyStatement() {
-

⚠️ Important Disclosures

+

Important Disclosures

-

📬 Questions or Concerns?

+

Questions or Concerns?

We're here to help. Reach out to our privacy team anytime:

@@ -298,10 +294,9 @@ function RightCard({ title, desc }) { ); } -function SharingPoint({ emoji, title, desc }) { +function SharingPoint({ title, desc }) { return (
- {emoji}

{title}

{desc}

@@ -310,10 +305,9 @@ function SharingPoint({ emoji, title, desc }) { ); } -function SecurityFeature({ icon, title, desc }) { +function SecurityFeature({ title, desc }) { return (
-
{icon}

{title}

{desc}

From 25e3b8ec2dbb9d953daf155b152fb3159ea2355a Mon Sep 17 00:00:00 2001 From: man25-dotcom Date: Mon, 20 Oct 2025 18:52:02 +0530 Subject: [PATCH 3/8] refactor: remove click handlers from FeatureCard and update Home component for better accessibility --- src/components/FeatureCard.tsx | 5 ++--- src/pages/Home.css | 16 +++------------- src/pages/Home.tsx | 24 +++--------------------- 3 files changed, 8 insertions(+), 37 deletions(-) diff --git a/src/components/FeatureCard.tsx b/src/components/FeatureCard.tsx index 1699089..371eed7 100644 --- a/src/components/FeatureCard.tsx +++ b/src/components/FeatureCard.tsx @@ -4,11 +4,10 @@ interface FeatureCardProps { title: string; desc: string; active?: boolean; - onClick?: () => void; } -const FeatureCard: React.FC = ({ title, desc, active = false, onClick }) => ( -
+const FeatureCard: React.FC = ({ title, desc, active = false }) => ( +

{title}

{desc}

diff --git a/src/pages/Home.css b/src/pages/Home.css index 3698360..a90cd11 100644 --- a/src/pages/Home.css +++ b/src/pages/Home.css @@ -184,7 +184,6 @@ body, .home-root { box-shadow: 0 2px 24px 0 rgba(0,0,0,0.12); border: 2px solid transparent; transition: transform 0.2s ease, box-shadow 0.25s ease, border 0.3s; - cursor: pointer; will-change: transform, box-shadow; display: flex; flex-direction: column; @@ -195,16 +194,12 @@ body, .home-root { border: 2px solid transparent; background: linear-gradient(120deg,rgba(255,255,255,0.04) 60%,rgba(255,255,255,0.01)); } -/* Hover & focus styles for better affordance */ -.feature-card:hover, -.feature-card:focus-visible { +/* Hover styles - cards are hoverable but not clickable */ +.feature-card:hover { transform: translateY(-12px) scale(1.04); box-shadow: 0 22px 60px rgba(0,0,0,0.46); border-color: rgba(255,255,255,0.14); } -.feature-card:active { - transform: translateY(-4px) scale(0.995); -} .feature-card h3 { font-size: 2rem; font-weight: 700; @@ -371,22 +366,17 @@ body, .home-root { box-shadow: 0 2px 24px 0 rgba(0,0,0,0.12); border: 2px solid transparent; transition: transform 0.2s ease, box-shadow 0.25s ease, border 0.3s; - cursor: pointer; will-change: transform, box-shadow; display: flex; flex-direction: column; justify-content: flex-start; text-align: center; } -.howit-card:hover, -.howit-card:focus-visible { +.howit-card:hover { transform: translateY(-12px) scale(1.04); box-shadow: 0 22px 60px rgba(0,0,0,0.46); border-color: rgba(255,255,255,0.14); } -.howit-card:active { - transform: translateY(-4px) scale(0.995); -} /* Respect user preference for reduced motion */ @media (prefers-reduced-motion: reduce) { diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index fa342cf..f0f6ed5 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -176,38 +176,20 @@ const Home = () => {
{/*TODO: add images of the mentioned logos*/} -
navigate('/documentation')} - onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') navigate('/documentation'); }} - > +
GitHub
STEP 01
Connect GitHub
Securely authorize access to your GitHub repositories. We use OAuth for safe authentication.
-
navigate('/documentation')} - onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') navigate('/documentation'); }} - > +
{/* folder.png was missing in public; use an existing decorative asset instead */} Folder
STEP 02
Select Repository
Choose the specific MERN application repository you want to analyze.
-
navigate('/documentation')} - onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') navigate('/documentation'); }} - > +
Shield
STEP 03
Get Security Report
From a720197cae3ab22a15115042e565080904024839 Mon Sep 17 00:00:00 2001 From: man25-dotcom Date: Mon, 20 Oct 2025 19:00:44 +0530 Subject: [PATCH 4/8] feat: add token display to PricingCard and style updates in Home component --- src/components/PricingCard.tsx | 8 +++++++- src/pages/Home.css | 28 +++++++++++++++++++++++++++- src/pages/Home.tsx | 1 + 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/components/PricingCard.tsx b/src/components/PricingCard.tsx index d3ac570..785c05e 100644 --- a/src/components/PricingCard.tsx +++ b/src/components/PricingCard.tsx @@ -4,19 +4,25 @@ interface PricingCardProps { plan: string; price: string; per?: string; + tokens?: string; features: string[]; buttonText: string; highlight?: boolean; onButtonClick?: () => void; } -const PricingCard: React.FC = ({ plan, price, per, features, buttonText, highlight = false, onButtonClick }) => ( +const PricingCard: React.FC = ({ plan, price, per, tokens, features, buttonText, highlight = false, onButtonClick }) => (
{plan}
{price}
{per && {per}}
+ {tokens && ( +
+ {tokens} +
+ )}
    {features.map((feature, idx) => (
  • check {feature}
  • diff --git a/src/pages/Home.css b/src/pages/Home.css index a90cd11..711b201 100644 --- a/src/pages/Home.css +++ b/src/pages/Home.css @@ -532,7 +532,7 @@ body, .home-root { border-radius: 32px; color: #fff; font-size: 2.2rem; - font-weight: 800; + font-weight: 500; padding: 0.7rem 3.5rem; margin-right: 0.5rem; box-shadow: 0 0 24px 0 rgba(120,120,140,0.18); @@ -546,6 +546,32 @@ body, .home-root { font-size: 1.1rem; font-weight: 500; } +.pricing-tokens { + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 1.5rem; + margin-top: -1rem; +} +.pricing-tokens-badge { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: #fff; + font-size: 0.95rem; + font-weight: 700; + padding: 0.5rem 1.5rem; + border-radius: 20px; + box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); + letter-spacing: 0.05em; + animation: pulse-glow 2s ease-in-out infinite; +} +@keyframes pulse-glow { + 0%, 100% { + box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); + } + 50% { + box-shadow: 0 4px 25px rgba(102, 126, 234, 0.6); + } +} .pricing-features { list-style: none; padding: 0; diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index f0f6ed5..4b63511 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -207,6 +207,7 @@ const Home = () => { From 4b9f981d1d45f6624d608fef083c8161fd183c39 Mon Sep 17 00:00:00 2001 From: man25-dotcom Date: Mon, 20 Oct 2025 19:04:37 +0530 Subject: [PATCH 5/8] feat: enhance About page content and improve navigation from Home component --- src/pages/About.tsx | 23 +++++++++++++++-------- src/pages/Home.tsx | 2 +- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/pages/About.tsx b/src/pages/About.tsx index f9022c5..03ab8ba 100644 --- a/src/pages/About.tsx +++ b/src/pages/About.tsx @@ -11,17 +11,24 @@ const About = () => {
    ABOUT US

    At Xployt.ai, we're on a mission to make modern web development secure

    - Xployt.ai is a cutting-edge security scanning platform designed to help developers - identify and fix vulnerabilities in their codebase. We combine static analysis, - AI-driven heuristics, and developer-friendly reporting to make security work for teams. + We know how it feels when security vulnerabilities slip into production. That sleepless night, + the emergency hotfix, the worried conversations with your team. We've been there too.

    - Whether you're a solo developer or part of a large engineering org, our goal is to - make app security accessible, actionable, and integrated into your workflow. + Xployt.ai was built by developers who got tired of expensive security tools that were either + too complex to use or too simple to be effective. We wanted something different - a platform + that catches real vulnerabilities before they become real problems, without breaking your + development flow or your budget. +

    +

    + Today, we help developers like you scan GitHub repositories, catch security issues early, + and ship with confidence. No security degree required. Just connect your repo and let our + AI-powered engine do the heavy lifting while you focus on building great products. +

    +

    + Because at the end of the day, security isn't just about protecting code - it's about + protecting the trust your users place in you.

    -
    - -
diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index 4b63511..c09717a 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -163,7 +163,7 @@ const Home = () => {

Whether you're a solo developer or building your next startup, we make app security simple, smart, and seamless.

-
From 093b6fbbc5d93966d9c697b142551e7f6aafd006 Mon Sep 17 00:00:00 2001 From: man25-dotcom Date: Mon, 20 Oct 2025 19:31:37 +0530 Subject: [PATCH 6/8] fix: format token display to show two decimal places in Usage and TopUpAccount components --- src/pages/About.tsx | 2 +- src/pages/Usage.tsx | 2 +- src/pages/topup.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/About.tsx b/src/pages/About.tsx index 03ab8ba..c7cb1f2 100644 --- a/src/pages/About.tsx +++ b/src/pages/About.tsx @@ -8,7 +8,7 @@ const About = () => { Team working
-
ABOUT US
+ {/*
ABOUT US
*/}

At Xployt.ai, we're on a mission to make modern web development secure

We know how it feels when security vulnerabilities slip into production. That sleepless night, diff --git a/src/pages/Usage.tsx b/src/pages/Usage.tsx index b6f0d26..b83e8f7 100644 --- a/src/pages/Usage.tsx +++ b/src/pages/Usage.tsx @@ -98,7 +98,7 @@ export default function Usage() {

Available Tokens - {tokens !== null ? tokens : '...'} TKN + {tokens !== null ? tokens.toFixed(2) : '...'} TKN

Use tokens to perform security scans

diff --git a/src/pages/topup.tsx b/src/pages/topup.tsx index 4472898..c18c817 100644 --- a/src/pages/topup.tsx +++ b/src/pages/topup.tsx @@ -35,7 +35,7 @@ export default function TopUpAccount() {
Available Tokens - {tokens !== null ? tokens : '...'} TKN + {tokens !== null ? tokens.toFixed(2) : '...'} TKN

Use tokens to perform security scans

From d5fd0c3847f8bcee688d617dbb2f9277c6679b55 Mon Sep 17 00:00:00 2001 From: man25-dotcom Date: Tue, 21 Oct 2025 00:49:16 +0530 Subject: [PATCH 7/8] refactor: clean up comments in Home component for clarity --- src/pages/Home.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index c09717a..ab7f468 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -5,7 +5,7 @@ import FeatureCard from "@/components/FeatureCard.tsx"; import PricingCard from "@/components/PricingCard.tsx"; import { useAuth } from "@/contexts/AuthContext.tsx"; -// Feature list + const features = [ { title: "AI-Powered Vulnerability Detection", @@ -23,7 +23,7 @@ const features = [ title: "Dependency Vulnerability Detection", desc: "Detects vulnerable packages and suggests secure alternatives" }, - // Dummy features for demonstration + { title: "Automated Code Review", desc: "Instantly reviews your code for best practices and security compliance." @@ -50,7 +50,7 @@ const features = [ } ]; -const DOT_COUNT = 4; // Number of dots to show +const DOT_COUNT = 4; const Home = () => { const navigate = useNavigate(); From f296ce9a134a1b91b6ed07ef07c622e669acfdba Mon Sep 17 00:00:00 2001 From: man25-dotcom Date: Tue, 21 Oct 2025 01:04:49 +0530 Subject: [PATCH 8/8] feat: update contact information in Footer component with email and phone links --- src/components/Footer.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 060f0b8..f9376f3 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -28,15 +28,20 @@ const Footer = () => { {/* Right: Contact Info */}
Contact Us -
- - info@xployt.com + -
- - +9411XXXXXXX + +
+
Xployt.ai Inc.
+
Level 12, World Trade Center
+
Echelon Square, Colombo 01
+
Sri Lanka
-
Xployt Co, Colombo, Sri Lanka