diff --git a/README.md b/README.md index e30edeb..ccbef6d 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,66 @@ -# GoodWebTools +
+
+⭐ **If GoodWebTools is useful, star the repo — it helps other people find privacy-first tools.**
+
+
| [Background Remover](https://goodwebtools.com/tools/image-bg-remove) · [Image Compressor](https://goodwebtools.com/tools/image-compress) · [Image Converter](https://goodwebtools.com/tools/image-convert) · [HEIC to JPG](https://goodwebtools.com/tools/image-heic-to-jpg) · [Favicon Generator](https://goodwebtools.com/tools/favicon-generator) |
+| **📄 PDF** (20) |
| [Merge PDF](https://goodwebtools.com/tools/pdf-merge) · [Organize PDF](https://goodwebtools.com/tools/pdf-organize) · [Fill & Sign PDF](https://goodwebtools.com/tools/pdf-fill) · [Extract Images](https://goodwebtools.com/tools/pdf-extract-images) · [Add Page Numbers](https://goodwebtools.com/tools/pdf-page-numbers) |
+| **🎬 Media** (21) |
| [Video Compressor](https://goodwebtools.com/tools/video-compress) · [Subtitle Editor](https://goodwebtools.com/tools/subtitle-editor) · [Voice Recorder](https://goodwebtools.com/tools/voice-recorder) · [White Noise](https://goodwebtools.com/tools/white-noise) |
+| **🎨 Draw** (3) |
| [DB Diagram (DBML)](https://goodwebtools.com/tools/db-diagram) · [Whiteboard](https://goodwebtools.com/tools/whiteboard) · [Signature Pad](https://goodwebtools.com/tools/signature) |
+| **💻 Dev** (57) | — | [JSON Formatter](https://goodwebtools.com/tools/json-format) · [Base64](https://goodwebtools.com/tools/base64) · [JWT Decoder](https://goodwebtools.com/tools/jwt-decode) · [URL Encode/Decode](https://goodwebtools.com/tools/url-encode) · [UUID Generator](https://goodwebtools.com/tools/uuid-gen) |
+| **📇 Documents** (13) | — | [PPTX Viewer](https://goodwebtools.com/tools/pptx-viewer) · [PPTX to PDF](https://goodwebtools.com/tools/pptx-to-pdf) · [EML Email Viewer](https://goodwebtools.com/tools/eml-viewer) · [GEDCOM Viewer](https://goodwebtools.com/tools/gedcom-viewer) |
+| **🧮 Calculators** (17) | — | [Percentage Calculator](https://goodwebtools.com/tools/percentage-calculator) · [Time Zone Converter](https://goodwebtools.com/tools/timezone-converter) · [Countdown Timer](https://goodwebtools.com/tools/countdown) · [Roman Numerals](https://goodwebtools.com/tools/roman-numerals) |
+| **🗂️ Files** (6) | — | [Compress to Size](https://goodwebtools.com/tools/compress-to-size) · [File Encrypt/Decrypt](https://goodwebtools.com/tools/file-crypt) · [Zip / Unzip](https://goodwebtools.com/tools/zip) · [Archive Extractor](https://goodwebtools.com/tools/archive-extract) |
+| **🔬 Testers** (7) | — | [Device Test](https://goodwebtools.com/tools/device-test) · [Microphone Test](https://goodwebtools.com/tools/mic-test) · [Webcam Test](https://goodwebtools.com/tools/webcam-test) · [Keyboard Test](https://goodwebtools.com/tools/keyboard-test) |
+| **🗺️ Maps** (4) | — | [Coordinate Converter](https://goodwebtools.com/tools/coord-convert) · [Map Explorer](https://goodwebtools.com/tools/map-explorer) · [GeoJSON/GPX/KML Viewer](https://goodwebtools.com/tools/geo-viewer) · [Static Map Maker](https://goodwebtools.com/tools/static-map) |
+| **🌐 Network** (3) | — | [P2P File Transfer](https://goodwebtools.com/tools/file-transfer) · [Video Call](https://goodwebtools.com/tools/video-call) · [Optical File Transfer](https://goodwebtools.com/tools/optical-transfer) |
+| **🎮 Games** (7) | — | [Wheel Spinner](https://goodwebtools.com/tools/wheel-spinner) · [2048](https://goodwebtools.com/tools/2048) · [Block Puzzle](https://goodwebtools.com/tools/block-puzzle) · [Dino Run](https://goodwebtools.com/tools/dino-run) |
+| **🧪 Playground** (4) | — | [Code Scratchpad](https://goodwebtools.com/tools/code-scratchpad) · [SQLite Playground](https://goodwebtools.com/tools/sqlite-playground) · [Online Notepad](https://goodwebtools.com/tools/notepad) · [Quick To-Do](https://goodwebtools.com/tools/todo) |
+
+## 🤖 Ask Agent — the tools, driven for you
+
+
+
+Tell it what you want in plain language — *"compress this image to 100 KB"*, *"merge these PDFs"*, *"remove duplicate rows from this CSV and convert to Excel"* — and it picks the right tools, chains them, and hands back the result. It runs a small model **fully on-device** (WebGPU), or you can plug in **your own OpenAI-compatible / Anthropic API key**. Either way, the processing stays in your browser.
## Tech
-- [Astro](https://astro.build) static site + **React islands** (per-tool, lazy-loaded)
-- Client-side processing: WebAssembly, Canvas, `onnxruntime-web`, `@imgly/background-removal`, `mupdf`, `ffmpeg.wasm`
-- Desktop app via [Tauri 2](https://tauri.app)
-- Deployed on **Cloudflare Workers** (static assets + R2 for ML models)
+- [**Astro**](https://astro.build) static site + **React islands** (each tool is its own lazy-loaded chunk)
+- **100% client-side processing**: WebAssembly, Canvas, `onnxruntime-web`, `@imgly/background-removal`, `mupdf`, `ffmpeg.wasm`, `transformers.js` / WebGPU
+- Installable **PWA** with offline support
+- Native **desktop app** via [Tauri 2](https://tauri.app)
+- Deployed on **Cloudflare Workers** (static assets + R2 for on-demand ML models)
## Run locally
@@ -36,17 +69,21 @@ npm install --legacy-peer-deps
npm run dev # http://localhost:4321
```
+Build a production bundle with `npm run build`, run tests with `npx vitest run`.
+
## Contributing
-New tools and fixes welcome — the tool registry makes adding one straightforward.
-See **[CONTRIBUTING.md](./CONTRIBUTING.md)** (includes an "add a tool" walkthrough)
-and the **[Code of Conduct](./CODE_OF_CONDUCT.md)**.
+PRs are very welcome — new tools, fixes, and translations. Every tool is a **thin React island** (`src/islands/