{"id":29452622,"url":"https://github.com/charmingdc/safewords","last_synced_at":"2025-09-11T13:05:28.972Z","repository":{"id":302996363,"uuid":"1012680545","full_name":"Charmingdc/SafeWords","owner":"Charmingdc","description":"SafeWords is a robust web application engineered with React and TypeScript, designed to give you complete control over the privacy of your sensitive text data. 🔐","archived":false,"fork":false,"pushed_at":"2025-07-09T19:17:09.000Z","size":1217,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-13T22:12:36.193Z","etag":null,"topics":["encryption-decryption","open-source","reactjs"],"latest_commit_sha":null,"homepage":"https://safewords.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Charmingdc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-02T17:54:02.000Z","updated_at":"2025-07-09T19:17:12.000Z","dependencies_parsed_at":"2025-07-05T04:38:10.375Z","dependency_job_id":null,"html_url":"https://github.com/Charmingdc/SafeWords","commit_stats":null,"previous_names":["charmingdc/safewords"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Charmingdc/SafeWords","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Charmingdc%2FSafeWords","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Charmingdc%2FSafeWords/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Charmingdc%2FSafeWords/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Charmingdc%2FSafeWords/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Charmingdc","download_url":"https://codeload.github.com/Charmingdc/SafeWords/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Charmingdc%2FSafeWords/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274640911,"owners_count":25322843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["encryption-decryption","open-source","reactjs"],"created_at":"2025-07-13T22:09:33.225Z","updated_at":"2025-09-11T13:05:28.947Z","avatar_url":"https://github.com/Charmingdc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **SafeWords: Your Private Text Encryption \u0026 Decryption Tool 🔒**\n\nProtect your sensitive information with **SafeWords** – a robust, client-side encryption and decryption tool that ensures your data never leaves your browser. 🚀 Seamlessly encrypt any text with a strong password, generating a secure Base64-encoded string. Share it anywhere, knowing that only someone with the correct password can unlock its contents. Ideal for secure notes, confidential messages, or developer secrets. Your privacy, our priority! ✨\n\n## 🚀 Installation\n\nGetting SafeWords up and running on your local machine is straightforward. Follow these steps to set up the development environment:\n\n*   **1. Clone the Repository:**\nStart by cloning the project to your local machine using Git:\n\n```bash\ngit clone git@github.com:Charmingdc/SafeWords\ncd SafeWords\n```\n\n*   **2. Install Dependencies:**\nNavigate into the project directory and install all required dependencies using npm:\n\n```bash\nnpm install\n```\n\n*   **3. Start the Development Server:**\nOnce dependencies are installed, you can launch the development server:\n\n```bash\nnpm run dev\n```\nThis command will start the application, typically accessible at `http://localhost:5173/` in your web browser.\n\n*   **4. Build for Production (Optional):**\nTo create a production-ready build of the application, run:\n\n```bash\nnpm run build\n```\nThis will generate optimized static assets in the `dist` directory.\n\n## 📝 Usage\n\nSafeWords is designed for intuitive and secure text handling. Here’s how you can use it to encrypt and decrypt your information:\n\n1.  **Access the Application:**\nAfter starting the development server, navigate to `http://localhost:5173/` (or the appropriate URL) in your web browser. You'll land on the introductory page. Click the \"Get Started\" button to proceed to the main encryption/decryption interface.\n\n2.  **Choose Your Operation:**\nOn the main page, you'll see two buttons: \"Encryption\" and \"Decryption\".\n*   Select **Encryption** if you want to secure new text.\n*   Select **Decryption** if you have an encrypted message you wish to reveal.\n\n3.  **Input Your Data and Password:**\n*   **Text Area:** Depending on your chosen operation, enter or paste the plain text you wish to encrypt, or the Base64-encoded encrypted string you want to decrypt.\n*   **Password Field:** Input a strong, memorable password. This password is crucial for both encrypting and decrypting your data, so ensure it's kept private and secure. For decryption, you must use the exact password that was originally used for encryption.\n\n4.  **Perform the Operation:**\nOnce you've entered both your text/data and the password, click the prominent button at the bottom (which will display \"SECURE\" for encryption or \"ACCESS\" for decryption).\n\n5.  **View and Manage Your Output:**\n*   **Output Modal:** A modal will appear displaying your encrypted Base64 string (for encryption) or your decrypted plain text (for decryption).\n*   **Copy to Clipboard:** Use the \"Copy\" button to quickly copy the output to your clipboard for sharing or further use.\n*   **Save Encryptions (Encryption Only):** If you've encrypted text, you'll have an option to \"Save\" the encrypted output along with its password to your browser's local IndexedDB storage. This is stored entirely client-side, ensuring privacy.\n*   **Close Modal:** Click \"Close\" to dismiss the output modal.\n\n6.  **View Saved Encryptions:**\nOn the main application page, you can click the \"View Saved Encryptions\" button. This will open a modal displaying all entries you've previously saved. You can then click on individual entries to view their full content and password, copy them, or delete them from your local storage.\n\n## ✨ Key Features\n\nSafeWords is built with a focus on security, usability, and privacy:\n\n*   **End-to-End Privacy:** Your data is encrypted and decrypted entirely within your browser, ensuring no sensitive information ever touches a server.\n*   **Portable Output:** Encrypted messages are generated as compact, Base64-encoded strings, making them easy to share across any platform or medium.\n*   **Secure Note Sharing:** Ideal for confidentially transmitting sensitive details, such as API keys, login credentials, or private messages.\n*   **Platform Agnostic:** Encrypted messages can be sent via email, chat applications, social media, or even public posts, accessible only by those with the correct password.\n*   **Developer-Friendly:** A robust tool for developers needing to securely share configuration values, tokens, or environment variables without relying on complex external tools.\n*   **Minimal \u0026 Instant:** Enjoy a frictionless experience with no sign-ups, accounts, or tracking. Just paste, protect, and go.\n*   **Local Storage (IndexedDB):** Securely save your encrypted entries directly in your browser's IndexedDB, maintaining full control over your data.\n*   **Dark/Light Mode:** Toggle between light and dark themes for a comfortable viewing experience.\n\n## 🛠️ Technologies Used\n\nSafeWords leverages a modern web development stack to deliver a secure and responsive user experience:\n\n| Technology         | Description                                                                                              | Link                                                              |\n| :----------------- | :------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |\n| **React (v19.1.0)** | A declarative, component-based JavaScript library for building user interfaces.                          | [React Official Site](https://react.dev/)                         |\n| **TypeScript (v5.x)** | A superset of JavaScript that adds static types, enhancing code quality and developer productivity.      | [TypeScript Official Site](https://www.typescriptlang.org/)       |\n| **Vite (v7.0.0)**   | A blazing-fast build tool and development server, offering a streamlined development workflow.           | [Vite Official Site](https://vitejs.dev/)                         |\n| **Tailwind CSS (v3.x)** | A utility-first CSS framework for rapidly building custom designs without leaving your HTML.             | [Tailwind CSS Official Site](https://tailwindcss.com/)            |\n| **Web Cryptography API** | Browser-native API used for robust client-side encryption and decryption.                             | [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) |\n| **IndexedDB**      | A low-level API for client-side storage of significant amounts of structured data, ensuring privacy.     | [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) |\n| **React Router DOM (v7.x)** | Declarative routing library for React applications.                                                      | [React Router](https://reactrouter.com/)                          |\n| **Lucide React**   | A collection of beautiful, community-maintained icons for React projects.                                | [Lucide Icons](https://lucide.dev/)                               |\n| **Sonner**         | An opinionated toast component for React, providing elegant and accessible notifications.                | [Sonner GitHub](https://sonner.emilkowalski.no/)                  |\n\n## 🤝 Contributing\n\nWe welcome contributions to SafeWords! Whether it's a bug report, a new feature, or an improvement to the documentation, your input is highly valued.\n\n*   **1. Fork the Repository:**\nStart by forking the SafeWords repository to your GitHub account.\n\n*   **2. Clone Your Fork:**\nClone your forked repository to your local machine:\n\n```bash\ngit clone https://github.com/YourUsername/SafeWords.git\n```\n\n*   **3. Create a New Branch:**\nBefore making changes, create a new branch for your feature or bug fix:\n\n```bash\ngit checkout -b feature/your-feature-name\n# or\ngit checkout -b bugfix/fix-description-error\n```\n\n*   **4. Make Your Changes:**\nImplement your changes, ensuring your code adheres to the existing style and best practices. Write clear, concise commits.\n\n*   **5. Test Your Changes:**\nBefore submitting, thoroughly test your changes to ensure they work as expected and don't introduce new issues.\n\n*   **6. Push Your Branch:**\nPush your changes to your forked repository on GitHub:\n\n```bash\ngit push origin feature/your-feature-name\n```\n\n*   **7. Open a Pull Request:**\nFinally, open a pull request from your branch to the `main` branch of the original SafeWords repository. Provide a clear description of your changes and why they are necessary.\n\nThank you for helping to improve SafeWords!\n\n## 📜 License\n\nNo explicit license file has been provided with this project. Please refer to the repository owner for licensing details or consider it proprietary unless otherwise stated.\n\n## ✍️ Author\n\nSafeWords was crafted with dedication by:\n\n**Charmingdc**\n*   **GitHub**: [@Charmingdc](https://github.com/Charmingdc)\n*   **Twitter**: [@Charmingdc01](https://twitter.com/Charmingdc01)\n*   **LinkedIn**: [Adebayo Muis](https://www.linkedin.com/in/adebayo-muis)\n\n---\n\n\n[![React](https://img.shields.io/badge/React-19.1.0-61DAFB?logo=react\u0026logoColor=white)](https://react.dev/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-3.x-06B6D4?logo=tailwindcss\u0026logoColor=white)](https://tailwindcss.com/)\n[![Vite](https://img.shields.io/badge/Vite-7.0.0-646CFF?logo=vite\u0026logoColor=white)](https://vitejs.dev/)\n\n[![Readme was generated by Dokugen](https://img.shields.io/badge/Readme%20was%20generated%20by-Dokugen-brightgreen)](https://www.npmjs.com/package/dokugen)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharmingdc%2Fsafewords","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharmingdc%2Fsafewords","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharmingdc%2Fsafewords/lists"}