dynamic-digital
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.