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:

page.tsx
{
  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 content string.
  • 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 dev

Commit Guidelines

We strictly follow Conventional Commits to ensure automated changelog generation.

TypeWhen 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

  1. Fork the repository and create a new isolated branch (e.g. feat/your-lesson-name).
  2. Make your changes following the aesthetic and content guidelines above.
  3. Ensure the project builds without errors: npm run build
  4. Open a pull request against the main branch with a clear description of the impact.
  5. 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