An interactive web generator for the Zcash "Privacy is normal" manifesto with support for 36 languages, real-time editing, and high-quality PDF/PNG export.
The Zcash Privacy Manifest Generator allows users to create, edit, and export personalized versions of the Zcash privacy manifesto in multiple languages. The application faithfully replicates the original PDF design with a minimalist and intuitive interface.
- 36 Supported Languages: English, Portuguese, Spanish, French, German, Italian, Dutch, Polish, Russian, Ukrainian, Japanese, Korean, Chinese (Simplified and Traditional), Arabic, Hindi, Turkish, Swedish, Danish, Finnish, Norwegian, Greek, Czech, Romanian, Hungarian, Thai, Vietnamese, Indonesian, Malay, Swahili, Hebrew, Farsi, and more
- Smart Auto-fill: Automatically populate the complete manifesto in any language
- Real-time Editing: Edit text directly in the document
- High-Quality Export: Export as PDF (A4) or PNG
- Responsive Design: Works perfectly on desktop and mobile
- Minimalist Interface: Swiss Brutalism design faithful to the original
- Node.js 18+
- pnpm 10+
# Clone the repository
git clone https://github.com/Michae2xl/zcash-manifest.git
cd zcash-manifest
# Install dependencies
pnpm install
# Start the development server
pnpm devThe application will be available at http://localhost:5173
# Compile the project
pnpm build
# Preview the build
pnpm previewzcash-manifest/
├── client/ # Frontend React
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ │ ├── ExportButtons.tsx
│ │ │ ├── LanguageGrid.tsx
│ │ │ ├── ManifestDocument.tsx
│ │ │ └── ZcashResources.tsx
│ │ ├── pages/ # Application pages
│ │ │ └── Home.tsx
│ │ ├── lib/ # Utilities
│ │ │ └── translations.ts
│ │ ├── App.tsx # Root component
│ │ ├── main.tsx # Entry point
│ │ └── index.css # Global styles
│ └── index.html
├── server/ # Backend placeholder
├── shared/ # Shared types
├── package.json
├── vite.config.ts # Vite configuration
├── tsconfig.json # TypeScript configuration
└── README.md
| Technology | Version | Purpose |
|---|---|---|
| React | 19.2.1 | UI Framework |
| TypeScript | 5.6.3 | Static typing |
| Vite | 7.1.7 | Build tool |
| Tailwind CSS | 4.1.14 | Styling |
| jsPDF | 4.1.0 | PDF generation |
| html2canvas-pro | 1.6.7 | DOM to image capture |
| Wouter | 3.3.5 | Client-side routing |
| Lucide React | 0.574.0 | Icons |
- Select a language by clicking the corresponding flag
- Click the ✓ button to auto-fill the complete manifesto
- Edit the text in the white area as needed
- The document updates in real-time
- Export PDF: Click "Export PDF" to download in A4 format
- Export PNG: Click "Export PNG" to download as an image
- Clear: Click "Clear" to reset the text
The project supports the following languages:
- 🇺🇸 English (EN)
- 🇧🇷 Português (PT)
- 🇪🇸 Español (ES)
- 🇫🇷 Français (FR)
- 🇩🇪 Deutsch (DE)
- 🇮🇹 Italiano (IT)
- 🇳🇱 Nederlands (NL)
- 🇵🇱 Polski (PL)
- 🇷🇺 Русский (RU)
- 🇺🇦 Українська (UK)
- 🇯🇵 日本語 (JA)
- 🇰🇷 한국어 (KO)
- 🇨🇳 中文 (ZH)
- 🇹🇼 繁體中文 (ZH-TW)
- 🇸🇦 العربية (AR)
- 🇮🇳 हिन्दी (HI)
- 🇹🇷 Türkçe (TR)
- 🇸🇪 Svenska (SV)
- 🇩🇰 Dansk (DA)
- 🇫🇮 Suomi (FI)
- 🇳🇴 Norsk (NO)
- 🇬🇷 Ελληνικά (EL)
- 🇨🇿 Čeština (CS)
- 🇷🇴 Română (RO)
- 🇭🇺 Magyar (HU)
- 🇹🇭 ไทย (TH)
- 🇻🇳 Tiếng Việt (VI)
- 🇮🇩 Bahasa Indonesia (ID)
- 🇲🇾 Bahasa Melayu (MS)
- 🇰🇪 Kiswahili (SW)
- 🇮🇱 עברית (HE)
- 🇮🇷 فارسی (FA)
- And more...
The project follows the Swiss Brutalism philosophy with a minimalist design faithful to the original manifesto:
- Typography: Heavy black font for maximum contrast
- Colors: Light gray (#EBEBEB), black (#000), and Zcash gold (#F4B728)
- Layout: A4-like document with discrete controls
- Responsiveness: Adaptive scaling for mobile (0.45x on small screens)
# Start development server
pnpm dev
# Build for production
pnpm build
# Preview build
pnpm preview
# Check TypeScript types
pnpm check
# Format code
pnpm format- Open
client/src/lib/translations.ts - Add a new entry to the
languagesarray:
{
code: "XX",
name: "Language Name",
flag: "🇽🇽",
title: "Translated Title",
manifesto: "Translated manifesto text...",
exportPDF: "Export PDF",
exportPNG: "Export PNG",
clear: "Clear"
}- Save and the new language will appear automatically
pnpm buildCompiled files will be in dist/
The project is optimized for deployment on static hosting platforms such as:
- Vercel
- Netlify
- GitHub Pages
- Manus (native platform)
Contributions are welcome! Please:
- Fork the repository
- Create a branch for your feature (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
To report bugs or suggest improvements, please open an issue.
Built with ❤️ for the Zcash community