Notion Enhancer is a tool that allows users to customize and enhance their experience with the all-in-one productivity workspace, Notion. It is available on Mac, Windows, Linux, and in the browser and was created free and open source by dragonwocky. Notion Enhancer offers a range of features including in-app tabs, color themes, extra sidebar features, right to left text, database customization, icon upload history, and more. Some of the available color themes include pastel dark, material ocean, nord, and pinky boom.
Notion Enhancer works by modifying the Notion web client, which is essentially a complicated website built with React, Next.js, and TypeScript. Notion's HTML is generated by JavaScript and is styled using CSS, both stylesheets and inline styles generated by React. The Notion backend is written with either Node.js or Ruby on Rails and is hosted on AWS, serving the Notion client to the domain and handling user authorization requests and uploaded files. It also runs a PostgreSQL object-relational database to store user data and content, which is indexed by uuidv4 IDs and organized into tables of different data types.
Notion Enhancer is built with the Electron framework, which allows web technologies to be packaged into cross-platform desktop apps. The Notion app is actually a wrapper for the web client and is updated separately from the web client, receiving new features without requiring an update itself. Notion Enhancer repackages the official Windows build of the Notion app, replacing the app icon with the Notion Enhancer logo and installing the correct dependencies for the target platform. It then re-compiles the app into executable form using the Electron framework and creates installation packages for the different supported platforms.
In addition to the repackaged app, Notion Enhancer also offers a command line interface (CLI) that allows users to install and manage the enhancer directly from the terminal. The CLI can be used to install the enhancer, update to the latest version, or uninstall it. It can also be used to apply color themes, enable or disable specific features, or view the version and installed path of the enhancer.