{"id":15150021,"url":"https://github.com/iamnanjo/encrypted-chat-app","last_synced_at":"2026-02-27T12:42:15.400Z","repository":{"id":213374858,"uuid":"733716906","full_name":"IamNanjo/encrypted-chat-app","owner":"IamNanjo","description":"End-to-end encrypted realtime chat app made using Nuxt 3, Websockets and the Web Crypto API","archived":false,"fork":false,"pushed_at":"2025-04-05T11:23:54.000Z","size":3054,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T12:25:15.763Z","etag":null,"topics":["chat-application","encryption","end-to-end-encryption","nuxt3","web-crypto-api","websocket"],"latest_commit_sha":null,"homepage":"https://chat.nanjo.dev","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/IamNanjo.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}},"created_at":"2023-12-20T00:56:46.000Z","updated_at":"2025-04-05T11:23:58.000Z","dependencies_parsed_at":"2023-12-30T14:23:51.669Z","dependency_job_id":"96186658-3140-4ae8-aa9d-22a49e13e606","html_url":"https://github.com/IamNanjo/encrypted-chat-app","commit_stats":{"total_commits":359,"total_committers":1,"mean_commits":359.0,"dds":0.0,"last_synced_commit":"f31fad41111c8ef8c7270e70ceaddbfc55ff9ab5"},"previous_names":["iamnanjo/encrypted-chat-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IamNanjo%2Fencrypted-chat-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IamNanjo%2Fencrypted-chat-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IamNanjo%2Fencrypted-chat-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IamNanjo%2Fencrypted-chat-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IamNanjo","download_url":"https://codeload.github.com/IamNanjo/encrypted-chat-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248923762,"owners_count":21183958,"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","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":["chat-application","encryption","end-to-end-encryption","nuxt3","web-crypto-api","websocket"],"created_at":"2024-09-26T14:01:45.122Z","updated_at":"2026-02-27T12:42:15.347Z","avatar_url":"https://github.com/IamNanjo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Encrypted Chat App\n\nThis chat app uses end-to-end-encryption with RSA-OAEP.\nThe encryption is done on the client using the Web Crypto API.\nThe encrypted messages and public keys are saved on the server and they are then sent to users.\n\nNew chats and messages are sent to clients using Websockets.\nThis means that only the new messages need to be decrypted and there will be no need to constantly poll the server for updates.\nThis makes the chat app far more performant efficient.\n\n## Screenshots\n\n![Login page](public/screenshots/login.png)\n\n![User profile](public/screenshots/user-profile.png)\n\n![User search](public/screenshots/user-search.png)\n\n![Chat with messages](public/screenshots/chat-with-messages.png)\n\n## Database\n\nThis app uses Drizzle ORM with better-sqlite3 adapter for the database connection.\n\n![Database EER diagram](db-diagram.svg)\n\n## Setup\n\nMake sure to install the dependencies:\n\n```bash\n# npm\nnpm install\n\n# yarn\nyarn install\n\n# bun\nbun install\n```\n\n### Database Setup\n\n```bash\n# npm\nnpm run dbmigrate\nnpm run dbpush\n\n# yarn\nyarn dbmigrate\nyarn dbpush\n\n# bun\nbun dbmigrate\nbun dbpush\n```\n\n### Development Server\n\nStart the development server on `http://localhost:3000`:\n\n```bash\n# npm\nnpm run dev\n\n# yarn\nyarn dev\n\n# bun\nbun dev\n```\n\n### Production\n\nBuild the application for production:\n\n```bash\n# npm\nnpm run build\n\n# yarn\nyarn build\n\n# bun\nbun run build\n```\n\nLocally preview production build:\n\n```bash\n# npm\nnpm run preview\n\n# yarn\nyarn preview\n\n# bun\nbun preview\n```\n\nServe the production build using PM2:\n\n```bash\n# npm\nnpm run start\n\n# yarn\nyarn start\n\n# bun\nbun start\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamnanjo%2Fencrypted-chat-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamnanjo%2Fencrypted-chat-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamnanjo%2Fencrypted-chat-app/lists"}