Skip to content

Contributing

JagaTheGhost edited this page Oct 19, 2026 · 1 revision

🀝 Contributing Guidelines

Thank you for your interest in contributing to VisualMark Studio! We welcome contributions from developers, technical writers, designers, and documentation enthusiasts of all skill levels.


🌟 How Can You Contribute?

You can contribute to VisualMark Studio in many ways:

  • Reporting Bugs: Found a glitch or issue? Open an issue on GitHub with reproduction steps and logs.
  • Suggesting Features: Propose new visual studio modules, format exports, or UI enhancements.
  • Submitting Pull Requests: Implement bug fixes, add studio templates, or improve existing components.
  • Improving Documentation: Fix typos, enhance guides, and add new examples to this Wiki.

🌿 Branching & Development Workflow

  1. Fork the Repository: Create your own fork at https://github.com/JagaTheGhost/visualmark-studio.
  2. Create a Feature Branch: Always branch off of master:
    git checkout -b feature/mermaid-zoom-controls
    # or
    git checkout -b fix/table-studio-escape-pipes
  3. Commit Messages: Follow conventional commits:
    • feat: add SVG export option to diagrams studio
    • fix: prevent race condition during sidecar port binding
    • docs: update deployment instructions for portable binary
  4. Run Verification Tests: Ensure your changes do not break existing functionality:
    # Backend API tests
    cd backend && python -m pytest tests/test_api.py -v
    
    # Frontend production bundle validation
    cd ../frontend && npm run build
  5. Open a Pull Request: Push your branch and open a PR against master. Include a concise description of the changes and before/after screenshots if UI elements were modified.

🎨 Code Style Conventions

  • Frontend:
    • Clean React 18 functional components with standard hooks (useState, useEffect, useCallback).
    • CSS variables defined in src/styles/ adhering to the Obsidian Glow design system tokens.
    • Meaningful prop names and defensive null-checking.
  • Backend:
    • Strict type hinting with Pydantic schemas.
    • FastAPI route separation under routers/.
    • SSRF-safe URL parsing for any remote network handlers.

Return to Home or check the Changelog.

Clone this wiki locally