OWASP / OWASP/Nest

Implement Sponsors Program Support

Open
#4,259 6 comments 0 reactions 5 assignees Claimed by @Utkarsh-0304 View on GitHub
enhancement
Dominant language
Python
Stars
451
Forks
707
Avg merge
22h 59m
Merged PRs (30d)
91

Description

Community & Support: [LinkedIn Group](https://www.linkedin.com/groups/14656108/) · [Slack #project-nest](https://owasp.slack.com/archives/project-nest)

Active project leaders: Arkadii Yakovets -- [GitHub](https://github.com/arkid15r/) · [LinkedIn](https://www.linkedin.com/in/arkid15r/) · [Slack](https://owasp.slack.com/team/U060W3NKLTF); Kate Golovanova -- [GitHub](https://github.com/kasya/) · [LinkedIn](https://www.linkedin.com/in/kate-golovanova/) · [Slack](https://owasp.slack.com/team/U07PWB1JZ6Z)

[Contributing](https://github.com/owasp/nest/blob/main/CONTRIBUTING.md) · [Code of Conduct](https://github.com/owasp/nest/blob/main/CODE_OF_CONDUCT.md) · [GSoC Mentors](https://github.com/owasp/nest/blob/main/MENTORS.md)

---

**Describe the solution you'd like**

Related discussion:
[https://github.com/OWASP/Nest/discussions/3451](https://github.com/OWASP/Nest/discussions/3451)

### Overview

This issue proposes implementing the initial technical foundation for sponsor management within the Nest platform.

The goal is to provide a **simple but extensible sponsorship framework** that allows organizations and individuals to support the project while receiving appropriate visibility within the platform.

This implementation should intentionally leave **room for creativity** around how sponsorship visibility is presented, while maintaining a **clean and user-friendly experience**.

The core functionality should focus on managing sponsors and enabling future integrations.

---

## Core Requirements

### 1. Sponsor Model Support

Extend the existing owasp_sponsors model to support sponsorship records with optional entity associations.
No new table needed; extend the current model.
Support multiple sponsorship levels (e.g., Silver, Gold, Platinum).

Include a status field:

- draft
- active
- archived

Introduce optional entity fields to link a sponsor to specific OWASP entities: chapter (nullable, FK to OWASP chapters) / project (nullable, FK to OWASP projects)

Other fields (if not already present): name. website. logo. description, contact_email, created_at

Notes:

This allows a sponsor to be associated with a specific chapter or project, or remain general/global if no entity is specified.

Management of sponsor records and levels can still be handled via Django Admin.

---

### 2. Sponsors Page

Create a public page listing current sponsors (so far this is for OWASP Nest only, we can introduce per chapter/project endpoints and pages later if needed).

Proposed route:

```
/sponsors
```

Requirements:

* Display **active sponsors only**
* Sponsors should be **grouped or ordered by sponsor level**
* Each sponsor entry may include:

* logo
* organization name
* link to website
* short description (optional)

The design should remain **clean and professional**, avoiding an advertisement-heavy layout.

---

### 3. Sponsor Application Page

Create a page allowing organizations to apply to become a sponsor.

Proposed route:

```
/sponsors/apply
```

Requirements:

* Implement a **contact/application form**
* Submitting the form should create a new record in `sponsors` with:

```
status = draft
```

Suggested fields:

* organization name
* website
* contact email
* sponsorship interest / message

Final approval and activation should be handled through **Django Admin**.

---

### 4. REST API Endpoint

Provide a **REST API endpoint** exposing sponsor information.

This endpoint is intended for **external integrations**, such as:

* GitHub Actions
* automation scripts
* external dashboards

Notes:

* GraphQL in Nest is currently used for **internal interactions**, so this endpoint should be REST-based.
* The endpoint should return **active sponsors only**.

Example route:

```
/api/v0/projects/nest/sponsors
```

---

## Bonus Ideas (Creativity Encouraged)

Contributors are encouraged to propose **creative but tasteful ways** to surface sponsor visibility across the platform.

The key principle:

> Sponsorship visibility should enhance the platform without harming the user experience.

Ideas may include:

* Sponsor highlights on relevant pages
* Sponsor badges or acknowledgments
* Integration with the **OWASP Nest GitHub repository**

* e.g., automated sponsor acknowledgements in README
* GitHub Action integration using the REST API
* Sponsor mentions in analytics reports or platform summaries
* Optional sponsor spotlight sections

Avoid:

* intrusive banners
* pop-ups
* aggressive advertising

The experience should remain **clean, community-first, and professional**.

---

## Implementation Notes

* Keep the initial implementation **simple and extensible**.
* Focus on the **data model and core workflow** first.
* UI improvements and creative sponsor integrations can evolve later.

**Are you going to work on implementing this?**

- [ ] Yes
- [x] No

**Additional context**
Must make sure existing pages/workflows around OWASP mentors displayed on OWASP Nest are not affected by any potentially related changes.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.