Skip to content

Commit 53ea006

Browse files
committed
Initial import
Made-with: Cursor
0 parents  commit 53ea006

95 files changed

Lines changed: 5382 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
name: Bug report
3+
about: Report a bug in a whyEXT extension or tooling
4+
title: "[BUG] "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## Bug description
10+
11+
## Steps to reproduce
12+
13+
1.
14+
2.
15+
3.
16+
17+
## Expected behavior
18+
19+
## Actual behavior
20+
21+
## Affected extension
22+
23+
- [ ] dark-mode
24+
- [ ] Build/tooling
25+
- [ ] Other:
26+
27+
## Environment
28+
29+
- OS:
30+
- Browser:
31+
- Browser version:
32+
- Extension build target: chrome / firefox
33+
34+
## Logs / screenshots
35+
36+
```text
37+
Paste errors, console logs, or stack traces here
38+
```
39+
40+
## Additional context
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
name: Feature request
3+
about: Suggest a feature for an existing or new whyEXT extension
4+
title: "[FEATURE] "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Feature summary
10+
11+
## Problem / use case
12+
13+
## Proposed solution
14+
15+
## Alternatives considered
16+
17+
## Affected area
18+
19+
- [ ] dark-mode extension
20+
- [ ] New extension under `extensions/`
21+
- [ ] Build/developer experience
22+
- [ ] Documentation
23+
24+
## Privacy / permission considerations
25+
26+
<!-- Mention if this feature needs new host permissions or extension permissions -->
27+
28+
## Willingness to contribute
29+
30+
- [ ] I can open a PR for this
31+
- [ ] I can help test
32+
- [ ] Idea only

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
## Description
2+
3+
<!-- Explain what changed and why -->
4+
5+
## Type of Change
6+
7+
- [ ] Bug fix
8+
- [ ] New feature
9+
- [ ] Breaking change
10+
- [ ] Documentation update
11+
- [ ] Refactor
12+
- [ ] CI/build improvement
13+
14+
## Related Issue
15+
16+
Closes #
17+
18+
## Extension(s) affected
19+
20+
- [ ] `dark-mode`
21+
- [ ] New extension
22+
- [ ] Root build/tooling
23+
- [ ] Documentation only
24+
25+
## Permission impact
26+
27+
- [ ] No permission changes
28+
- [ ] Permissions changed (explain below)
29+
30+
<!-- If permissions changed, list exactly what changed in manifest and why -->
31+
32+
## Testing performed
33+
34+
- [ ] Built extension locally (`npm run build`)
35+
- [ ] Tested on Chrome/Edge/Brave
36+
- [ ] Tested on Firefox
37+
- [ ] Verified popup/options/background behavior
38+
39+
## Checklist
40+
41+
- [ ] I read `CONTRIBUTING.md`
42+
- [ ] I updated docs for user-facing changes
43+
- [ ] I kept scope focused
44+
- [ ] I considered privacy/security impact

.github/RELEASE_NOTES_TEMPLATE.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# whyEXT vX.Y.Z
2+
3+
**Release date:** YYYY-MM-DD
4+
5+
## Highlights
6+
7+
- One or two bullets describing the most important changes.
8+
9+
## Extension updates
10+
11+
- `dark-mode`: ...
12+
- `<other-extension>`: ...
13+
14+
## Tooling and docs
15+
16+
- ...
17+
18+
## Security / privacy notes
19+
20+
- ... (or "None.")
21+
22+
## Upgrade notes
23+
24+
- Any migration steps, if needed.
25+
- Unpacked install paths or manifest changes.

.github/REPOSITORY_METADATA.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# GitHub repository metadata (manual)
2+
3+
This file is a maintainer cheat sheet for repository settings.
4+
5+
## About box
6+
7+
**Description**:
8+
9+
> Local-first, privacy-first monorepo for focused browser extensions.
10+
> Build once, ship per extension for Chrome and Firefox.
11+
12+
**Website**:
13+
14+
`https://github.com/byrdltd/whyEXT#readme`
15+
16+
**Suggested topics**:
17+
18+
`browser-extension` `chrome-extension` `firefox-extension` `manifest-v3`
19+
`webextensions` `typescript` `opensource` `privacy` `productivity`
20+
21+
## Social preview
22+
23+
Upload a project image via:
24+
25+
Repository Settings -> General -> Social preview

.github/workflows/build.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Build Extensions
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
pull_request:
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Setup Node
17+
uses: actions/setup-node@v4
18+
with:
19+
node-version: "20"
20+
cache: "npm"
21+
22+
- name: Install dependencies
23+
run: npm ci
24+
25+
- name: Build all extensions
26+
run: npm run build

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules/
2+
dist/
3+
extensions/*/dist/
4+
chrome-extension-store/screenshots/

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project follows [Semantic Versioning](https://semver.org/).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
12+
- Monorepo-friendly extension layout under `extensions/`.
13+
- Generic build script supporting `<extension-name> <target>`.
14+
- Initial `dark-mode` extension for Chrome and Firefox.
15+
- Root roadmap and changelog for public progress tracking.
16+
- GitHub Actions workflow to validate builds on pushes and pull requests.
17+
- Open-source project docs: `LICENSE`, `CONTRIBUTING`, `SECURITY`, `CODE_OF_CONDUCT`, and `DISCLAIMER`.
18+
- GitHub collaboration templates for issues, pull requests, releases, and repo metadata.
19+
- Shared helper package scaffold added under `packages/shared` with unit tests.
20+
- New extension scaffold flow added with `extensions/_template` and `npm run scaffold:extension`.
21+
- Release readiness checklist added for per-extension publishing and store policy checks.
22+
- Automated test pipeline expanded with unit tests and build smoke checks.
23+
24+
### Changed
25+
26+
- Shifted product direction to simple utility extensions, starting with `dark-mode`.

CODE_OF_CONDUCT.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and maintainers pledge to make participation in
6+
our community a harassment-free experience for everyone, regardless of age,
7+
body size, visible or invisible disability, ethnicity, sex characteristics,
8+
gender identity and expression, level of experience, education, socio-economic
9+
status, nationality, personal appearance, race, caste, color, religion, or
10+
sexual identity and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment include:
18+
19+
- Demonstrating empathy and kindness toward others
20+
- Giving and gracefully accepting constructive feedback
21+
- Taking responsibility and learning from mistakes
22+
- Focusing on what is best for the community
23+
- Communicating respectfully and professionally
24+
25+
Examples of unacceptable behavior include:
26+
27+
- Sexualized language or imagery, and sexual attention or advances
28+
- Trolling, insulting, or derogatory comments
29+
- Public or private harassment
30+
- Publishing others' private information without permission
31+
- Any behavior that can reasonably be considered inappropriate in a professional setting
32+
33+
## Scope
34+
35+
This Code of Conduct applies in all project spaces, including issues, pull
36+
requests, code review discussions, and project communication channels.
37+
38+
## Enforcement
39+
40+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
41+
reported by opening an issue with the `code-of-conduct` label.
42+
43+
Project maintainers are responsible for clarifying and enforcing standards and
44+
may take corrective action for unacceptable behavior.
45+
46+
## Attribution
47+
48+
This Code of Conduct is adapted from the
49+
[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1:
50+
<https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.

CONTRIBUTING.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Contributing to whyEXT
2+
3+
Thanks for your interest in contributing.
4+
5+
## Code of Conduct
6+
7+
Please follow our [Code of Conduct](CODE_OF_CONDUCT.md).
8+
9+
## Scope of contributions
10+
11+
whyEXT is a monorepo for multiple browser extensions. Contributions are welcome
12+
for:
13+
14+
- New extensions under `extensions/<name>/`
15+
- Improvements to existing extensions
16+
- Build tooling, DX, and documentation
17+
- Testing and release workflow improvements
18+
19+
## Repository layout
20+
21+
- `extensions/<extension-name>/src`: extension source files
22+
- `extensions/<extension-name>/dist`: generated build artifacts (ignored)
23+
- `scripts/build.js`: per-extension build utility
24+
25+
## Development setup
26+
27+
```bash
28+
git clone https://github.com/byrdltd/whyEXT.git
29+
cd whyEXT
30+
npm install
31+
```
32+
33+
## Build and local testing
34+
35+
```bash
36+
# Build all extensions
37+
npm run build
38+
39+
# Run type checking
40+
npm run typecheck
41+
42+
# Run unit + build smoke tests
43+
npm run test
44+
45+
# Build one extension for both browsers
46+
npm run build:dark-mode
47+
```
48+
49+
Then load unpacked:
50+
51+
- Chrome/Edge/Brave: `chrome://extensions` -> Load unpacked -> `extensions/<name>/dist/chrome`
52+
- Firefox: `about:debugging#/runtime/this-firefox` -> Load Temporary Add-on -> `extensions/<name>/dist/firefox/manifest.json`
53+
54+
## Adding a new extension
55+
56+
1. Create `extensions/<new-name>/src/`
57+
2. Add:
58+
- `manifest.base.json`
59+
- `manifest.chrome.json`
60+
- `manifest.firefox.json`
61+
- source files (`popup`, `background`, `options`, etc.)
62+
3. Add scripts in root `package.json`:
63+
- `build:<new-name>:chrome`
64+
- `build:<new-name>:firefox`
65+
- `build:<new-name>`
66+
4. Update `README.md` with installation instructions
67+
5. Optionally scaffold from template:
68+
```bash
69+
npm run scaffold:extension -- <new-name>
70+
```
71+
72+
## Pull request guidelines
73+
74+
- Keep PRs focused and small when possible
75+
- Explain permission changes and why they are needed
76+
- Update docs for user-visible behavior changes
77+
- Run `npm run build` before opening PR
78+
- Use clear commit messages that explain "why"
79+
80+
## Security reporting
81+
82+
Do not open public issues for security vulnerabilities. Use
83+
[GitHub Security Advisories](https://github.com/byrdltd/whyEXT/security/advisories/new)
84+
and review [SECURITY.md](SECURITY.md).
85+
86+
## License
87+
88+
By contributing, you agree your contributions are licensed under [MIT](LICENSE).

0 commit comments

Comments
 (0)