Project Description: GitDiagram
What is the project about?
GitDiagram is a tool that automatically generates interactive system design/architecture diagrams from GitHub repositories. It visualizes the structure and relationships within a codebase, making it easier to understand.
What problem does it solve?
It addresses the challenge of understanding large and complex codebases, especially when onboarding to a new project (open-source or otherwise). Manually navigating a large repository can be overwhelming; GitDiagram provides a high-level overview.
What are the features of the project?
- Instant Visualization: Creates a diagram of a GitHub repository's structure.
- Interactivity: Diagram elements are clickable, linking directly to the corresponding files and directories in the GitHub repository.
- Fast Generation: Uses AI (Claude 3.5 Sonnet, previously o3-mini) to quickly produce diagrams.
- Customization: Allows users to modify and regenerate diagrams with custom instructions.
- Private Repository Support: Diagrams can be generated for private repositories using a GitHub personal access token or by self-hosting.
- API Access: A public API is planned (Work In Progress) for integration with other tools.
What are the technologies used in the project?
- Frontend: Next.js, TypeScript, Tailwind CSS, ShadCN
- Backend: FastAPI, Python, Server Actions
- Database: PostgreSQL (with Drizzle ORM)
- AI: Claude 3.5 Sonnet (and previously OpenAI's o3-mini)
- Diagramming: Mermaid.js
- Deployment: Vercel (Frontend), EC2 (Backend)
- CI/CD: GitHub Actions
- Analytics: PostHog, Api-Analytics
What are the benefits of the project?
- Improved Codebase Understanding: Provides a visual overview, making it easier to grasp the structure of a project.
- Faster Onboarding: Helps new developers (or anyone unfamiliar with a codebase) get up to speed quickly.
- Enhanced Collaboration: Facilitates communication and understanding among team members.
- Simplified Documentation: Can serve as a form of automatically generated documentation.
- Easy Navigation: Direct links to source code from the diagram.
What are the use cases of the project?
- Onboarding to new projects (open-source or internal).
- Understanding existing codebases for maintenance or refactoring.
- Documenting software architecture.
- Explaining code structure to others (e.g., during code reviews or presentations).
- Analyzing dependencies and relationships within a project.
- Integrating with other development tools via the planned API.
