MagicMirror² DocsMagicMirror² Docs
Donate
Discord
Forum
GitHub
Donate
Discord
Forum
GitHub
  • Getting Started

    • Introduction
    • Requirements
    • Installation & Usage
    • Upgrade Guide
  • Configuration

    • Introduction
    • Autostart your MagicMirror²
    • Raspberry Specific
  • Modules

    • Introduction
    • Module Configuration
    • Default Modules

      • Alert
      • Calendar
      • Clock
      • Compliments
      • Hello World
      • News Feed
      • Update Notification
      • Weather Module
    • Animation Guide
  • Module Development

    • Introduction
    • The Core module file
    • The Node Helper
    • MagicMirror Helper Methods
    • Logger
    • Notifications
    • Weather Module Weather Provider Development
    • How to write good documentation
  • Core Development

    • Introduction
    • Testing
    • Debugging
  • About

    • MagicMirror² Manifesto
    • Contributing Guidelines
    • Donate
    • Support
    • License

Core Development Documentation

This documentation describes core MagicMirror² development.

General

MagicMirror² is a community-driven development effort, and contributions are welcome!

In general, new features and bug fixes should be tracked against an issue in the MagicMirror repo. It is always a good idea to search existing issues to see if a problem you're experiencing has already been reported, or if someone has already suggested a feature you'd like to propose. Creating or finding an issue also starts the discussion and helps build consensus around your proposed fix or feature.

The MagicMirror² core is developed on GitHub out of the develop branch. To begin developing MagicMirror² core, please fork the GitHub project and create a new branch based off of the develop branch.

When your development is ready for review and testing, create a new Pull Request targeting the develop branch. The development team and other contributors will be able to review your changes and provide feedback, and the test system will run automated tests against your changes. Make sure to mention the issue(s) that your Pull Request solves.

Development Environment

Although Node.js applications are typically platform-independent, many of the scripts created for MagicMirror² are Linux-based. While Windows/Mac development is possible, you may run into issues. (Improvements here are welcome!)

You will need to have Node.js installed. When doing Linux development, on newer distributions Node.js is available from package managers.

Many Node.js or experienced Javascript developers have an environment that works for them. New developers to Node.js / Electron can download VSCode for free and use many extensions available for debugging and developing Javascript.

Also checkout Building Node.js Apps with VSCode.

Help us improve this page!
Last Updated:: 9/30/25, 6:10 PM
Next
Testing