seo-platform
SEO platform for managing clients, keyword data, plans, and tasks with AI suggestions and third-party integrations like DataForSEO and Google Search.
Repository: DynamicDigitalUSA/seo-platform
Pattern: MVC with server-side rendering via Inertia.js and client-side React components
Entry Points: app/Http/Controllers, routes/web.php, resources/js/app.jsx
Tags: seo laravel react inertia keyword-tracking dataforseo
Last scanned: Mon, 29 Jun 2026 16:06:17 GMT
Purpose
SEO platform for managing clients, keyword data, plans, and tasks with AI suggestions and third-party integrations like DataForSEO and Google Search.
Tech Stack
- Laravel
- PHP
- React
- Inertia.js
- Tailwind CSS
- Vite
- SQLite
- Radix UI
- Zustand
- DnD Kit
- Recharts
- Axios
Architecture
The application follows Laravel's MVC pattern with Inertia.js for server-side routing and React for interactive UI components. Controllers handle HTTP requests and return Inertia responses; middleware ensures organization scoping and client access. The frontend uses Tailwind CSS and Radix UI components, with state managed via Zustand.
Architecture Diagram
graph TD
subgraph Client
A[React UI Components] --> B[Inertia.js Client]
B --> C[Zustand State]
A --> D[Axios HTTP]
end
subgraph Server
E[Web Routes<br/>routes/web.php] --> F[Laravel Controllers<br/>app/Http/Controllers]
F --> G[Inertia.js Server]
G --> H[Middleware<br/>Org Scoping & Access]
F --> I[Eloquent Models]
I --> J[(SQLite Database)]
F --> K[Third-Party Integrations<br/>DataForSEO, Google Search]
H --> F
end
Client --> B
B --> E
D --> F
Dependencies
Critical Dependencies
- laravel/framework
- inertiajs/inertia-laravel
- tightenco/ziggy
- react
- axios
Dev Dependencies
- vite
- @vitejs/plugin-react
- tailwindcss
- postcss
- autoprefixer
⚠️ Vulnerabilities & Risks
- Uses SQLite in .env.example which is not suitable for production workloads
- No obvious CSRF or XSS protection beyond defaults (but typical Laravel protections may apply)
- Sensitive services like DataForSEO and Google Search API keys not visible in .env.example but should be stored securely
- No explicit rate limiting or input validation visible in example requests
💡 Suggestions
- Migrate database to PostgreSQL as per preferred stack, given SQLite is not production-ready
- Add comprehensive test coverage for controllers and API integrations
- Consider implementing Redis for caching and queue jobs to improve performance
- Integrate with the company's CRM (Twenty) for client synchronization and pipeline tracking
- Add CI/CD pipeline with GitHub Actions for staging/production deployments