2.0 KiB
2.0 KiB
- Architecture Overview Core Architecture: Decoupled Frontend & Backend
The application is built on a modern, decoupled architecture:
Go Backend: A standalone service responsible for all core business logic. This includes user authentication, database interactions, and processing data from third-party integrations. It exposes all functionality through a single GraphQL API.
Next.js Frontend: A standalone service that consumes the Go backend's GraphQL API. It is responsible for the entire user interface and user experience. It leverages Next.js's Server-Side Rendering (SSR) capabilities to deliver fast, SEO-friendly pages.
This separation of concerns allows for independent development, scaling, and maintenance of the frontend and backend. Backend Integrations Model
All third-party integrations (e.g., connecting to GitHub) are handled exclusively by the Go backend.
Security: API keys and other secrets are stored securely on the server and are never exposed to the client-side.
Modularity: Each integration is built as a distinct Go package that implements a common Integration interface. This makes the system extensible, as new integrations can be added without modifying the core application logic.
Customization: Users with access to the backend codebase can "install" new integrations by adding the relevant package and recompiling the application.
Future Vision: Frontend Plugin System
For a future version (v2.0+), a frontend plugin system is envisioned. This is distinct from backend integrations.
Purpose: To allow developers to build and add new UI features and functionality directly into the frontend application.
Architecture: This will be achieved by running third-party JavaScript code in a sandboxed <iframe> for security.
SDK: A dedicated frontend "Plugin API" package (@your-app/plugin-sdk) will be developed. This will be the secure bridge allowing plugins to interact with the main application and render components in designated "slots."