Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 61 additions & 5 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,68 @@

The Node.js Web Team (@nodejs/web) is a team in the Node.js Project that is composed by a set of subteams. Each containing specific responsibilities and goals.

### TSC Oversight
## Relationship with the TSC

Any website change that expresses a position about a global event or group of people requires explicit
[TSC](https://github.com/nodejs/TSC/blob/main/TSC-Charter.md#section-4-responsibilities-of-the-tsc)
approval. This can be obtained by pinging `@nodejs/tsc` and receive no objections after seven days,
or by sending an email to `tsc@iojs.org` and receive at least one approval and no objections after seven days.
The Website Team operates with significant autonomy for most website decisions, but must recognize the TSC's ultimate authority on matters affecting Node.js project representation, branding, and strategic partnerships.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO it'd be more productive to keep a consensus-seeking (I guess we need to define among what group, IMO it should include Node.js Collaborators) process for all those topics, and have "The TSC serves as the final arbiter where required." for the case where consensus cannot be reached.


### Decision Authority Hierarchy

1. **Website Team Authority**

- Technical implementation details
- User interface and experience design
- Content organization and information architecture
- Day-to-day maintenance and updates

2. **TSC Authority**
- Project-wide policies and governance
- Strategic partnerships and representation
- Major structural or navigational changes
- Content that affects Node.js project positioning
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should add example here like position tech wise or something else


### Content Requiring TSC Approval

- **Statements on Sociopolitical Issues**: Any content expressing positions on political, social, cultural, or humanitarian matters
- **Commercial Relationships and Endorsements**: Any content establishing or promoting commercial partnerships, vendor preferences, or paid services related to Node.js

Website changes falling under these categories require **formal TSC endorsement** as outlined in the [TSC Charter](https://github.com/nodejs/TSC/blob/main/TSC-Charter.md#section-4-responsibilities-of-the-tsc). Valid approval consists of at least one TSC member's explicit approval with no objections from any TSC members. This endorsement may be secured through either:

- Pinging `@nodejs/tsc` OR
- Sending an email to `tsc@iojs.org`

### Handling TSC Feedback and Concerns

When TSC members express concerns about proposed changes:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO it's weird to treat feedback from TSC members as special, any project member is entitled to an opinion.


1. **Documentation Requirement**: Document all TSC feedback in the relevant issue or PR
2. **Hold Period**: Pause implementation until concerns are addressed
3. **Resolution Process**:
- Seek clarification on specific concerns
- Propose compromise solutions
- Document resolution attempts and outcomes

### Dispute Resolution Process

If disagreements arise between the Website Team and TSC regarding website changes:
Copy link
Contributor

@aduh95 aduh95 Jun 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no such thing as a disagreement between two teams, it's always a disagreement between project members. You could phrase it as "a disagreement between a majority of the Website Team and a majority of the TSC voting members", but IMO it'd be more useful to define a strategy for a disagreement between any project member.


1. **Escalation Path**:

- First attempt: Direct discussion on the PR/issue
- Second attempt: Scheduled discussion in TSC meeting
- Final resolution: Formal TSC vote if needed

2. **Implementation Requirements**:

- Changes with unresolved TSC objections must not proceed without formal TSC approval
- When in doubt about approval status, seek explicit confirmation
- Document the resolution and approval in the PR before merging

3. **Documentation Standard**:
- All significant disagreements and their resolutions must be documented
- TSC approvals should be explicit and documented in writing
- Approval pathways should be clear to all current and future contributors

## Website Teams

### Node.js Website Team (`@nodejs/nodejs-website`)

Expand Down
Loading