|
| 1 | +# ProposalForge |
| 2 | + |
| 3 | +**The Most Elegant & Intelligent Proposal Generator** |
| 4 | + |
| 5 | +> Proposals That Win Clients — Free, Open Source, No Login Required |
| 6 | +
|
| 7 | +[](LICENSE) |
| 8 | +[](https://developer.mozilla.org/en-US/docs/Web/JavaScript) |
| 9 | +[](https://tailwindcss.com) |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +## ✦ What is ProposalForge? |
| 14 | + |
| 15 | +ProposalForge is a premium, client-side-only proposal generator that lets freelancers, agencies, and small businesses create breathtaking, professional proposals in minutes — not hours. |
| 16 | + |
| 17 | +It feels like a **$149/month SaaS tool** (like PandaDoc or Qwilr), but it's **completely free and open source**, runs entirely in your browser with no backend, no login, and no data ever leaving your device. |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +## ✦ Features |
| 22 | + |
| 23 | +### 🤖 Smart AI Builder |
| 24 | +Paste your project brief → ProposalForge generates a complete, professional proposal in seconds. Powered by Claude AI with an intelligent offline fallback — works without an API key. |
| 25 | + |
| 26 | +### 📐 6 Luxury Templates |
| 27 | +- **Modern** — Clean and sharp |
| 28 | +- **Luxury** — Elevated and refined |
| 29 | +- **Corporate** — Bold and authoritative |
| 30 | +- **Creative** — Vibrant and expressive |
| 31 | +- **Minimal** — Quiet and precise |
| 32 | +- **Tech** — Dark and technical |
| 33 | + |
| 34 | +### ⚡ Live Split Preview |
| 35 | +Real-time preview updates as you type — see exactly what your client will receive. |
| 36 | + |
| 37 | +### 💰 Pricing Packages Builder |
| 38 | +Create Basic / Standard / Premium pricing tiers with smart auto-recommendation based on brief analysis. Line-item table with automatic tax, discount, and grand total calculation. |
| 39 | + |
| 40 | +### 🎨 Deep Customisation |
| 41 | +- 12 curated accent colors + custom color picker |
| 42 | +- Company logo upload (PNG, SVG, JPG) |
| 43 | +- Per-template typography and layout |
| 44 | +- Dark & light mode with persistent preference |
| 45 | + |
| 46 | +### 📄 One-Click PDF Export |
| 47 | +High-quality, print-ready PDF export at 2× DPI using html2canvas + jsPDF. Perfect A4 formatting with multi-page support. |
| 48 | + |
| 49 | +### 💾 Local Save / Load |
| 50 | +Save up to 20 proposals locally using localStorage. No account needed — your data stays on your device. |
| 51 | + |
| 52 | +--- |
| 53 | + |
| 54 | +## ✦ Quick Start |
| 55 | + |
| 56 | +```bash |
| 57 | +# Clone the repository |
| 58 | +git clone https://github.com/proposalforge/proposalforge.git |
| 59 | +cd proposalforge |
| 60 | + |
| 61 | +# Open in browser (no build step needed) |
| 62 | +open index.html |
| 63 | +# or serve locally: |
| 64 | +npx serve . |
| 65 | +``` |
| 66 | + |
| 67 | +That's it. No `npm install`, no build tools, no environment variables. |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +## ✦ Project Structure |
| 72 | + |
| 73 | +``` |
| 74 | +proposalforge/ |
| 75 | +├── index.html # App shell + Alpine.js markup |
| 76 | +├── css/ |
| 77 | +│ └── style.css # Global styles, preview themes, animations |
| 78 | +├── js/ |
| 79 | +│ ├── main.js # Alpine.js root component (app controller) |
| 80 | +│ ├── proposal-data.js # Default data structures, templates, colors |
| 81 | +│ ├── preview-renderer.js # Live preview HTML generator |
| 82 | +│ ├── smart-builder.js # AI + offline proposal generation engine |
| 83 | +│ ├── pricing-packages.js # Pricing logic, totals, package management |
| 84 | +│ ├── pdf-export.js # html2canvas + jsPDF export pipeline |
| 85 | +│ └── utils.js # Shared utility functions |
| 86 | +├── assets/ |
| 87 | +│ └── icons/ # SVG icon assets (inline in HTML) |
| 88 | +├── README.md |
| 89 | +├── LICENSE |
| 90 | +└── .gitignore |
| 91 | +``` |
| 92 | + |
| 93 | +--- |
| 94 | + |
| 95 | +## ✦ Tech Stack |
| 96 | + |
| 97 | +| Layer | Technology | |
| 98 | +|-------------|-----------------------------------| |
| 99 | +| Markup | HTML5, semantic & accessible | |
| 100 | +| Styling | Tailwind CSS (CDN) + custom CSS | |
| 101 | +| Reactivity | Alpine.js v3 (CDN) | |
| 102 | +| PDF | jsPDF + html2canvas (CDN) | |
| 103 | +| AI | Anthropic Claude API (optional) | |
| 104 | +| Storage | Browser localStorage | |
| 105 | +| Build | None — runs from the file system | |
| 106 | + |
| 107 | +--- |
| 108 | + |
| 109 | +## ✦ AI Smart Builder |
| 110 | + |
| 111 | +ProposalForge uses the **Anthropic Claude API** for its Smart Builder feature. The app works in two modes: |
| 112 | + |
| 113 | +### Online Mode (Claude API) |
| 114 | +When the Anthropic API is reachable, ProposalForge sends your brief to `claude-sonnet-4-20250514` and receives a structured proposal with intelligent sections and market-rate pricing. |
| 115 | + |
| 116 | +### Offline Mode (Always works) |
| 117 | +If the API is unavailable (no key, rate limit, network issue), the app automatically falls back to a sophisticated local generator that: |
| 118 | +- Detects your project type from keywords (website, branding, mobile app, etc.) |
| 119 | +- Extracts budget and timeline signals |
| 120 | +- Assesses project complexity |
| 121 | +- Generates professional, customised proposal copy |
| 122 | +- Calculates realistic agency pricing |
| 123 | + |
| 124 | +**You never see an error** — the fallback is seamless. |
| 125 | + |
| 126 | +--- |
| 127 | + |
| 128 | +## ✦ Customisation |
| 129 | + |
| 130 | +### Adding a New Template |
| 131 | +1. Add an entry to `TEMPLATES` in `js/proposal-data.js` |
| 132 | +2. Add CSS rules for `.tpl-yourname` in `css/style.css` |
| 133 | +3. Add a render branch in `preview-renderer.js` → `buildHeader()` |
| 134 | + |
| 135 | +### Changing Default Accent Colors |
| 136 | +Edit the `ACCENT_COLORS` array in `js/proposal-data.js`. |
| 137 | + |
| 138 | +### Changing Default Proposal Structure |
| 139 | +Edit `createNewProposal()` in `js/proposal-data.js`. |
| 140 | + |
| 141 | +--- |
| 142 | + |
| 143 | +## ✦ Browser Support |
| 144 | + |
| 145 | +| Browser | Support | |
| 146 | +|---------|---------| |
| 147 | +| Chrome | ✅ Full | |
| 148 | +| Firefox | ✅ Full | |
| 149 | +| Safari | ✅ Full | |
| 150 | +| Edge | ✅ Full | |
| 151 | + |
| 152 | +PDF export uses `html2canvas` which works best in Chromium-based browsers. For best PDF quality, use Chrome or Edge. |
| 153 | + |
| 154 | +--- |
| 155 | + |
| 156 | +## ✦ Privacy |
| 157 | + |
| 158 | +ProposalForge is **100% client-side**. Your proposal data never leaves your browser unless: |
| 159 | +1. You explicitly use the AI Smart Builder (brief text is sent to Anthropic's API) |
| 160 | +2. You export a PDF (processed locally) |
| 161 | + |
| 162 | +No analytics, no tracking, no ads. |
| 163 | + |
| 164 | +--- |
| 165 | + |
| 166 | +## ✦ Contributing |
| 167 | + |
| 168 | +Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change. |
| 169 | + |
| 170 | +```bash |
| 171 | +# Fork and clone |
| 172 | +git clone https://github.com/yourusername/proposalforge.git |
| 173 | + |
| 174 | +# Create a feature branch |
| 175 | +git checkout -b feature/amazing-new-template |
| 176 | + |
| 177 | +# Make your changes, then open a PR |
| 178 | +``` |
| 179 | + |
| 180 | +--- |
| 181 | + |
| 182 | +## ✦ License |
| 183 | + |
| 184 | +MIT — see [LICENSE](LICENSE) for details. |
| 185 | + |
| 186 | +--- |
| 187 | + |
| 188 | +<div align="center"> |
| 189 | + <strong>ProposalForge</strong> · Built with care for freelancers everywhere<br> |
| 190 | + <em>"Proposals That Win Clients"</em> |
| 191 | +</div> |
0 commit comments