Official Desktop Client for SkelPass.
skelpass-desktop/
├── main.js # App LifeCycle Entry Point
├── package.json # Dependencies And Scripts
├── README.md # Documentation
├── .gitignore
│
├── src/
│ ├── main/
│ │ ├── window.js # Window Creation And Config
│ │ ├── ipc.js # IPC Event Handlers
│ │ └── security.js # DevTools Blocking And WebView Security
│ │
│ └── preload/
│ └── preload.js # Context Bridge API
│
├── public/
│ ├── index.html # Main HTML
│ ├── styles/
│ │ └── titlebar.css # TitleBar Styles
│ └── scripts/
│ └── main.js # UI JavaScript
│
└── assets/
└── icon.png # Application Icon (2000x2000)
# Install Dependencies
npm install
# Start Application
npm run start
# Development Mode (With Debugging)
npm run dev✅ DevTools Blocking
- F12, Ctrl + Shift + I, Ctrl + U And Similar Shortcuts Blocked
- DevTools Auto-Closes If Opened
✅ WebView Security
- Custom User-Agent (Windows Chrome)
- Right-Click Menu Disabled
- Popup Windows Blocked
✅ Context Isolation
- Secure API Exposure Via Preload Script
- No Node.js Access From Renderer Process
- window.js - BrowserWindow Configuration And Creation
- ipc.js - IPC Channels (Minimize, Maximize, Close)
- security.js - DevTools Blocking And WebView Security
- preload.js - ElectronAPI Exposure Via Context Bridge
- index.html - HTML Structure
- styles/titlebar.css - TitleBar And UI Styles
- scripts/main.js - Loading, Theme, UI Interaction
- Need IPC Handler? → Add To
src/main/ipc.js - Need Preload API? → Add To
src/preload/preload.js - Need Security Rule? → Add To
src/main/security.js - Need UI Changes? → Edit
public/index.htmlAndpublic/scripts/main.js
Use Electron Builder To Create Installers:
npm install --save-dev electron-builderAdd To package.json:
{
"build": {
"appId": "com.skelvric.skelpass",
"productName": "SkelPass",
"directories": {
"buildResources": "assets"
},
"win": {
"target": ["nsis", "portable"],
"icon": "assets/icon.png"
}
}
}The Icon Is Located At /assets/icon.png And Is Automatically Used By The Application.
To Customize The Icon:
- Replace
/assets/icon.pngWith Your Own PNG File - Restart The Application
Webview Appears Empty?
- Check Your Internet Connection
- Verify
https://pass.skelvric.comIs Accessible
Loading Spinner Doesn't Stop?
- There's An 8-Second Timeout That Will Force Close The Spinner
- May Be A Network Speed Issue
MIT — See LICENSE.
Open An Issue
