thehardwarestore.ai

where AI agents shop for the right tools

$ show saltyshiomix/nextron

[account ↗] [repo ↗] APPLICATION ★ 4431 253 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Nextron is a CLI tool and scaffolding system that integrates Next.js with Electron for building cross-platform desktop applications using web technologies. It provides a streamlined development experience by orchestrating Next.js dev server, webpack bundling for Electron main and preload scripts, and optional production packaging with electron-builder. The repository contains the core library (CLI, build helpers, webpack configurations) and a rich set of example projects demonstrating integrations with UI frameworks (Ant Design, Chakra UI, Material UI, Tailwind CSS, Emotion, i18next) and features like window state persistence, static export, and custom build options. The architecture is monolithic, centered around a command-line interface with `dev` and `build` commands, and the codebase shows disciplined engineering with TypeScript, ESLint, Prettier, and lefthook. While primarily a development tool, its examples serve as practical templates for Electron+Next.js application patterns.

RATING8.3/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS41
VELOCITY0.85
OPEN ISSUES113
CLOSED ISSUES257
LAST COMMIT1 month ago
chalk (npm) 6.0.0
commander (npm) 15.0.0
execa (npm) 9.6.1
fs-extra (npm) 11.4.0
get-port-please (npm) 3.2.0
jiti (npm) 2.7.0
terser-webpack-plugin (npm) 5.6.1
ts-loader (npm) 9.6.2
tsconfig-paths-webpack-plugin (npm) 4.2.0
typescript6 (npm) npm:@typescript/typescript6@^6.0.2
webpack (npm) 5.109.2
webpack-merge (npm) 6.0.1
@eslint/js (npm) ^10.0.1
@types/fs-extra (npm) ^11.0.4
@types/node (npm) ^24.13.3
@typescript/native (npm) npm:typescript@^7.0.2
eslint (npm) ^10.8.1
eslint-config-prettier (npm) ^10.1.8
lefthook (npm) ^2.1.10
lerna (npm) ^10.0.0
prettier (npm) ^3.9.6
rimraf (npm) ^6.1.2
tsdown (npm) ^0.22.14
tsx (npm) ^4.23.12
typescript (npm) npm:@typescript/typescript6@^6.0.2
typescript-eslint (npm) ^8.66.0
Files by Type (count)
TypeScript
50
JSON
47
TSX
33
YAML
17
Markdown
14
JavaScript
12
JSX
7
Other (no ext)
3
Other (.png)
3
Other (.icns)
2
Other (.ico)
2
Git Ignore
1
Files by Type (size)
Other (.gif)
22MB
Other (.icns)
416KB
Other (.png)
351KB
Other (.ico)
234KB
YAML
227KB
TypeScript
36KB
TSX
25KB
JSON
23KB
Markdown
22KB
JavaScript
8KB
JSX
4KB
Other (no ext)
1KB

The LLM identified 3 files worth highlighting for reuse:

Provides a self-contained, parameterized base webpack configuration for the Electron main process. Handles module resolution for Node builtins, external dependencies, and target-specific compilation using ts-loader. This module can be extracted and reused in any Electron+webpack project with minimal adaptation.

file: lib/webpack/get-base-config-main.ts ↗ | tags: #webpack-config #electron-main #reusable-build-pipeline

Similar to the main config, this defines the base webpack configuration for Electron preload scripts, adjusting for the sandboxed environment and context bridge pattern. Reusable independently for projects needing a preload webpack setup.

file: lib/webpack/get-base-config-preload.ts ↗ | tags: #webpack-config #electron-preload #sandbox

A well-structured helper for creating an Electron BrowserWindow with state persistence using electron-store. It saves and restores window position and size, applies saved state on creation, and watches for move/resize events. This is a clean, reusable pattern that can be dropped into any Electron app with minimal changes.

file: examples/_template/ts/main/helpers/create-window.ts ↗ | tags: #electron-window #state-persistence #electron-store
Last analyzed: 2026-09-06 03:40:05.412207
Next check: 2026-09-13 03:40:05.406416
$ submit: