# Lightning Polar > One-click Bitcoin Lightning networks for local app development & testing [![Actions Status](https://github.com/jamaljsr/polar/workflows/CI/badge.svg)](https://github.com/jamaljsr/polar/actions) [![codecov](https://codecov.io/gh/jamaljsr/polar/branch/master/graph/badge.svg)](https://codecov.io/gh/jamaljsr/polar) ## Development ### Dependencies Polar requires that you have Docker installed to create the local networks - On Mac & Windows, you can just install [Docker Desktop](https://www.docker.com/products/docker-desktop) - On Linux, you need to install [Docker Server](https://docs.docker.com/install/#server) and [Docker Compose](https://docs.docker.com/compose/install/) separately ### Commands | Command | Description | | --------------- | ----------------------------------------------------------------- | | `yarn` | install dependencies | | `yarn dev` | run the app with react hot reloading and electron live restarting | | `yarn test` | run unit tests in watch mode | | `yarn test:e2e` | run e2e tests | | `yarn lint:all` | run typescript and eslint syntax checking | | `yarn langs` | extract i18n language keys from code | | `yarn pacakge` | package the app for your OS | > Note: there is currently a bug in electron v6 on Windows with Dark Mode enabled. > Use `yarn win` instead of `yarn dev` to automatically disabled dark mode during > development. See [win-light.cmd](tools/win-light.cmd) for more details. ### Tips - install the [import-sorter](https://github.com/SoominHan/import-sorter) Visual Studio Code extension for automatic import statement sorting ### Tech Stack - [Electron](https://github.com/electron/electron/): cross platform desktop app framework - [Typescript](https://github.com/microsoft/TypeScript): increased productivity with a typed language - [ReactJS](https://github.com/facebook/react/): declarative UI library for JavaScript - [Create React App](https://github.com/facebook/create-react-app): minimize build configuration - [easy-peasy](https://github.com/ctrlplusb/easy-peasy): Redux state management without the boilerplate - [Ant Design](https://github.com/ant-design/ant-design/): don't reinvent the wheel with UI design - [react-i18next](https://github.com/i18next/react-i18next): support for multiple languages (english/spanish included) - [electron-log](https://github.com/megahertz/electron-log): multi-level logging to console and file - [Prettier](https://github.com/prettier/prettier): keep code format consistent - [ESLint](https://github.com/eslint/eslint): follow code quality best practices - [Github Actions](https://github.com/actions): automate builds and testing on Windows/Mac/Linux - [Renevate Bot](https://github.com/renovatebot/renovate): automate dependency upgrades via GitHub bot - [Jest](https://github.com/facebook/jest): delightful JavaScript testing - [React Testing Library](https://github.com/testing-library/react-testing-library): React specific testing utilities - [CodeCov](https://codecov.io/): maintain quality of unit tests - [Testcafe](https://github.com/DevExpress/testcafe): End-to-end is important - [commitlint](https://github.com/conventional-changelog/commitlint): standardize git commit messages - [standard-version](https://github.com/conventional-changelog/commitlint): automate release versioning and changelog generation ## Recognition Huge thanks to maintainers of [Lightning Joule](https://github.com/joule-labs/joule-extension), [Zap Wallet](https://github.com/LN-Zap/zap-desktop), [LND](https://github.com/lightningnetwork/lnd), [Bitcoin Core](https://github.com/bitcoin/bitcoin), along with many others for the amazing apps & libraries that gave this project inspiration, ideas & sometimes even a little code 😊.