Skip to content

dynamic-digital

complexity tests ci/cd docs

This is the public-facing marketing website for Dynamic Digital, a B2B marketing agency. It showcases the company's capabilities, services, and market expertise to attract potential clients and drive lead generation.

Repository: DynamicDigitalUSA/dynamic-digital
Pattern: Single-page application (SPA) with client-side routing via React Router, deployed as a static site or serverless app.
Entry Points: src/main.tsx, src/App.tsx, index.html
Tags: marketing website react typescript tailwind vite gemini

Last scanned: Mon, 29 Jun 2026 16:09:20 GMT


Purpose

This is the public-facing marketing website for Dynamic Digital, a B2B marketing agency. It showcases the company's capabilities, services, and market expertise to attract potential clients and drive lead generation.

Tech Stack

  • TypeScript
  • React
  • Vite
  • Tailwind CSS
  • React Router
  • Express
  • Google Gemini AI SDK
  • Lucide React
  • Motion

Architecture

The codebase is organized as a typical Vite + React SPA with components in src/components, pages in src/pages, and shared data in src/data.ts. Routing is handled by React Router, and styling uses Tailwind CSS. There is no backend logic; the app is static with potential client-side API calls to Gemini.

Architecture Diagram

graph TD
    subgraph Client_Browser["Client Browser"]
        A[User]
    end

    subgraph Static_Site["Dynamic Digital Marketing Site (Vite + React SPA)"]
        B[main.tsx / App.tsx]
        C[React Router]
        D[Pages (Services, About, Case Studies, etc.)]
        E[Components (Nav, Hero, Footer, etc.)]
        F[Shared Data (data.ts)]
    end

    subgraph External_Service["External Services"]
        G[Google Gemini AI SDK]
    end

    A -->|HTTP Request| B
    B -->|Client-Side Routing| C
    C -->|Route Matches| D
    D -->|Renders| E
    E -->|Reads Content| F
    D -->|Optional API Call| G

Dependencies

Critical Dependencies

  • react
  • react-dom
  • react-router-dom
  • vite
  • @vitejs/plugin-react

⚠️ Potentially Outdated

  • dotenv (^17.2.3) - older version; consider updating to latest

Dev Dependencies

  • autoprefixer
  • esbuild
  • tailwindcss
  • tsx
  • typescript
  • @types/express
  • @types/node

⚠️ Vulnerabilities & Risks

  • The .env.example file suggests a GEMINI_API_KEY is required and may be exposed if not properly secured in production.
  • Express dependency is included but no server-side code is present; may be unused or leftover, increasing attack surface if deployed.

💡 Suggestions

  • Remove unused Express dependency to reduce bundle size and potential attack surface.
  • Move API calls to a backend service (e.g., Node.js/Express on AWS ECS) instead of embedding API keys in the frontend.
  • Add automated tests (unit and integration) for critical components like HeroSection and BookingScheduler to improve maintainability.
  • Implement a CI/CD pipeline using GitHub Actions to build, lint, and deploy to staging/production.
  • Replace dotenv with environment variables managed via Vite's built-in import.meta.env support for cleaner configuration.