An Electron-based 4chan browsing application for desktop (Linux, macOS, Windows).
- Thread Pinning: Pin important threads for quick access
- Update Notifications: Visual indicators when pinned threads have new replies
- Tabbed Browsing: Multiple threads open at once with configurable tab bar position (top/bottom)
- Media Downloads: Download images and videos with folder selection
- Reverse Image Search: Quick TinEye search for any post media
- Reply Sidebar: Always-visible reply panel on the right side
- Responsive Design: Works well in small windows for single monitor setups
- Node.js (v18 or higher)
- npm or yarn
npm installNote for Node.js 24+: If better-sqlite3 fails to compile, you need to set the C++20 flag:
export CXXFLAGS="-std=c++20" && npm installNote for Apple Silicon (M1/M2/M3): If you get architecture mismatch errors, rebuild the native module for Electron:
npm run rebuild-sqliteThis uses @electron/rebuild to ensure the native module matches Electron's architecture.
npm run buildnpm startnpm run dev- Electron: Desktop application framework
- TypeScript: Type-safe development
- SQLite (better-sqlite3): State management and persistence
- Functional Programming: Pure functions and immutable data patterns
- No
anytypes: Strict type checking enforced
chanchanchanchan/
├── src/ # Main process TypeScript source
│ ├── main.ts # Electron main process
│ ├── preload.ts # Preload script for IPC
│ ├── database.ts # SQLite database management
│ ├── api/ # 4chan API integration
│ └── types.ts # TypeScript type definitions
├── renderer/ # Renderer process (UI)
│ ├── index.html # Main HTML
│ ├── styles.css # Styling
│ ├── renderer.ts # Renderer logic
│ └── api.ts # 4chan API client
└── dist/ # Compiled output
MIT