Join the Community
SINQ is built by contributors like you. Whether you're fixing a typo, adding a feature, or shaping the roadmap—there's a place for you here. Elite contributions, zero gatekeeping.
Contributor Journey
Four steps from clone to merged PR. You've got this.
Fork & Clone
Fork the repository on GitHub, then clone your fork locally. Use the upstream remote to stay in sync with the main project.
git clone https://github.com/YOUR_USERNAME/SinqAuthoringTool.git
cd SinqAuthoringTool
git remote add upstream https://github.com/ABK1-Kuul/SinqAuthoringTool.gitInstall Dependencies
We use Node.js 18 or later. Install dependencies with npm. MongoDB is bundled for the portable build—no separate install needed for development.
npm installRun Dev Mode
Start the app in development mode. We use cross-env for platform-agnostic scripts, so the same commands work on Windows, macOS, and Linux.
npm run devBranch & Pull Request
Create a descriptive branch (e.g., fix/plugin-loading or feat/dark-mode-toggle), make your changes, and open a pull request. Clear titles and descriptions help maintainers review faster. We welcome first-time contributors.
Community at a Glance
Latest Release
Latest
Open Issues
—
Contributors
Community Powered
View on GitHub to see our contributors.
Roadmap
Where we're headed. Your input shapes the priorities.
Planned
macOS/Linux native builds
Cross-platform Electron targets
Cloud-sync beta
Optional course backup & sync
In Progress
Plugin marketplace UI
Discover and install plugins
Performance profiling
Build and render optimization
Shipped
Production Readiness Audit
Full security & reliability review
Security Hardening
CSP, navigation locking, URL allowlisting
GitHub Actions CI/CD
Automated builds and releases
Developer FAQ
Common questions from folks digging into the codebase.
How do I add a new plugin?
Plugins are managed by the Adapt Framework. Add the plugin to your course's adapt.json or use the authoring UI's plugin manager. For development, place plugin source in the plugins directory and register it in the course configuration. See the Plugin Guide in our docs for details.
How is the local database managed?
SINQ bundles a MongoDB instance that runs locally. The database stores course content, user accounts, and configuration. It's initialized on first run and persists in the app's data directory. No external MongoDB setup is required—everything runs in-process.
How do I run the backend and frontend separately?
The dev setup uses cross-env for platform-agnostic scripts. Run npm run dev to build the frontend and launch Electron. For backend-only development, you can start the Express server directly from the backend directory. Check package.json scripts for available commands.
Ready to make your first contribution?