From be43e409b2cf73303c1c08c84bee03701d2a1889 Mon Sep 17 00:00:00 2001 From: dillon ofili Date: Fri, 28 Aug 2026 11:12:11 +0100 Subject: [PATCH 1/3] feat: Add Governance page --- src/App.tsx | 12 ++---- src/components/Footer.tsx | 2 + src/pages/Governance.tsx | 77 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 8 deletions(-) create mode 100644 src/pages/Governance.tsx diff --git a/src/App.tsx b/src/App.tsx index 2464b54..67a89e5 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -33,6 +33,7 @@ const Grants = lazy(() => import('./pages/Grants')); const CaseStudies = lazy(() => import('./pages/CaseStudies')); const Careers = lazy(() => import('./pages/Careers')); const About = lazy(() => import('./pages/About')); +const Governance = lazy(() => import('./pages/Governance')); const Vitals = lazy(() => import('./pages/Vitals')); const Security = lazy(() => import('./pages/Security')); const Status = lazy(() => import('./pages/Status')); @@ -130,14 +131,8 @@ export default function App() { } /> - - - - } - /> + } /> + } /> ); } + diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index ca423a4..21e0474 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -241,6 +241,7 @@ export default function Footer() { { label: 'Stellar Integration', href: '/stellar' }, { label: 'Careers', href: '/careers' }, { label: 'About', href: '/about' }, + { label: 'Governance', href: '/governance' }, { label: 'Web Vitals', href: '/vitals' }, ], }, @@ -386,3 +387,4 @@ export default function Footer() { ); } + diff --git a/src/pages/Governance.tsx b/src/pages/Governance.tsx new file mode 100644 index 0000000..ee43ca8 --- /dev/null +++ b/src/pages/Governance.tsx @@ -0,0 +1,77 @@ +import React from 'react'; +import teamData from '../data/team.json'; +import optOutData from '../data/contributors-optout.json'; +import { Link } from 'react-router-dom'; + +export default function Governance() { + const maintainerRoles = ['Founder & Protocol Architect', 'Lead Engineer', 'Cryptography Engineer']; + const maintainers = teamData.team.filter( + (member) => + maintainerRoles.includes(member.role) && + (!member.github || !optOutData.includes(member.github.replace('https://github.com/', ''))) + ); + + return ( +
+

Governance

+ +
+

Decision-Making Process

+

+ Wraith Protocol operates on a Drips-funded contributor model. Decisions are driven by community proposals, discussions, and consensus among core maintainers. Proposals are drafted on our forums and refined before moving to implementation. Anyone can propose a change, but significant protocol upgrades require rigorous review and consensus. +

+
+ +
+

Maintainer List

+

+ Our core maintainers are responsible for reviewing pull requests, ensuring code quality, and merging changes to the main branch. Maintainers have opted into this listing. +

+
+ {maintainers.map((maintainer) => ( +
+ {maintainer.name} +
+

{maintainer.name}

+

{maintainer.role}

+ {maintainer.github && ( + + GitHub + + )} +
+
+ ))} +
+
+ +
+

Wave Scoping Process

+

+ Waves represent phases of funding and development focus. The scoping process involves gathering input from contributors and institutional partners, prioritizing features based on our roadmap, and allocating the Drips funding accordingly. Detailed wave scopes are published before each development cycle begins. +

+
+ +
+

Dispute & Escalation Path

+

+ In the event of a disagreement regarding technical decisions or wave scoping, issues are escalated to a dedicated dispute resolution committee composed of senior maintainers and advisors. The goal is always to reach a consensus, but if a deadlock occurs, the Lead Protocol Architect has the final say to ensure project momentum. +

+
+ +
+

Mainnet Parameter Change Process

+

+ [Placeholder] The process for changing mainnet parameters is currently under design. It will likely involve a timelock and multi-sig authorization, transitioning towards more decentralized governance as the protocol matures. +

+
+ +
+

Get Involved

+

+ Interested in contributing or applying for funding? Check out our Grants program and see our Contributors page. +

+
+
+ ); +} From 7669600ac2bfa17c5ca676571fc610e1574f1a0b Mon Sep 17 00:00:00 2001 From: dillon ofili Date: Fri, 28 Aug 2026 11:14:38 +0100 Subject: [PATCH 2/3] fix: remove unused React import --- src/pages/Governance.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Governance.tsx b/src/pages/Governance.tsx index ee43ca8..ddf283e 100644 --- a/src/pages/Governance.tsx +++ b/src/pages/Governance.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import teamData from '../data/team.json'; import optOutData from '../data/contributors-optout.json'; import { Link } from 'react-router-dom'; @@ -75,3 +74,4 @@ export default function Governance() { ); } + From 9969608ef89108fd9bc3abad4c59d1f244fd1acb Mon Sep 17 00:00:00 2001 From: truthixify Date: Sat, 29 Aug 2026 09:35:07 +0100 Subject: [PATCH 3/3] style: format governance page files with prettier --- src/App.tsx | 19 +++++++-- src/components/Footer.tsx | 1 - src/pages/Governance.tsx | 89 ++++++++++++++++++++++++++++++--------- 3 files changed, 86 insertions(+), 23 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 67a89e5..bc3ca3d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -131,8 +131,22 @@ export default function App() { } /> - } /> - } /> + + + + } + /> + + + + } + /> ); } - diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 21e0474..125b2b9 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -387,4 +387,3 @@ export default function Footer() { ); } - diff --git a/src/pages/Governance.tsx b/src/pages/Governance.tsx index ddf283e..c6cbf2d 100644 --- a/src/pages/Governance.tsx +++ b/src/pages/Governance.tsx @@ -3,38 +3,62 @@ import optOutData from '../data/contributors-optout.json'; import { Link } from 'react-router-dom'; export default function Governance() { - const maintainerRoles = ['Founder & Protocol Architect', 'Lead Engineer', 'Cryptography Engineer']; + const maintainerRoles = [ + 'Founder & Protocol Architect', + 'Lead Engineer', + 'Cryptography Engineer', + ]; const maintainers = teamData.team.filter( - (member) => + (member) => maintainerRoles.includes(member.role) && - (!member.github || !optOutData.includes(member.github.replace('https://github.com/', ''))) + (!member.github || !optOutData.includes(member.github.replace('https://github.com/', ''))), ); return (

Governance

- +
-

Decision-Making Process

+

+ Decision-Making Process +

- Wraith Protocol operates on a Drips-funded contributor model. Decisions are driven by community proposals, discussions, and consensus among core maintainers. Proposals are drafted on our forums and refined before moving to implementation. Anyone can propose a change, but significant protocol upgrades require rigorous review and consensus. + Wraith Protocol operates on a Drips-funded contributor model. Decisions are driven by + community proposals, discussions, and consensus among core maintainers. Proposals are + drafted on our forums and refined before moving to implementation. Anyone can propose a + change, but significant protocol upgrades require rigorous review and consensus.

-

Maintainer List

+

+ Maintainer List +

- Our core maintainers are responsible for reviewing pull requests, ensuring code quality, and merging changes to the main branch. Maintainers have opted into this listing. + Our core maintainers are responsible for reviewing pull requests, ensuring code quality, + and merging changes to the main branch. Maintainers have opted into this listing.

{maintainers.map((maintainer) => ( -
- {maintainer.name} +
+ {maintainer.name}

{maintainer.name}

{maintainer.role}

{maintainer.github && ( - + GitHub )} @@ -45,33 +69,60 @@ export default function Governance() {
-

Wave Scoping Process

+

+ Wave Scoping Process +

- Waves represent phases of funding and development focus. The scoping process involves gathering input from contributors and institutional partners, prioritizing features based on our roadmap, and allocating the Drips funding accordingly. Detailed wave scopes are published before each development cycle begins. + Waves represent phases of funding and development focus. The scoping process involves + gathering input from contributors and institutional partners, prioritizing features based + on our roadmap, and allocating the Drips funding accordingly. Detailed wave scopes are + published before each development cycle begins.

-

Dispute & Escalation Path

+

+ Dispute & Escalation Path +

- In the event of a disagreement regarding technical decisions or wave scoping, issues are escalated to a dedicated dispute resolution committee composed of senior maintainers and advisors. The goal is always to reach a consensus, but if a deadlock occurs, the Lead Protocol Architect has the final say to ensure project momentum. + In the event of a disagreement regarding technical decisions or wave scoping, issues are + escalated to a dedicated dispute resolution committee composed of senior maintainers and + advisors. The goal is always to reach a consensus, but if a deadlock occurs, the Lead + Protocol Architect has the final say to ensure project momentum.

-

Mainnet Parameter Change Process

+

+ Mainnet Parameter Change Process +

- [Placeholder] The process for changing mainnet parameters is currently under design. It will likely involve a timelock and multi-sig authorization, transitioning towards more decentralized governance as the protocol matures. + [Placeholder] The process for changing mainnet parameters is currently under design. It + will likely involve a timelock and multi-sig authorization, transitioning towards more + decentralized governance as the protocol matures.

Get Involved

- Interested in contributing or applying for funding? Check out our Grants program and see our Contributors page. + Interested in contributing or applying for funding? Check out our{' '} + + Grants + {' '} + program and see our{' '} + + Contributors + {' '} + page.

); } -