{"id":31626462,"url":"https://github.com/bitcoin-apps-suite/bitcoin-writer","last_synced_at":"2025-10-06T19:52:28.693Z","repository":{"id":314594995,"uuid":"1056098423","full_name":"bitcoin-apps-suite/bitcoin-writer","owner":"bitcoin-apps-suite","description":"Open source Bitcoin-powered writing platform with on-chain publishing, content monetization, and collaborative editing | By THE BITCOIN CORPORATION LTD","archived":false,"fork":false,"pushed_at":"2025-10-02T20:11:14.000Z","size":19066,"stargazers_count":2,"open_issues_count":44,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-02T22:10:52.420Z","etag":null,"topics":["bitcoin","bitcoin-sv","blockchain","blockchain-writer","bsv","content-creator","cryptocurrency","dapp","decentralized","nextjs","publishing","typescript","web3-publishing","writing"],"latest_commit_sha":null,"homepage":"https://bitcoin-writer.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitcoin-apps-suite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-13T11:38:29.000Z","updated_at":"2025-10-02T20:11:18.000Z","dependencies_parsed_at":"2025-09-13T13:58:04.276Z","dependency_job_id":"09d762d1-383a-413a-8e16-cafcece827b7","html_url":"https://github.com/bitcoin-apps-suite/bitcoin-writer","commit_stats":null,"previous_names":["b0ase/bitcoin-writer","bitcoin-apps-suite/bitcoin-writer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bitcoin-apps-suite/bitcoin-writer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-apps-suite%2Fbitcoin-writer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-apps-suite%2Fbitcoin-writer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-apps-suite%2Fbitcoin-writer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-apps-suite%2Fbitcoin-writer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitcoin-apps-suite","download_url":"https://codeload.github.com/bitcoin-apps-suite/bitcoin-writer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-apps-suite%2Fbitcoin-writer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278671749,"owners_count":26025743,"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-10-06T02:00:05.630Z","response_time":65,"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":["bitcoin","bitcoin-sv","blockchain","blockchain-writer","bsv","content-creator","cryptocurrency","dapp","decentralized","nextjs","publishing","typescript","web3-publishing","writing"],"created_at":"2025-10-06T19:52:27.053Z","updated_at":"2025-10-06T19:52:28.686Z","avatar_url":"https://github.com/bitcoin-apps-suite.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bitcoin Writer - Blockchain Writing App\n\nA decentralized writing application built on Bitcoin SV blockchain with HandCash authentication. Your documents are encrypted and stored on the blockchain, accessible only with your HandCash login.\n\n## Features\n\n- 🔒 **Encrypted Storage**: All documents are encrypted before being stored on the blockchain\n- 🔑 **HandCash Authentication**: Secure login with your HandCash wallet\n- 🌐 **Access Anywhere**: Your documents are available from any device with your HandCash login\n- 💎 **Permanent Storage**: Built on Bitcoin SV for immutable document storage\n- ✍️ **Rich Editor**: Distraction-free writing with image support\n- 💾 **Auto-save**: Automatic saving of your work\n- 📱 **Responsive**: Works on desktop and mobile devices\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v16 or later)\n- A HandCash wallet and developer account\n- HandCash App ID from the [HandCash Developer Dashboard](https://app.handcash.io/developers)\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/bitcoin-apps-suite/bitcoin-writer.git\n   cd bitcoin-writer\n   ```\n\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Set up environment variables:\n   ```bash\n   cp .env.example .env\n   ```\n   \n   Edit `.env` and add your HandCash configuration:\n   ```\n   REACT_APP_HANDCASH_APP_ID=your_handcash_app_id_here\n   REACT_APP_HANDCASH_REDIRECT_URL=http://localhost:3000/auth/handcash/callback\n   ```\n\n4. Start the development server:\n   ```bash\n   npm start\n   ```\n\n5. Open [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\n### Building for Production\n\n```bash\nnpm run build\n```\n\nThis creates an optimized build in the `build` folder ready for deployment.\n\n### Deployment\n\nThe app can be deployed to any static hosting service like Vercel, Netlify, or GitHub Pages.\n\nFor Vercel:\n```bash\nnpm install -g vercel\nvercel\n```\n\n## How It Works\n\n1. **Authentication**: Users sign in with their HandCash wallet using OAuth2 flow\n2. **Encryption**: Document content is encrypted using a key derived from the user's HandCash authentication\n3. **Storage**: Encrypted documents are stored on the Bitcoin SV blockchain (currently simulated with localStorage in demo mode)\n4. **Access**: Only the authenticated user can decrypt and read their documents\n\n## Architecture\n\n- **Frontend**: React with TypeScript\n- **Authentication**: HandCash OAuth2 REST API\n- **Encryption**: AES encryption via CryptoJS\n- **Storage**: Bitcoin SV blockchain (with BSV library)\n- **State Management**: React hooks and local state\n\n## Key Components\n\n- `HandCashAuthService`: Handles OAuth2 authentication with HandCash\n- `BlockchainDocumentService`: Manages encrypted document storage and retrieval\n- `DocumentEditor`: Rich text editor with blockchain integration\n- `Login`: HandCash authentication interface\n\n## Security Features\n\n- Documents are encrypted client-side before storage\n- Encryption keys are derived from user authentication tokens\n- No plaintext document content ever leaves the user's device unencrypted\n- Authentication tokens are securely managed in localStorage\n\n## Keyboard Shortcuts\n\n- **Ctrl/Cmd + S**: Save document\n- **Ctrl/Cmd + N**: New document\n- **F11**: Toggle fullscreen mode\n- **Tab**: Insert 4 spaces (indentation)\n\n## Development\n\n### Available Scripts\n\n- `npm start`: Runs the app in development mode\n- `npm test`: Launches the test runner\n- `npm run build`: Builds the app for production\n- `npm run eject`: Ejects from Create React App (not recommended)\n\n### HandCash Integration\n\nThis app integrates with HandCash using:\n- HandCash Connect SDK for wallet operations\n- HandCash OAuth2 REST API for authentication\n- BSV library for blockchain operations\n\n### Environment Variables\n\n- `REACT_APP_HANDCASH_APP_ID`: Your HandCash application ID\n- `REACT_APP_HANDCASH_APP_SECRET`: Your HandCash application secret (optional)\n- `REACT_APP_HANDCASH_REDIRECT_URL`: OAuth callback URL\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the Open BSV License version 5 - see the [LICENSE](LICENSE) file for details.\n\nCopyright © 2025 The Bitcoin Corporation LTD  \nRegistered in England and Wales • Company No. 16735102\n\n## Support\n\nFor support, please contact the development team or create an issue on GitHub.\n\n## Acknowledgments\n\n- Built on Bitcoin SV blockchain\n- Powered by HandCash for authentication\n- Inspired by the need for decentralized, private document storage ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitcoin-apps-suite%2Fbitcoin-writer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitcoin-apps-suite%2Fbitcoin-writer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitcoin-apps-suite%2Fbitcoin-writer/lists"}