π Live Demo: https://jesunahmadushno.github.io/NoPara/
β Buy Me a Coffee β’ π¨βπ» Developer
Production-grade, serverless, browser-based media conversion platform with enterprise-grade security and accessibility. Powered by FFmpeg.wasm for real client-side media processing.
- Stunning neon color palette (Cyan, Magenta, Purple, Green, Orange)
- Animated gradients and glow effects
- Glassmorphism cards with frosted glass appearance
- Panic Bootloader - Animated loading screen with scrambling logo
- Responsive design for all screen sizes
- Video: MP4, WebM, MKV, AVI
- Audio: MP3, WAV, FLAC, AAC
- Image: GIF (high quality), WebP, PNG, JPEG
- Adjustable quality settings (CRF, presets)
- Real-time conversion progress
- All processing happens in YOUR browser
- Files NEVER leave your device
- No uploads, no servers, no tracking
- Zero cookies, zero analytics
- GDPR & PIPEDA compliant
- ISO/IEC 40500:2025 - WCAG 2.2 Level AAA (Accessibility)
- EN 301 549 - European Accessibility Standard
- ISO/IEC 27001:2022 - Information Security Management
- GDPR Article 32 - Secure Data Processing
- PIPEDA - Canadian Privacy Protection
- OWASP Top 10 - Web Application Security
- Zero-Trust Architecture - Validate all inputs
- β Cross-Origin Isolation (COOP/COEP) for WASM SharedArrayBuffer
- β Content Security Policy (CSP) - Strict, no inline scripts
- β Zero-Trust File Validation - Magic number verification
- β No Data Tracking - Zero cookies, zero localStorage, zero analytics
- β Volatile RAM Only - Files never persisted to disk
- β Secure Error Handling - No stack trace exposure
- 7:1 Minimum Color Contrast Ratio
- 24px Minimum Touch Target Size
- Full Keyboard Navigation (Tab, Enter, Space)
- Screen Reader Support (ARIA Landmarks)
- Focus Indicators (Visible on all interactive elements)
- High Contrast Mode Support
- Reduced Motion Preference Respect
- Tab - Navigate between focusable elements
- Enter/Space - Activate buttons
- Arrow Keys - Select options in dropdowns/radios
- Skip Link - Jump to main content
NoPara/
βββ public/
β βββ coi-serviceworker.js # Cross-Origin Isolation workaround
β βββ service-worker.js # Offline capability & caching
β βββ manifest.json # PWA manifest
β βββ styles/
β β βββ globals.css # Global styles + variables
β β βββ accessibility.css # WCAG 2.2 AAA rules
β β βββ components.css # Component styles
β βββ icons/ # PWA icons (192x192, 512x512)
βββ src/
β βββ main.jsx # React entry point
β βββ App.jsx # Main application component
β βββ utils/
β βββ security.js # File validation + magic numbers
βββ index.html # Semantic HTML with CSP meta tags
βββ vite.config.js # Vite build configuration
βββ package.json # Dependencies
βββ README.md # This file
- Node.js 18.0 or higher
- npm or yarn
# Clone or navigate to the project
cd NoPara
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewRuns on http://localhost:5173 with hot module replacement (HMR).
Security headers are enabled in dev mode:
- COOP/COEP for Cross-Origin Isolation
- X-Content-Type-Options: nosniff
- X-Frame-Options: DENY
- Strict CSP
Optimized for GitHub Pages deployment:
npm run build
# Deploy dist/ folder to GitHub Pages
# Set base URL in vite.config.js to your repository nameActual client-side media conversion using FFmpeg compiled to WebAssembly:
- Video: MP4, WebM, MKV, AVI, MOV, FLV, WMV, MPEG, OGG
- Audio: MP3, WAV, FLAC, AAC, OGG, WMA, M4A, OPUS
- Image: GIF (animated), WebP, PNG, JPEG, BMP, TIFF
- Beautiful gradient backgrounds with animated effects
- Glassmorphism cards with frosted glass appearance
- Smooth animations and micro-interactions
- Floating action button for Security & Privacy info
- Responsive design for all screen sizes
- Magic number verification (binary signatures)
- MIME type validation
- File size limits (prevents DoS)
- Sanitized file names (prevents path traversal)
- Secure error messages (no stack traces)
- Quality Level (Low/Medium/High/Very High/Lossless)
- Bitrate Control (Audio: 128k-320k, Video: 1M-50M)
- Resolution Options (Original, 480p, 720p, 1080p, 4K)
- Frame Rate Control (Original, 24, 30, 60 fps)
- Audio Sample Rate (44.1kHz, 48kHz, 96kHz)
- Cache-first strategy for static assets
- Network-first for HTML
- Share Target API for direct file sharing
- Install on Desktop (no app store required)
Create .env file in root:
VITE_API_URL=http://localhost:5173
VITE_ENVIRONMENT=developmentKey settings:
base: '/NoPara/' (for GitHub Pages)- BROTLI compression (40% smaller bundles)
- Security headers injection
- WASM support
- Terser minification
The app is deployed at: https://jesunahmadushno.github.io/NoPara/
To deploy your own:
# Build and deploy in one command
npm run deployThis runs npm run build && gh-pages -d dist --dotfiles which:
- Builds the production bundle
- Deploys to the
gh-pagesbranch automatically
The coi-serviceworker.js injects COOP/COEP headers since GitHub Pages doesn't allow direct header configuration.
Targets:
- LCP (Largest Contentful Paint): < 2.5s
- FID (First Input Delay): < 100ms
- CLS (Cumulative Layout Shift): < 0.1
Optimizations:
- Lazy loading for non-critical assets
- Brotli compression (dev: ~40% size reduction)
- CSS code splitting
- Minimal external dependencies
- Green Coding practices
// All files validated via magic numbers
import { validateFile } from './utils/security.js';
const validation = await validateFile(userFile);
if (!validation.valid) {
// Handle error securely
console.error(validation.errors);
}Strict CSP in index.html:
- No inline scripts
- No external resources
- Data only in volatile RAM
- WASM trusted via 'wasm-unsafe-eval'
- Session storage only (cleared on close)
- No IndexedDB
- No cookies
- No analytics
- No remote logging
Edit CSS variables in public/styles/globals.css:
:root {
/* Graffiti Neon Color Palette */
--primary: #00e5ff; /* Cyan */
--secondary: #ff00ff; /* Magenta */
--accent: #39ff14; /* Green */
--purple: #9d4edd; /* Purple */
--orange: #ff6d00; /* Orange */
/* ... more colors */
}System font stack for optimal performance:
--font-family-system: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto...- Update
public/manifest.jsonwith app details - Replace icons in
public/icons/ - Update header text in
src/App.jsx
- Advanced video editing (timeline scrubbing, trim, crop)
- Batch processing for multiple files
- Hardware acceleration (WebGL rendering)
- Cloud storage integration (with encryption)
- Internationalization (i18n)
- Dark/Light mode toggle
- FFmpeg WASM integration (actual media processing)
- Modern glassmorphism UI with animations
- Floating info button with modal
- Real-time conversion progress
- GitHub Pages deployment
- Graffiti neon theme with custom skull logo
- Panic bootloader with animated loading screen
- Buy Me a Coffee floating button
- Developer footer with link
- High quality GIF conversion
- Real-time captions
- Haptic feedback for touch devices
- Voice control (Web Speech API)
- Better mobile keyboard support
Issue: SharedArrayBuffer is not defined
Solution:
- Ensure COOP/COEP headers are set
- Check browser support (Chrome 91+, Firefox 79+)
- Verify
crossOriginIsolatedflag in DevTools console
Issue: "Service Worker registration failed"
Solution:
- Check browser console for errors
- Ensure site is HTTPS (or localhost)
- Clear cache and hard refresh (Ctrl+Shift+R)
- Check service worker file path in
index.html
Issue: WCAG AAA compliance check failing
Solution:
- Use color variables from
globals.css - Test with tools like WebAIM Contrast Checker
- Ensure text color is at least 7:1 ratio with background
NoPara is provided as-is for educational and commercial use. Modify and deploy freely with compliance to standards.
Contributions are welcome! Please ensure:
- WCAG 2.2 AAA compliance is maintained
- Security standards are followed
- Code is well-documented
- Performance metrics are met
Version: 1.2.0
Last Updated: January 24, 2026
Architecture: Serverless, Client-Side Only (React + Vite + FFmpeg.wasm)
Security: Zero-Trust, GDPR Compliant, No Data Persistence
Developer: Jesun Ahmad Ushno
Repository: github.com/JesunAhmadUshno/NoPara
Support: Buy Me a Coffee
