Comprehensive guide for local development, building Windows executables, compiling the Android APK, and publishing updates via GitHub Releases.
Real-time dynamic RSS news reader featuring customizable modular blocks, international and regional feeds, AI-powered summaries (Google Gemini), and instant breaking news alerts.
| Layer | Technology |
|---|---|
| Frontend | React 19 + TypeScript + Vite + Tailwind CSS 4 |
| Backend | Node.js + Express (embedded local server) |
| Artificial Intelligence | Google Gemini (@google/genai) |
| Desktop | Electron (native window) + electron-builder |
| Mobile | Capacitor (Android Native Runtime) |
| Updates | electron-updater via GitHub Releases |
RadarRSS/
├── android/ ← Native Android Capacitor project
├── electron/main.cjs ← Desktop window & auto-updater logic
├── scripts/
│ ├── build-server.mjs ← Packages server for production bundle
│ ├── generate-android-icons.mjs ← Rasterizes mipmap Android icons
│ └── make-icon.js ← Generates Windows icon (build/icon.ico)
├── src/ ← React client source code
├── server.ts ← Express backend (RSS parsing + Gemini API)
├── package.json ← Project dependencies, scripts, & build config
├── INSTRUCTIONS.md ← This development guide
├── release/ ← Built Windows executables
└── build/icon.ico ← Windows application icon
| Item | Location |
|---|---|
| Source Code | Project root directory |
| Windows Installer | release\Radar RSS Setup X.Y.Z.exe |
| Windows Portable | release\Radar RSS X.Y.Z.exe |
| Unpacked Windows Binary | release\win-unpacked\Radar RSS.exe |
| Android Debug APK | android\app\build\outputs\apk\debug\app-debug.apk |
| Gemini API Key | .env.local (development) / .env next to .exe (production) |
Prerequisite: Node.js (version 18 or higher).
npm install # First time or after updating dependencies
npm run dev # Starts local web app at http://localhost:3000Additional commands:
npm run desktop # Launches inside an Electron window without packaging
npm run lint # Validates TypeScript types (tsc --noEmit)
npm run build # Compiles production dist/ folder (client + server)Configuring Gemini AI:
Create .env.local in the root folder:
GEMINI_API_KEY=YOUR_API_KEY_HEREWithout an API key, all RSS reading and block features continue to work normally, with AI summaries disabled.
npm run build:winOutput generated inside release\:
| File | Type |
|---|---|
Radar RSS Setup X.Y.Z.exe |
NSIS Installer — Recommended (supports background auto-updates) |
Radar RSS X.Y.Z.exe |
Portable Executable — Runs standalone without installation |
-
Build web assets and sync Capacitor:
npm run build:android
-
Assemble Debug APK:
cd android .\gradlew.bat assembleDebugThe generated APK will be placed at:
android/app/build/outputs/apk/debug/app-debug.apk
The installed Windows desktop app checks for updates automatically upon opening. To release a new version:
- Ensure the repository name matches in
package.jsonunderbuild.publish(dznass-cmd/RadarRSS). - Export your GitHub Personal Access Token in PowerShell:
$env:GH_TOKEN="ghp_..."
- Bump the
"version"field inpackage.json(e.g.,"0.0.3"). - Run:
npm run publish:win
- The installer, portable binary, blockmap, and
latest.ymlwill be uploaded directly to GitHub Releases.
Pushing a version tag triggers .github/workflows/release.yml to automatically build and release the binaries:
git add .
git commit -m "Release v0.0.3"
git tag v0.0.3
git push origin main --tagsThis project is licensed under the MIT License.