{"id":21251515,"url":"https://github.com/ra-jeev/vnotes","last_synced_at":"2025-10-07T17:21:46.882Z","repository":{"id":260754420,"uuid":"882193957","full_name":"ra-jeev/vnotes","owner":"ra-jeev","description":"A Voice Notes App with auto transcriptions and optional post processing.","archived":false,"fork":false,"pushed_at":"2024-11-11T19:36:35.000Z","size":3230,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-27T04:55:47.618Z","etag":null,"topics":["cloudflare-d1","cloudflare-workers","nuxt","nuxtui","workers-ai"],"latest_commit_sha":null,"homepage":"https://vnotes.rajeevs.workers.dev","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ra-jeev.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}},"created_at":"2024-11-02T06:05:40.000Z","updated_at":"2025-07-21T10:57:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"afb57139-7c14-4017-bccc-49018f750f77","html_url":"https://github.com/ra-jeev/vnotes","commit_stats":null,"previous_names":["ra-jeev/vnotes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ra-jeev/vnotes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fvnotes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fvnotes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fvnotes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fvnotes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ra-jeev","download_url":"https://codeload.github.com/ra-jeev/vnotes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fvnotes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278811887,"owners_count":26050191,"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-07T02:00:06.786Z","response_time":59,"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":["cloudflare-d1","cloudflare-workers","nuxt","nuxtui","workers-ai"],"created_at":"2024-11-21T03:42:28.449Z","updated_at":"2025-10-07T17:21:46.847Z","avatar_url":"https://github.com/ra-jeev.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VNotes\n\nA serverless voice notes application built with Nuxt 3, Cloudflare Workers, Workers AI, D1 Database, and R2 Storage. This app allows users to record voice notes, transcribe them using AI, store them in a database, and manage them through a simple, intuitive interface.\n\nLive demo: \u003chttps://vnotes.rajeevs.workers.dev\u003e\n\n![VNotes Home Page](.github/screenshots/vnotes-home.png)\n\n![VNotes Note Creation Page](.github/screenshots/vnotes-create.png)\n\n## Features\n\n- Record Voice Notes: Record audio directly from the app (supports multiple recordings per note).\n- Speech-to-Text Transcription: Automatically transcribe recordings into text using AI models.\n- Post-Processing: Optionally correct and refine transcriptions for better accuracy and clarity.\n- Notes Display: View and manage saved notes with playback for each audio recording.\n- Cloudflare Integration: Utilizes Cloudflare’s serverless environment (Workers, Workers AI, D1 Database, and R2 Storage) for scalability and low-latency performance.\n\n## Technologies Used\n\n- Nuxt 3: Modern Vue.js framework for building the frontend.\n- Nuxt UI: For creating a good looking and professional frontend\n- Cloudflare Workers: Serverless compute platform for handling backend operations.\n- D1 Database: Cloudflare’s serverless SQL database for storing notes.\n- R2 Storage: Cloudflare's object storage solution for storing audio files.\n- Workers AI: Integration with Cloudflare Workers AI for transcription and post-processing.\n\n## Setup Instructions\n\n### Prerequisites\n\n- Node.js (v18 or later): Required for development and building the project.\n- Cloudflare Account: You'll need a Cloudflare account to configure Workers AI, D1, and R2 storage, and to deploy the project.\nWrangler CLI: The tool used for deploying Cloudflare Workers.\n\n### Installation\n\nClone the repository and install dependencies:\n\n```bash\npnpm install # or npm/yarn install\n```\n\n### Update the `wrangler.toml` file\n\nUpdate the `wrangler.toml` file with the correct `DB_NAME`, `DB_ID` and `BUCKET_NAME`.\n\nYou can create the D1 database by running:\n\n```bash\nnpx wrangler d1 create \u003cDB_NAME\u003e\n```\n\nAnd, create an R2 bucket by running:\n\n```bash\nnpx wrangler r2 bucket create \u003cBUCKET_NAME\u003e\n```\n\n### Create the notes table\n\nThere is already a migration created in the projects root directory. Apply it to create the notes table.\n\n```bash\nnpx wrangler d1 migrations apply \u003cDB_NAME\u003e\n```\n\n### Start the local development server\n\n```bash\npnpm run dev # or npm/yarn run dev\n```\n\nThe app will be available at \u003chttp://localhost:3000\u003e.\n\n## Deployment\n\nTo deploy the app to Cloudflare Workers (uses the Workers Module Format Syntax), run the following command:\n\n```bash\npnpm run deploy # or nom/yarn run deploy\n```\n\n## How It Works\n\n- Recording Notes: Users can record audio notes directly from the app. The audio file(s) is/are saved to R2 storage and a note entry is created in the D1 database.\n- Transcription: After the audio is recorded, the transcription is automatically generated using an AI model (Whisper).\n- Post-Processing: Users can enable optional post-processing to correct and refine the transcription using another AI model (Llama-3.1).\n- Displaying Notes: All notes are displayed on the main page, where users can listen to the audio and view the transcription.\n\n![VNotes Settings Page](.github/screenshots/vnotes-settings.png)\n\n## Contributing\n\nContributions are welcome! If you find any issues or want to add new features, feel free to fork the repo, create a branch, and submit a pull request.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fra-jeev%2Fvnotes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fra-jeev%2Fvnotes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fra-jeev%2Fvnotes/lists"}