Skip to content

Repository files navigation

NoPara - Secure Media Conversion Application

NoPara Logo

πŸ”— 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.

NoPara FFmpeg React Vite Privacy

✨ Features

🎨 Graffiti Neon UI

  • 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

πŸ”„ Real Media Conversion

  • 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

πŸ”’ 100% Private

  • All processing happens in YOUR browser
  • Files NEVER leave your device
  • No uploads, no servers, no tracking
  • Zero cookies, zero analytics
  • GDPR & PIPEDA compliant

πŸ” Security & Compliance

Standards Met

  • 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

Key Security Features

  • βœ… 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

β™Ώ Accessibility Features

WCAG 2.2 Level AAA Compliance

  • 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

Keyboard Navigation

  • Tab - Navigate between focusable elements
  • Enter/Space - Activate buttons
  • Arrow Keys - Select options in dropdowns/radios
  • Skip Link - Jump to main content

πŸ“¦ Project Structure

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

πŸš€ Getting Started

Prerequisites

  • Node.js 18.0 or higher
  • npm or yarn

Installation

# 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 preview

Development Server

Runs 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

Production Build

Optimized for GitHub Pages deployment:

npm run build

# Deploy dist/ folder to GitHub Pages
# Set base URL in vite.config.js to your repository name

🎯 Core Features

1. Real Media Conversion (FFmpeg.wasm)

Actual 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

2. Modern Glassmorphism UI

  • 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

3. File Validation (Security)

  • 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)

4. Conversion Settings

  • 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)

5. Offline Capability (PWA)

  • Cache-first strategy for static assets
  • Network-first for HTML
  • Share Target API for direct file sharing
  • Install on Desktop (no app store required)

πŸ”§ Configuration

Environment Variables

Create .env file in root:

VITE_API_URL=http://localhost:5173
VITE_ENVIRONMENT=development

Vite Configuration (vite.config.js)

Key settings:

  • base: '/NoPara/' (for GitHub Pages)
  • BROTLI compression (40% smaller bundles)
  • Security headers injection
  • WASM support
  • Terser minification

🌍 Deployment

GitHub Pages (Live)

The app is deployed at: https://jesunahmadushno.github.io/NoPara/

To deploy your own:

# Build and deploy in one command
npm run deploy

This runs npm run build && gh-pages -d dist --dotfiles which:

  1. Builds the production bundle
  2. Deploys to the gh-pages branch automatically

Security Headers for GitHub Pages

The coi-serviceworker.js injects COOP/COEP headers since GitHub Pages doesn't allow direct header configuration.

πŸ“Š Performance Metrics (Core Web Vitals)

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

πŸ›‘οΈ Security Best Practices

Input Validation (Zero-Trust)

// 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);
}

Content Security Policy

Strict CSP in index.html:

  • No inline scripts
  • No external resources
  • Data only in volatile RAM
  • WASM trusted via 'wasm-unsafe-eval'

No Data Persistence

  • Session storage only (cleared on close)
  • No IndexedDB
  • No cookies
  • No analytics
  • No remote logging

🎨 Customization

Colors

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 */
}

Fonts

System font stack for optimal performance:

--font-family-system: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto...

Branding

  • Update public/manifest.json with app details
  • Replace icons in public/icons/
  • Update header text in src/App.jsx

🚧 Future Enhancements

Planned Features

  • 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

Completed βœ…

  • 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

Accessibility Roadmap

  • Real-time captions
  • Haptic feedback for touch devices
  • Voice control (Web Speech API)
  • Better mobile keyboard support

πŸ“š Standards Documentation

WCAG 2.2 AAA Implementation

Security Standards

Web Standards

πŸ› Troubleshooting

WASM SharedArrayBuffer Not Available

Issue: SharedArrayBuffer is not defined

Solution:

  • Ensure COOP/COEP headers are set
  • Check browser support (Chrome 91+, Firefox 79+)
  • Verify crossOriginIsolated flag in DevTools console

Service Worker Not Registering

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

Contrast Ratio Issues

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

πŸ“ License

NoPara is provided as-is for educational and commercial use. Modify and deploy freely with compliance to standards.

🀝 Contributing

Contributions are welcome! Please ensure:

  1. WCAG 2.2 AAA compliance is maintained
  2. Security standards are followed
  3. Code is well-documented
  4. 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

About

Production-grade, serverless, browser-based media conversion platform with enterprise-grade security and accessibility.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages