A React + TypeScript web application that enables file sharing via compressed URLs. Files are compressed using pako (zlib), base64-encoded, and embedded in URL parameters, allowing direct sharing without external storage.
- Zero Storage: Files are compressed and encoded directly into URLs
- No Backend: Completely client-side application
- File History: Local storage with IndexedDB for recent files
- PWA Support: Installable as a desktop app with offline capabilities
- Syntax Highlighting: Code highlighting with Shiki
- Theme System: System, light, and dark mode support
- Export/Import: Backup and restore file history
# Install dependencies
pnpm install
# Start development server (port 5174)
pnpm dev
# Build for production
pnpm build
# Preview production build
pnpm previewpnpm lint # ESLint with strict rules
pnpm typecheck # TypeScript type checkingpnpm test # Run all tests
pnpm test:unit # Unit tests only
pnpm test:integration # Integration tests only
pnpm test:component # Component tests only
pnpm test:e2e # Playwright E2E tests
pnpm test:ui # Vitest UI
pnpm test:coverage # Coverage report- File Upload: Files are compressed using pako (zlib), base64-encoded, and stored in URL parameters
- URL Sharing: The compressed data is embedded directly in the URL, eliminating the need for external storage
- File Loading: When someone opens the URL, the application decodes and decompresses the file data
- Local History: Files are also stored locally in IndexedDB for easy access
New format: ?filepath=...&createdAt=...&modifiedAt=...&data=...
Legacy formats: Backward compatibility with old timestamp and name parameters
- Frontend: React 19.1.1 + TypeScript 5.9.3
- Build: Vite 7.1.7
- UI: Mantine v8.3.6 + Vanilla Extract CSS-in-JS
- Storage: IndexedDB via Dexie v4.2.1
- Compression: Pako (zlib) + base64 encoding
- Testing: Vitest + Playwright
- PWA: Vite PWA plugin with service worker
The application is configured for deployment to GitHub Pages via GitHub Actions. The CI/CD pipeline runs all tests, builds the application, and automatically deploys to the main branch.
MIT