Open Source
Contributing to OpenSyntax
Thank you for your interest in contributing. This platform is 100% community-driven, and every contribution — whether it is a new lesson, a bug fix, or a typo correction — makes a real difference to developers learning around the world.
Code of Conduct
By participating in this project, you agree to uphold a respectful and inclusive environment. Harassment, discrimination, or abusive behavior will not be tolerated and will result in removal from the community.
How to Add a Lesson
Each learning path has its lesson data defined in its specific page file (e.g., app/courses/discord/page.tsx). To add a lesson, append a new entry to the lessons array inside the appropriate module:
{
id: "my-unique-lesson-id", // kebab-case, must be unique
title: "Your Lesson Title",
description: "A one-line summary.",
duration: "15 min", // estimated read/watch time
content: `
<h2>Section Heading</h2>
<p>Lesson body content in HTML...</p>
<pre><code>// code example</code></pre>
`,
}Content Guidelines:
- Use semantic HTML inside the
contentstring. - Keep lessons focused — one core concept per lesson.
- Include practical, runnable code examples.
How to Add a Module
To add a new overarching module to a learning path, add a new object to the modules array:
{
id: "my-module-id",
title: "Module N — Short Title",
lessons: [
// ... lesson objects
],
}Development Setup
Follow these steps to run the OpenSyntax Academy interface locally on your machine:
# Fork the repository on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/opensyntax-academy.git
cd opensyntax-academy
# Install dependencies
npm install
# Start the dev server on localhost:3000
npm run devCommit Guidelines
We strictly follow Conventional Commits to ensure automated changelog generation.
| Type | When to use |
|---|---|
| feat: | Adding a new lesson, module, or feature |
| fix: | Fixing a bug or incorrect information |
| docs: | Changes to documentation only |
| style: | Formatting and UI tweaks |
Pull Request Process
- Fork the repository and create a new isolated branch (e.g.
feat/your-lesson-name). - Make your changes following the aesthetic and content guidelines above.
- Ensure the project builds without errors:
npm run build - Open a pull request against the
mainbranch with a clear description of the impact. - A core maintainer will review your PR. Please be patient — this is an open-source community project!
Questions? Chat with us directly in the community.
Follow on Instagram