I use web-mode for editing different templates like html, .erb, .js.jsx. It understands React’s JSX tags also which is great because I don’t need a separate mode just for JSX. Web mode can support plain jsx or js.jsx by using auto-mode-alistfunction. (require 'web-mode) (add-to-list 'auto-mode-alist '(