{"id":14262501,"url":"https://github.com/trvswgnr/cextup","last_synced_at":"2025-09-08T08:31:45.255Z","repository":{"id":217707967,"uuid":"744572865","full_name":"trvswgnr/cextup","owner":"trvswgnr","description":"A tool to make Chrome extension development less painful.","archived":false,"fork":false,"pushed_at":"2025-03-31T16:31:55.000Z","size":158,"stargazers_count":50,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-09T03:02:07.602Z","etag":null,"topics":["bun","chrome","chrome-extension","cli","extension","scaffold","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/trvswgnr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["trvswgnr"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2024-01-17T15:20:03.000Z","updated_at":"2025-07-19T20:20:01.000Z","dependencies_parsed_at":"2024-01-18T00:50:50.669Z","dependency_job_id":"0ad444b0-5659-4655-a071-c9430cc4f87c","html_url":"https://github.com/trvswgnr/cextup","commit_stats":null,"previous_names":["trvswgnr/cextup"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/trvswgnr/cextup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trvswgnr%2Fcextup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trvswgnr%2Fcextup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trvswgnr%2Fcextup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trvswgnr%2Fcextup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trvswgnr","download_url":"https://codeload.github.com/trvswgnr/cextup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trvswgnr%2Fcextup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274157659,"owners_count":25232420,"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-08T02:00:09.813Z","response_time":121,"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":["bun","chrome","chrome-extension","cli","extension","scaffold","typescript"],"created_at":"2024-08-22T13:01:49.665Z","updated_at":"2025-09-08T08:31:44.988Z","avatar_url":"https://github.com/trvswgnr.png","language":"TypeScript","funding_links":["https://github.com/sponsors/trvswgnr"],"categories":["TypeScript","cli"],"sub_categories":[],"readme":"![CExtUp Banner](./gh-banner.jpg)\n\nChrome extension development can be painful. CExtUp tries to alleviate some of that pain, without doing too much. It provides a way to quickly scaffold and develop an extension. CExtUp gives you a solid foundation for your projects, including a build system, a development server, and a basic structure, but leaves the rest up to you.\n\nCExtUp uses [Bun](https://bun.sh/)—a modern JavaScript runtime, bundler, and package manager—instead of Node.js for its build system and server. It is also pre-configured to use [Vercel Serverless Edge Functions](https://vercel.com/docs/functions/edge-functions), but should work with other serverless platforms as well.\n\n## Features\n\n-   **Project Setup**: CExtUp automatically generates a new Chrome extension project with a basic structure and all the necessary files.\n-   **Bun Integration**: We use Bun for its build system and server, providing an incredibly fast and efficient development experience.\n-   **TypeScript Support**: Out-of-the-box support for TS, giving you more confidence in your code.\n-   **Edge Functions**: CExtUp is set up to use Vercel Serverless Edge Functions, providing a scalable and efficient way to handle server-side logic. This is optional and can be removed if not needed. These live in the `api/` directory.\n\n## Getting Started\n\nTo use CExtUp, run the following command:\n\n```sh\nbunx cextup\n# or\nnpx cextup\n```\n\nThis will prompt you for the name of your new extension and create a new directory with that name, containing all the necessary files for your new Chrome extension.\n\n## Project Structure\n\nThe generated project includes the following directories:\n\n-   `src/`: source files for your Chrome extension, including background scripts, content scripts, and the manifest file\n-   `types/`: TypeScript type definitions\n-   `api/`: serverless functions for your extension (if applicable)\n-   `scripts/`: scripts for building and serving your extension during development\n\nWhen you run `bun start`, the `extension/` directory will be created, containing the built extension. This directory is ignored by Git.\n\n## Development\n\nFirst, make sure you have [Bun](https://bun.sh/) installed:\n\n```sh\ncurl -fsSL https://bun.sh/install | bash\n```\n\nTo start developing your Chrome extension, navigate to the project directory and install the necessary dependencies:\n\n```sh\ncd your-extension-name\nbun i\n```\n\nThen, start the development server and watch for changes:\n\n```sh\nbun start\n```\n\nIf you want to build the extension without starting the development server, you can run:\n\n```sh\nbun ./scripts/build.ts\n```\n\nNote that while it is possible to use `vercel dev` to run the development server, it is much slower than using Bun, so we recommend using `bun start` instead.\n\n## Loading the Extension in Chrome\n\nTo load your extension in Chrome, navigate to `chrome://extensions` in your browser and click `Load unpacked`. Select the `extension` directory in your project. Note that you must have Developer Mode enabled in order to load unpacked extensions.\n\nAfter making changes to your code, you will need to reload the extension by clicking the `Update` button in `chrome://extensions`.\n\n## Contributing\n\nContributions to CExtUp are welcome! Please [create an issue](https://github.com/trvswgnr/cextup/issues) or [submit a pull request](https://github.com/trvswgnr/cextup/pulls).\n\n## License\n\nCExtUp is licensed under the MIT License. See the [`LICENSE` file](LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrvswgnr%2Fcextup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrvswgnr%2Fcextup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrvswgnr%2Fcextup/lists"}