Contribution guidelines
Thanks for taking a look at how to contribute to Stirling PDFs open-source codebase!
Development Setup
Prerequisites
- Java 21 or later
- Node.js 18+
- Docker (for testing)
- Gradle (included in repository)
Getting Started
-
Clone the repository
-
Backend Development
-
Frontend Development (V2.0+)
Contributing to Code
Backend Contributions
- See our CONTRIBUTING guidelines
- Backend uses Spring Boot + Java
- Code formatting: Run
./gradlew spotlessApplybefore committing
Frontend Contributions (V2.0+)
- Frontend is a React + TypeScript application
- Uses Vite for build tooling
- UI components: Mantine UI + TailwindCSS
- Adding new tools: See ADDING_TOOLS.md
- Tool architecture: Uses
useToolOperationhook pattern
Translation Contributions
V2.0 Translations (JSON)
Translation files are located in frontend/public/locales/
- CRITICAL: Always update translations in en-GB only, never en-US
- Files are organized by feature (e.g., common.json, tools.json)
- Use standard JSON format
Legacy Translations (Properties)
For V1.5 and backend translations: - See How To Add New Language guidelines
Development Resources
- API Documentation: Access at
/swagger-ui/index.htmlon your local instance - Developer Guide: See
DeveloperGuide.mdin the repository - Claude Code Guide: See
CLAUDE.mdfor detailed architecture and patterns