A lightweight, cross-platform desktop app built with Neutralinojs designed to provide deep directory insights and reliable file compression.
- Deep Scan Engine - Recursively analyzes directory structures to calculate total file counts and project size.
- Native API Extension - Extends the Neutralinojs core with file compression capabilities (not available in the standard API).
- WebSocket Communication - Real-time, bi-directional events between the React UI and the background extension for live updates.
- Atomic Write Strategy - Uses
.tmpfile streaming to ensure zip archives are never corrupted if a process is interrupted. - Process Control - Ability to abort active zipping operations and clean up temporary artifacts immediately.
- Three-Tier Architecture - High-level separation between UI (React), Bridge (Neutralino), and Native Logic (Node.js).
- Stunning UI & Smooth Animations — A polished UI powered by Tailwind CSS and Framer Motion, utilizing spring physics for ultra-smooth, responsive interactions.
video.mov
Used for recursive directory traversal and file metadata retrieval:
// Get metadata for a specific path
const stats = await filesystem.getStats(entry.path);
// Read directory contents
const entries = await filesystem.readDirectory(folderPath);Handles the native "Select Folder" interaction:
// Open native OS folder picker
const folderPath = await os.showFolderDialog("Select a project folder");The core "Flex" of the app — offloading zipping to a background Node.js process:
// Dispatching the task to the Node.js extension
await extensions.dispatch("js.neutralino.zipper", "zipFolder", {
path: folderData.path,
fileCount: folderData.fileCount,
});Handles real-time communication between the Node.js Extension and the React UI:
// Listen for progress updates broadcasted by the extension
events.on("zipProgress", (event) => {
setZipProgress(event.detail.percentage);
});- Node.js 22+
# 1. Install Neutralinojs CLI
npm install -g @neutralinojs/neu
# 2. Clone and enter the repo
git clone https://github.com/salehahmed99/info-zip.git
cd info-zip
# 3. Download the native binaries
neu update
# 4. Install extension dependencies
cd extensions/zipper
npm install
# 5. Install React dependencies
cd ../../react-src
npm install
# 6. Run the application
cd ..
neu run
MIT License