From b91f565eaa9aad2512ecbb597d89e639e495f11c Mon Sep 17 00:00:00 2001
From: TypoGenie
Date: Thu, 29 Jan 2026 18:28:35 +0200
Subject: [PATCH] feat: Transform to Tauri desktop app
- Initialize Tauri v2 project with Rust backend
- Restructure project: move source files to src/ directory
- Add Tauri configuration for Windows, macOS, and Linux builds
- Update Vite config for Tauri development workflow
- Add file system and dialog permissions for native features
- Update package.json with desktop build scripts
- Update tsconfig.json paths for new src structure
- Add Tauri and desktop badges to README
- Document desktop build process and architecture
---
README.md | 71 +-
index.html | 23 +-
package-lock.json | 2247 ++++++++
package.json | 21 +-
src-tauri/.gitignore | 4 +
src-tauri/Cargo.lock | 5020 +++++++++++++++++
src-tauri/Cargo.toml | 25 +
src-tauri/build.rs | 3 +
src-tauri/capabilities/default.json | 52 +
src-tauri/icons/128x128.png | Bin 0 -> 11059 bytes
src-tauri/icons/128x128@2x.png | Bin 0 -> 23137 bytes
src-tauri/icons/32x32.png | Bin 0 -> 2225 bytes
src-tauri/icons/Square107x107Logo.png | Bin 0 -> 9202 bytes
src-tauri/icons/Square142x142Logo.png | Bin 0 -> 12530 bytes
src-tauri/icons/Square150x150Logo.png | Bin 0 -> 13032 bytes
src-tauri/icons/Square284x284Logo.png | Bin 0 -> 25943 bytes
src-tauri/icons/Square30x30Logo.png | Bin 0 -> 2078 bytes
src-tauri/icons/Square310x310Logo.png | Bin 0 -> 28507 bytes
src-tauri/icons/Square44x44Logo.png | Bin 0 -> 3419 bytes
src-tauri/icons/Square71x71Logo.png | Bin 0 -> 6027 bytes
src-tauri/icons/Square89x89Logo.png | Bin 0 -> 7551 bytes
src-tauri/icons/StoreLogo.png | Bin 0 -> 3971 bytes
src-tauri/icons/icon.icns | Bin 0 -> 277003 bytes
src-tauri/icons/icon.ico | Bin 0 -> 37710 bytes
src-tauri/icons/icon.png | Bin 0 -> 49979 bytes
src-tauri/src/lib.rs | 26 +
src-tauri/src/main.rs | 6 +
src-tauri/tauri.conf.json | 56 +
App.tsx => src/App.tsx | 0
{components => src/components}/FileUpload.tsx | 0
{components => src/components}/Preview.tsx | 0
.../components}/StylePreviewModal.tsx | 0
.../components}/StyleSelector.tsx | 0
constants.ts => src/constants.ts | 0
index.tsx => src/main.tsx | 0
{styles => src/styles}/academic.ts | 0
{styles => src/styles}/core.ts | 0
{styles => src/styles}/corporate.ts | 0
{styles => src/styles}/creative.ts | 0
{styles => src/styles}/editorial.ts | 0
{styles => src/styles}/index.ts | 0
{styles => src/styles}/industrial.ts | 0
{styles => src/styles}/lifestyle.ts | 0
{styles => src/styles}/minimalist.ts | 0
{styles => src/styles}/tech.ts | 0
{styles => src/styles}/vintage.ts | 0
{styles => src/styles}/volume1.ts | 0
{styles => src/styles}/volume2.ts | 0
types.ts => src/types.ts | 0
tsconfig.json | 7 +-
vite.config.ts | 53 +-
51 files changed, 7556 insertions(+), 58 deletions(-)
create mode 100644 package-lock.json
create mode 100644 src-tauri/.gitignore
create mode 100644 src-tauri/Cargo.lock
create mode 100644 src-tauri/Cargo.toml
create mode 100644 src-tauri/build.rs
create mode 100644 src-tauri/capabilities/default.json
create mode 100644 src-tauri/icons/128x128.png
create mode 100644 src-tauri/icons/128x128@2x.png
create mode 100644 src-tauri/icons/32x32.png
create mode 100644 src-tauri/icons/Square107x107Logo.png
create mode 100644 src-tauri/icons/Square142x142Logo.png
create mode 100644 src-tauri/icons/Square150x150Logo.png
create mode 100644 src-tauri/icons/Square284x284Logo.png
create mode 100644 src-tauri/icons/Square30x30Logo.png
create mode 100644 src-tauri/icons/Square310x310Logo.png
create mode 100644 src-tauri/icons/Square44x44Logo.png
create mode 100644 src-tauri/icons/Square71x71Logo.png
create mode 100644 src-tauri/icons/Square89x89Logo.png
create mode 100644 src-tauri/icons/StoreLogo.png
create mode 100644 src-tauri/icons/icon.icns
create mode 100644 src-tauri/icons/icon.ico
create mode 100644 src-tauri/icons/icon.png
create mode 100644 src-tauri/src/lib.rs
create mode 100644 src-tauri/src/main.rs
create mode 100644 src-tauri/tauri.conf.json
rename App.tsx => src/App.tsx (100%)
rename {components => src/components}/FileUpload.tsx (100%)
rename {components => src/components}/Preview.tsx (100%)
rename {components => src/components}/StylePreviewModal.tsx (100%)
rename {components => src/components}/StyleSelector.tsx (100%)
rename constants.ts => src/constants.ts (100%)
rename index.tsx => src/main.tsx (100%)
rename {styles => src/styles}/academic.ts (100%)
rename {styles => src/styles}/core.ts (100%)
rename {styles => src/styles}/corporate.ts (100%)
rename {styles => src/styles}/creative.ts (100%)
rename {styles => src/styles}/editorial.ts (100%)
rename {styles => src/styles}/index.ts (100%)
rename {styles => src/styles}/industrial.ts (100%)
rename {styles => src/styles}/lifestyle.ts (100%)
rename {styles => src/styles}/minimalist.ts (100%)
rename {styles => src/styles}/tech.ts (100%)
rename {styles => src/styles}/vintage.ts (100%)
rename {styles => src/styles}/volume1.ts (100%)
rename {styles => src/styles}/volume2.ts (100%)
rename types.ts => src/types.ts (100%)
diff --git a/README.md b/README.md
index 50d8453..12b2831 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,11 @@
+
+
+
+
+
@@ -71,6 +76,7 @@ In a world where document formatting tools are increasingly locked behind paywal
- **🎨 40+ Typography Styles** — Curated across 8 aesthetic categories
- **📐 Multiple Paper Sizes** — A4 and Letter formats supported
- **💾 Local Processing** — Your documents never leave your machine
+- **🖥️ Native Desktop Apps** — Built with Tauri for Windows, macOS, and Linux
- **📥 One-Click Export** — Clean `.docx` files ready for Microsoft Word
### 🏛️ Style Categories
@@ -140,13 +146,22 @@ Every style includes meticulously configured:
## 🚀 Quick Start
-### Prerequisites
+### Option 1: Download Desktop App (Recommended)
+
+Pre-built binaries coming soon for:
+- 🪟 **Windows** (.msi, .exe)
+- 🍎 **macOS** (.dmg, .app)
+- 🐧 **Linux** (.deb, .rpm, .AppImage)
+
+### Option 2: Build from Source
+
+#### Prerequisites
- **Node.js** 18+ (we recommend the latest LTS)
-- A modern web browser
+- **Rust** (for Tauri desktop builds)
- Your favorite text editor
-### Installation
+#### Web Development
```bash
# 1. Clone the collective's work
@@ -164,6 +179,18 @@ npm run dev
Your browser will open to `http://localhost:3000` — and you're ready to create!
+#### Desktop App Development
+
+```bash
+# Run in desktop development mode
+npm run desktop
+
+# Build desktop app for production
+npm run desktop:build
+```
+
+The built apps will be in `src-tauri/target/release/bundle/`
+
### Usage
1. **📤 Upload** — Drag and drop your Markdown file (or click to browse)
@@ -301,25 +328,37 @@ This follows established typographic best practices for comfortable reading.
### Available Scripts
```bash
-# Development server with hot reload
-npm run dev
+# Web Development
+npm run dev # Start Vite dev server
+npm run build # Production build (outputs to dist/)
+npm run preview # Preview production build locally
-# Production build (outputs to dist/)
-npm run build
-
-# Preview production build locally
-npm run preview
+# Desktop App Development (Tauri)
+npm run desktop # Run desktop app in dev mode
+npm run desktop:build # Build desktop app for production
+npm run tauri # Access Tauri CLI directly
```
### Project Structure
```
typogenie/
-├── 📁 components/ # React components
-│ ├── FileUpload.tsx # Drag-and-drop upload zone
-│ ├── StyleSelector.tsx # Style gallery with live preview
-│ ├── Preview.tsx # Final preview & DOCX export
-│ └── StylePreviewModal.tsx # (Optional) Modal preview
+├── 📁 src/ # Source code
+│ ├── 📁 components/ # React components
+│ │ ├── FileUpload.tsx # Drag-and-drop upload zone
+│ │ ├── StyleSelector.tsx # Style gallery with live preview
+│ │ ├── Preview.tsx # Final preview & DOCX export
+│ │ └── StylePreviewModal.tsx # (Optional) Modal preview
+│ ├── 📁 styles/ # Typography style definitions
+│ ├── 📄 main.tsx # React entry point
+│ ├── 📄 App.tsx # Main application component
+│ ├── 📄 types.ts # TypeScript interfaces
+│ └── 📄 constants.ts # Configuration exports
+├── 📁 src-tauri/ # Tauri desktop app
+│ ├── 📁 src/ # Rust source code
+│ ├── 📁 icons/ # App icons
+│ ├── 📄 Cargo.toml # Rust dependencies
+│ └── 📄 tauri.conf.json # Tauri configuration
├── 📁 styles/ # Typography style definitions
│ ├── index.ts # Aggregates all categories
│ ├── minimalist.ts # 11 clean styles
@@ -352,6 +391,8 @@ typogenie/
| **Icons** | Lucide React | Beautiful, consistent iconography |
| **Markdown** | marked 12.0.0 | Local Markdown parsing |
| **Documents** | docx 8.5.0 | Client-side DOCX generation |
+| **Desktop** | Tauri 2.0 | Native desktop apps (Rust + WebView) |
+| **Backend** | Rust 1.77+ | Systems programming for desktop shell |
diff --git a/index.html b/index.html
index 204edb0..89d69fa 100644
--- a/index.html
+++ b/index.html
@@ -3,7 +3,7 @@
- TypoGenie - Professional Report Generator
+ TypoGenie
@@ -15,22 +15,9 @@
color: #e4e4e7;
}
-
-
-
+
-
-
-