E6 Web Client is a React-based mobile application for browsing e621 and e926 content. Built with TypeScript, Tailwind CSS, and Capacitor for native Android deployment.
- π Advanced Search - Search by tags with autocomplete
- β€οΈ Favorites - Save and filter your favorite posts
- π± Mobile-First - Optimized for mobile devices
- π Dark Mode - Automatic dark/light theme support
- π Privacy Controls - Blacklist tags and content filtering
- πΆ Offline Support - Proxy support for restricted networks
- π± Native Android App - Built with Capacitor for native performance
- Node.js (v18 or higher)
- npm or yarn
- Android Studio + Java 21 (for Android APK builds only)
- Xcode (for macOS builds only)
-
Clone the repository
git clone https://github.com/Ivannivi/e6client.git cd e6client -
Install dependencies
npm install
-
Configure API Access (Optional)
- For e621: No API key required
- For e926: Set
API_KEYin settings for higher rate limits
-
Start development server
npm run dev
-
Open in browser
- Visit
http://localhost:5173
- Visit
-
Install Android SDK
# Linux (Arch) sudo pacman -S android-sdk # Linux (Ubuntu/Debian) sudo apt update sudo apt install android-sdk # macOS brew install android-sdk # Windows (via Chocolatey) choco install android-sdk # Or download manually from https://developer.android.com/studio#downloads
-
Install Java 21
# Linux (Arch) sudo pacman -S jdk21-openjdk sudo archlinux-java set java-21-openjdk # Linux (Ubuntu/Debian) sudo apt install openjdk-21-jdk # macOS brew install openjdk@21 echo 'export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH"' >> ~/.zshrc # Windows (via Chocolatey) choco install openjdk21
-
Set up environment variables
# Linux/macOS - Add to ~/.bashrc or ~/.zshrc export ANDROID_HOME=$HOME/Android/Sdk export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools export JAVA_HOME=/usr/lib/jvm/java-21-openjdk # Adjust path as needed # Windows - Add to System Environment Variables # ANDROID_HOME = C:\Users\%USERNAME%\Android\Sdk # JAVA_HOME = C:\Program Files\Java\jdk-21 # Add to PATH: %ANDROID_HOME%\tools, %ANDROID_HOME%\platform-tools
-
Accept Android SDK licenses
# Linux/macOS yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses # Windows (PowerShell) echo "y" | %ANDROID_HOME%\cmdline-tools\latest\bin\sdkmanager.bat --licenses
# Build web assets
npm run build
# Sync with Capacitor
npx cap sync android
# Build debug APK
cd android
./gradlew assembleDebug # Linux/macOS
gradlew.bat assembleDebug # Windows
# Find your APK
ls app/build/outputs/apk/debug/app-debug.apk# Via ADB (device connected)
adb install android/app/build/outputs/apk/debug/app-debug.apk
# Or transfer APK file to device and install manually# Arch Linux
sudo pacman -S electron
# Ubuntu/Debian
sudo apt install electron
# Or install via npm globally
npm install -g electron# Install electron-builder
npm install -g electron-builder
# Build for Linux
npm run build
npx cap sync @capacitor-community/electron
npx cap open @capacitor-community/electron
# Or create distributable
electron-builder --linux# Install Electron
npm install -g electron
# Install electron-builder
npm install -g electron-builder# Build web assets
npm run build
# Sync with Electron
npx cap sync @capacitor-community/electron
# Build distributable
electron-builder --win
# Or run directly
npx cap open @capacitor-community/electron# Install Xcode from App Store or https://developer.apple.com/xcode/
# Install Electron
npm install -g electron
# Install electron-builder
npm install -g electron-builder# Build web assets
npm run build
# Sync with Electron
npx cap sync @capacitor-community/electron
# Build distributable
electron-builder --mac
# Or run directly
npx cap open @capacitor-community/electronThe app can be deployed as a static website:
# Build for production
npm run build
# Deploy dist/ folder to any static host:
# - Netlify
# - Vercel
# - GitHub Pages
# - Firebase Hosting
# - AWS S3 + CloudFront# Dockerfile
FROM nginx:alpine
COPY dist/ /usr/share/nginx/html/
EXPOSE 80# Build and run
docker build -t e6client .
docker run -p 8080:80 e6cliente6client/
βββ src/
β βββ components/ # React components
β β βββ PostCard.tsx
β β βββ PostDetail.tsx
β β βββ SettingsModal.tsx
β βββ hooks/ # Custom React hooks
β β βββ useSettings.ts
β βββ services/ # API services
β β βββ api.ts
β βββ types.ts # TypeScript type definitions
β βββ constants.ts # App constants
β βββ App.tsx # Main app component
βββ android/ # Capacitor Android project
βββ public/ # Static assets
βββ dist/ # Built web assets
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production build
npx cap sync- Sync web assets to all platformsnpx cap sync android- Sync to Android onlynpx cap open android- Open in Android Studio
The app supports both e621 and e926 APIs:
- e621: Adult content (requires account for some features)
- e926: Safe content only
Accessible via the settings modal (βοΈ icon):
- API Key: For higher rate limits and private favorites
- Username: For accessing personal favorites
- Blacklisted Tags: Hide posts with specific tags
- Proxy Settings: For networks that block e621/e926
Build fails with Java version error
# Linux (Arch)
sudo pacman -S jdk21-openjdk
sudo archlinux-java set java-21-openjdk
# Linux (Ubuntu/Debian)
sudo apt install openjdk-21-jdk
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
# macOS
brew install openjdk@21
echo 'export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH"' >> ~/.zshrc
echo 'export JAVA_HOME="/opt/homebrew/opt/openjdk@21"' >> ~/.zshrc
# Windows
# Download JDK 21 from https://adoptium.net/
# Set JAVA_HOME and add to PATHAndroid SDK not found
# Linux/macOS
export ANDROID_HOME=$HOME/Android/Sdk
echo "sdk.dir=$HOME/Android/Sdk" > android/local.properties
# Windows
# Set ANDROID_HOME = C:\Users\%USERNAME%\Android\Sdk
# Create android/local.properties with: sdk.dir=C:\\Users\\%USERNAME%\\Android\\SdkAPK won't install
- Enable "Install unknown apps" in Android settings
- Check device storage space
- Try
adb install -rto reinstall - Verify APK signature:
jarsigner -verify app-debug.apk
Gradle build fails
# Clear Gradle cache
cd android
./gradlew clean # Linux/macOS
gradlew.bat clean # Windows
# Reset Capacitor
rm -rf node_modules package-lock.json
npm install
npx cap sync androidElectron build fails
# Install missing dependencies
npm install -g electron-builder
# Clear electron cache
npx electron-builder install-app-deps
# For Linux desktop builds
sudo apt-get install libnss3-dev libatk-bridge2.0-dev libdrm2 libxkbcommon-dev libgtk-3-devmacOS code signing issues
# Disable code signing for development
export CSC_IDENTITY_AUTO_DISCOVERY=false
electron-builder --mac --publish=neverWindows build issues
# Install Windows Build Tools
npm install -g windows-build-tools
# Or use Chocolatey
choco install visualstudio2019-workload-vctoolsNode.js version issues
# Check Node version
node --version # Should be v18+
# Use nvm for version management
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install 20
nvm use 20Port 5173 already in use
# Kill process using port
lsof -ti:5173 | xargs kill -9 # Linux/macOS
netstat -ano | findstr :5173 # Windows - then taskkill /PID <PID>Dependencies installation fails
# Clear npm cache
npm cache clean --force
# Delete node_modules and reinstall
rm -rf node_modules package-lock.json
npm install
# Use yarn if npm fails
npm install -g yarn
yarn installIf you're behind a firewall or in a restricted network:
- Enable proxy in app settings
- Use a VPN if available
- Try e926 instead of e621 (less likely to be blocked)
- Configure system proxy:
# Linux/macOS export HTTP_PROXY=http://proxy.company.com:8080 export HTTPS_PROXY=http://proxy.company.com:8080 # Windows # Set in System Settings > Proxy
App runs slow
- Enable production build:
npm run build - Check network tab for slow API calls
- Clear browser cache
- Update Node.js to latest LTS
High memory usage
- Close unused browser tabs
- Restart development server
- Check for memory leaks in React DevTools
This project is for educational and personal use only. Please respect e621/e926's terms of service and API usage guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Issues: GitHub Issues
- Discussions: GitHub Discussions