Skip to content

Marketplace Integration and Official Domain Launch#28

Merged
GYFX35 merged 1 commit intomainfrom
feat/marketplace-official-domain-4598492268017461849
Mar 16, 2026
Merged

Marketplace Integration and Official Domain Launch#28
GYFX35 merged 1 commit intomainfrom
feat/marketplace-official-domain-4598492268017461849

Conversation

@GYFX35
Copy link
Owner

@GYFX35 GYFX35 commented Mar 16, 2026

Transitioned the application into a professional "Global Security Platform". Added a centralized Marketplace hub, configured the official domain (global-security-platform.com), and updated the branding and UI across the application.


PR created automatically by Jules for task 4598492268017461849 started by @GYFX35

Summary by Sourcery

Introduce a centralized Global Security Marketplace experience and rebrand the app around the official Global Security Platform domain.

New Features:

  • Add a Marketplace hub as the default landing view to launch all existing security tools from a single interface.

Enhancements:

  • Rebrand the application UI to Global Security Platform with updated header, navigation labels, and typography.
  • Update layout with a persistent global footer highlighting the official domain and full-height page structure.
  • Refresh color scheme and button styles for a more polished, professional appearance.
  • Expose the official domain in SEO metadata and hero content for clearer positioning and discoverability.
  • Extend trusted-domain heuristics to recognize the new platform domain.

Deployment:

  • Configure the app for the official custom domain via a CNAME entry.

…l domain

- Implement Marketplace component as the new centralized hub.
- Rebrand the platform to Global Security Platform.
- Configure official domain global-security-platform.com via CNAME.
- Update SEO metadata and professional UI styling.
- Whitelist official domain in security heuristics.
- Update tests to reflect branding changes.

Co-authored-by: GYFX35 <134739293+GYFX35@users.noreply.github.com>
@google-labs-jules
Copy link
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Mar 16, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
games f2c8e7b Mar 16 2026, 08:24 PM

@sourcery-ai
Copy link

sourcery-ai bot commented Mar 16, 2026

Reviewer's Guide

Introduces a new Global Security Platform marketplace as the primary landing experience, updates branding and layout across the app (including official domain references and footer), and extends URL heuristics to recognize the new official domain.

Sequence diagram for launching a tool from the new marketplace

sequenceDiagram
  actor User
  participant App
  participant Marketplace
  participant ReactRenderer
  participant ToolComponent

  User->>App: Load https://global-security-platform.com
  App->>App: Initialize state view = marketplace
  App->>ReactRenderer: Render header, Marketplace, footer
  ReactRenderer->>Marketplace: Mount Marketplace with setView

  User->>Marketplace: Click tool card Launch App
  Marketplace->>App: setView(toolId)
  App->>App: Update state view = toolId

  App->>ReactRenderer: Trigger re-render
  ReactRenderer->>App: Reconcile UI tree
  App->>ToolComponent: Conditionally render selected tool
  ReactRenderer->>User: Display selected tool experience
Loading

Updated class diagram for App and Marketplace components

classDiagram
  class App {
    +string view
    +setView(newView)
    +render()
  }

  class Marketplace {
    +Marketplace(setView)
    +render()
  }

  class ScamAnalyzer
  class FakeNewsAnalyzer
  class AIContentDetector
  class FakeContentAnalyzer
  class FBIGame
  class SupplyChainPlatform

  App o-- Marketplace : renders
  App o-- ScamAnalyzer : renders
  App o-- FakeNewsAnalyzer : renders
  App o-- AIContentDetector : renders
  App o-- FakeContentAnalyzer : renders
  App o-- FBIGame : renders
  App o-- SupplyChainPlatform : renders

  App ..> ScamAnalyzer : view==scam
  App ..> FakeNewsAnalyzer : view==fake-news
  App ..> AIContentDetector : view==ai-content
  App ..> FakeContentAnalyzer : view==fake-content
  App ..> FBIGame : view==fbi-game
  App ..> SupplyChainPlatform : view==supply-chain
  App ..> Marketplace : view==marketplace

  class HeuristicsModule {
    +list banking
    +list platform
    +list general
    +list general_web
  }

  HeuristicsModule : platform += global-security-platform.com
Loading

File-Level Changes

Change Details Files
Set the Marketplace as the new primary entry view and wired navigation to it from the header and nav.
  • Initialized the main view state to 'marketplace' instead of 'scam'.
  • Imported and rendered the new Marketplace component when the view is 'marketplace'.
  • Made the header title clickable to navigate back to the Marketplace view.
  • Added a dedicated Marketplace nav button and shortened labels for some existing tools.
src/App.jsx
Implemented the Marketplace hub UI to surface the platform tools in a card grid and deep-link into existing views.
  • Defined a static tools configuration describing each available app (id, name, description, icon).
  • Rendered a hero section emphasizing the Global Security Marketplace and official domain.
  • Displayed tools in a responsive grid of clickable cards that call setView with the corresponding tool id.
  • Inlined component-specific styles via a <style jsx> block for marketplace layout and cards.
src/Marketplace.jsx
Refined global layout and branding styles, including header, navigation, and footer with official domain.
  • Updated header accent color from neon green to React blue and introduced flex-based header-content layout with an 'OFFICIAL' badge style.
  • Modernized nav button styling (font family, border radius, transitions, hover state) and slightly adjusted spacing.
  • Converted the App layout to a full-height flex column and added a styled global footer linking to the official domain.
  • Added styles for the new global-footer and updated main to flex: 1 for proper layout behavior.
src/App.css
src/App.jsx
Updated HTML metadata and heuristics to reflect the new Global Security Platform branding and official domain.
  • Replaced the document title with 'Global Security Platform
Official Domain' and added a descriptive meta description.
  • Extended trusted URL heuristics with a new 'platform' category including global-security-platform.com.
  • Ensured footer and marketplace copy reference the official domain consistently.
  • Prepared static hosting configuration for the official domain.
    • Added a CNAME file under public/ to configure the custom domain for static hosting providers.
    public/CNAME

    Tips and commands

    Interacting with Sourcery

    • Trigger a new review: Comment @sourcery-ai review on the pull request.
    • Continue discussions: Reply directly to Sourcery's review comments.
    • Generate a GitHub issue from a review comment: Ask Sourcery to create an
      issue from a review comment by replying to it. You can also reply to a
      review comment with @sourcery-ai issue to create an issue from it.
    • Generate a pull request title: Write @sourcery-ai anywhere in the pull
      request title to generate a title at any time. You can also comment
      @sourcery-ai title on the pull request to (re-)generate the title at any time.
    • Generate a pull request summary: Write @sourcery-ai summary anywhere in
      the pull request body to generate a PR summary at any time exactly where you
      want it. You can also comment @sourcery-ai summary on the pull request to
      (re-)generate the summary at any time.
    • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
      request to (re-)generate the reviewer's guide at any time.
    • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
      pull request to resolve all Sourcery comments. Useful if you've already
      addressed all the comments and don't want to see them anymore.
    • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
      request to dismiss all existing Sourcery reviews. Especially useful if you
      want to start fresh with a new review - don't forget to comment
      @sourcery-ai review to trigger a new review!

    Customizing Your Experience

    Access your dashboard to:

    • Enable or disable review features such as the Sourcery-generated pull request
      summary, the reviewer's guide, and others.
    • Change the review language.
    • Add, remove or edit custom review instructions.
    • Adjust other review settings.

    Getting Help

    @GYFX35 GYFX35 merged commit 0413eab into main Mar 16, 2026
    3 of 8 checks passed
    Copy link

    @sourcery-ai sourcery-ai bot left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Hey - I've found 1 issue, and left some high level feedback:

    • The new Marketplace component embeds styles via <style jsx> which is specific to Next.js and won’t be processed in a standard CRA/Vite setup; consider moving these rules into a CSS/SCSS module or a shared stylesheet to ensure they apply correctly.
    • The global-security-platform.com domain string is hardcoded in multiple places (Marketplace, footer, heuristics), which risks drift if it ever changes; consider centralizing it in a config or constants file and importing it where needed.
    • The new public/CNAME file appears to be created without any content in the diff; for custom domains (e.g., GitHub Pages) this file must contain the domain name, so double-check that the expected hostname is actually present in the committed version.
    Prompt for AI Agents
    Please address the comments from this code review:
    
    ## Overall Comments
    - The new `Marketplace` component embeds styles via `<style jsx>` which is specific to Next.js and won’t be processed in a standard CRA/Vite setup; consider moving these rules into a CSS/SCSS module or a shared stylesheet to ensure they apply correctly.
    - The `global-security-platform.com` domain string is hardcoded in multiple places (`Marketplace`, footer, heuristics), which risks drift if it ever changes; consider centralizing it in a config or constants file and importing it where needed.
    - The new `public/CNAME` file appears to be created without any content in the diff; for custom domains (e.g., GitHub Pages) this file must contain the domain name, so double-check that the expected hostname is actually present in the committed version.
    
    ## Individual Comments
    
    ### Comment 1
    <location path="src/Marketplace.jsx" line_range="62-71" />
    <code_context>
    +      <style jsx>{`
    </code_context>
    <issue_to_address>
    **suggestion:** Inline `<style jsx>` usage may be misleading and leads to globally scoped styles.
    
    In this setup, the `jsx` attribute on `<style>` doesn’t provide scoping—these styles are applied globally. If you want scoped styles for `Marketplace`, this approach won’t achieve that. Either treat them as global (remove `jsx` and move to a shared stylesheet like `App.css` or a CSS module) or adopt a consistent scoping solution (e.g., CSS modules, styled-components) across the app.
    
    Suggested implementation:
    
    ```javascript
          </div>
    
    
    ```
    
    1. Create a `src/Marketplace.css` (or use an existing global stylesheet like `App.css`) and move all the styles that were inside `<style jsx>{``}</style>` into that file, e.g.:
       ```css
       .marketplace-container {
         padding: 40px 20px;
         max-width: 1200px;
         margin: 0 auto;
       }
    
       .hero {
         text-align: center;
         margin-bottom: 50px;
         padding: 40px;
         background: rgba(255, 255, 255, 0.05);
       }
    
       /* include the rest of the styles that were in the removed block */
       ```
    2. At the top of `src/Marketplace.jsx`, import this stylesheet so the styles are applied globally:
       ```js
       import './Marketplace.css';
       ```
    3. Ensure any class names used in `Marketplace.jsx` (e.g. `marketplace-container`, `hero`, `tool-card`, `open-btn`, etc.) are fully defined in `Marketplace.css` so behavior matches the original inline styles.
    </issue_to_address>

    Sourcery is free for open source - if you like our reviews please consider sharing them ✨
    Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

    Comment on lines +62 to +71
    <style jsx>{`
    .marketplace-container {
    padding: 40px 20px;
    max-width: 1200px;
    margin: 0 auto;
    }
    .hero {
    text-align: center;
    margin-bottom: 50px;
    padding: 40px;
    Copy link

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    suggestion: Inline <style jsx> usage may be misleading and leads to globally scoped styles.

    In this setup, the jsx attribute on <style> doesn’t provide scoping—these styles are applied globally. If you want scoped styles for Marketplace, this approach won’t achieve that. Either treat them as global (remove jsx and move to a shared stylesheet like App.css or a CSS module) or adopt a consistent scoping solution (e.g., CSS modules, styled-components) across the app.

    Suggested implementation:

          </div>
    
    1. Create a src/Marketplace.css (or use an existing global stylesheet like App.css) and move all the styles that were inside <style jsx>{}</style> into that file, e.g.:
      .marketplace-container {
        padding: 40px 20px;
        max-width: 1200px;
        margin: 0 auto;
      }
      
      .hero {
        text-align: center;
        margin-bottom: 50px;
        padding: 40px;
        background: rgba(255, 255, 255, 0.05);
      }
      
      /* include the rest of the styles that were in the removed block */
    2. At the top of src/Marketplace.jsx, import this stylesheet so the styles are applied globally:
      import './Marketplace.css';
    3. Ensure any class names used in Marketplace.jsx (e.g. marketplace-container, hero, tool-card, open-btn, etc.) are fully defined in Marketplace.css so behavior matches the original inline styles.

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Labels

    None yet

    Projects

    None yet

    Development

    Successfully merging this pull request may close these issues.

    1 participant