CLI tool
electron/minimal-repro avatar
electron/minimal-repro

electron/minimal-repro: An Electron Template for Bug Reproductions

Clone to try a simple Electron app

11,446 stars4,868 forksJavaScriptCC0-1.0

At a glance

What is it?
minimal-repro is the official Electron template for creating the smallest possible reproduction of a bug or unexpected behavior. It is built for developers who need to share a focused, runnable example, not for those starting a production application.
Who is it for?
Developers filing Electron bug reports or sharing a focused reproduction with collaborators should clone this template, remove everything unrelated to the problem, and send the result. Developers starting a new Electron app should use Electron Forge instead: minimal-repro has no build system, no bundler, and no distribution tooling by design.
Can I use it commercially?
Yes. CC0-1.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What minimal-repro Is For and Who Uses It

When an Electron application misbehaves, the hardest part of getting help is showing the problem without all the surrounding code. electron/minimal-repro is a template repository maintained by the Electron project, designed to be the starting point for a minimal reproducible example: the smallest amount of code that demonstrates one specific behavior or bug, with nothing else in the way.

The README explains that the repository was renamed from electron-quick-start to clarify its purpose as a repro template. It directs developers who want to bootstrap a new application to Electron Forge instead. The intended audience is a developer who needs to communicate a problem to the Electron issue tracker, to a library author, or to a colleague. A good repro removes every feature, every dependency, and every configuration option that is not part of the bug. What remains is what the recipient needs to see.

This focused approach saves time on both sides. The person receiving the reproduction does not have to read through an entire application to find the relevant code. They clone it, run it, observe the problem, and start diagnosing. The Electron project requires minimal reproductions when filing issues, which is precisely why it maintains this template as a first-class resource.

The Four Core Files and Their Process Roles

A bare Electron application, as the README describes it, uses four core files. Understanding what each file does tells a developer which one to modify when narrowing down a bug.

package.json identifies main.js as the application entry point and lists electron as the only devDependency, pinned to ^44.4.2. The start script runs electron . from the project root. main.js is the main process: it creates a BrowserWindow and loads index.html. The main process has access to Node.js APIs and controls the application lifecycle.

index.html is the renderer process, the web page that the window displays. It loads renderer.js, which handles DOM interactions, and styles.css for visual presentation. preload.js runs in the renderer context before any web content loads, making it the correct file for reproducing issues involving Electron's context bridge, inter-process communication, or controlled Node.js access in the renderer.

This separation matters for bug reproductions because Electron issues typically fall into one of three areas: the main process, the renderer process, or the boundary between them where preload.js sits. A developer writing a repro can target the right file without touching the others, which keeps the example focused. Mixing main-process code changes into a renderer bug report makes it harder for the maintainer to isolate the cause.

Cloning, Installing, and Running the Template

The repository requires Git and Node.js, which includes npm. From a terminal, setup takes three commands:

bash
git clone https://github.com/electron/minimal-repro
cd minimal-repro
npm install

The install step downloads the electron package listed in devDependencies. Once it finishes, launching the app takes one additional command:

bash
npm start

This executes electron . from the project directory. A desktop window should appear displaying the default index.html page. The README notes that developers using Linux Bash for Windows may need to follow a separate guide for rendering graphical applications, or use node from the command prompt instead.

After the window confirms the setup works, the next step is to remove everything unrelated to the bug. The typical workflow is to clear renderer.js, styles.css, and the unused parts of index.html, then add only the code that triggers the problem. Once the repro runs consistently, the developer shares the repository or links to it when filing an issue. The recipient clones it and runs npm install followed by npm start to see the same behavior.

What the Template Intentionally Leaves Out

minimal-repro is useful because it strips away everything a production application needs. That omission is also its limit for any developer who wants more than a bare repro environment.

There is no build system, no module bundler, no TypeScript configuration, and no test setup. There are no GitHub releases and no version tags. The repository serves as a snapshot of the smallest working Electron app at a given point in time. The electron devDependency pins to ^44.4.2, meaning a developer who clones it will run that major version. If the bug only appears in a different major version, the developer must change the dependency in package.json and re-run npm install before the repro reflects the correct environment.

The CC0-1.0 licence places the template in the public domain, which is the right choice for a tool meant to be cloned and discarded. No warranty or support is implied. The repository also contains no guidance on crash reporting, packaging for distribution, or auto-updates: those concerns belong in production tooling, not in a debugging aid.

Electron Forge and Electron Fiddle as Tools for Different Goals

The README itself names two alternatives for different goals. Electron Forge is the recommended starting point when the purpose is building a new Electron application rather than debugging one. Forge provides a complete scaffold with a build pipeline, packaging, and distribution support. Where minimal-repro removes all tooling to keep the surface small, Forge adds everything needed to ship a production app. These two tools serve non-overlapping purposes and the README is clear about this distinction.

Electron Fiddle is closer in scope to a quick interactive experiment. It is a desktop application from the Electron project that lets developers run small code snippets without cloning a repository or managing dependencies. Fiddle is suited to exploratory tests where sharing as a standalone repository is unnecessary. For a bug that needs to be attached to an issue tracker or sent to a maintainer as a clonable link, minimal-repro produces a self-contained repository that the recipient can run without additional setup.

Repository Status and the CC0 Licence

The last push to this repository was on 2026-09-25. The repository is not archived and is maintained by the Electron organization on GitHub.

The CC0-1.0 licence is an intentional choice for a template. CC0 waives all copyright and related rights, placing the work in the public domain. There are no attribution requirements, no restrictions on modification, and no need to consider licence compatibility with a developer's own project. The package.json confirms the choice explicitly with "license": "CC0-1.0".

Because the repository is a template rather than a versioned library, it carries no formal release history. The only versioned artifact is the electron devDependency, which the Electron organization updates as new major versions of Electron arrive. Developers who need to reproduce a bug against a specific older Electron version can pin a different version in package.json before running npm install.

Editorial conclusion

Developers filing Electron bug reports or sharing a focused reproduction with collaborators should clone this template, remove everything unrelated to the problem, and send the result. Developers starting a new Electron app should use Electron Forge instead: minimal-repro has no build system, no bundler, and no distribution tooling by design. Before sharing a repro, verify that npm start opens a window on the recipient's platform and that the bug appears without modification.

Frequently asked questions

What is a minimal reproducible example (MRE) in the context of electron/minimal-repro?

A minimal reproducible example is the smallest amount of code that demonstrates one specific bug or behavior. The electron/minimal-repro README describes stripping away everything except the code needed to show the problem so that others can understand and debug it without distractions from unrelated features.

What is a minimal working example for an Electron bug report?

A minimal working example for Electron is a self-contained repository that opens a window with npm start and contains only the code needed to demonstrate a specific behavior. The electron/minimal-repro template provides the four-file starting point: package.json, main.js, index.html, and preload.js.

What is a reprex and how does it apply to Electron bugs?

A reprex is short for reproducible example, meaning a focused piece of code that anyone can run to observe the reported problem. The electron/minimal-repro template is a repository-level reprex tool for Electron applications, giving developers a clean starting point to clone, strip down, and share.

Official sources

  1. electron/minimal-repro on GitHub
  2. Issues
  3. License: CC0-1.0
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/electron-minimal-repro.svg)](https://hysenlabs.com/projects/electron-minimal-repro)