Skip to content

Commit c2cf65e

Browse files
Merge branch 'master' into Fix-Warnings
2 parents e7f6fb5 + 1c61800 commit c2cf65e

8 files changed

Lines changed: 783 additions & 52 deletions

File tree

src/collections/events/2025/kubecon-na-2025/index.mdx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,25 @@ Meshery, an open-source cloud-native manager, addresses this by leveraging human
3838
<Button $secondary title="See Details" $url="https://kccncna2025.sched.com/event/27d5F/project-lightning-talk-beyond-yaml-visualising-kubernetes-ontologies-with-meshery-yash-sharma-maintainer?iframe=no&w=100%&sidebar=yes&bg=no" $external={ true } />
3939
</div>
4040

41+
### Session: "Do You Even Merge?" - Welcome To Maintainers Life, Please Bring Snacks and Boundaries
42+
43+
<p>
44+
Open Source maintainers are often seen as gatekeepers of progress, expected to fix bugs, review PRs, design features, answer questions, and keep the community happy. But behind that façade is often an unexpected reality, especially in high-velocity CNCF projects.
45+
46+
In this talk, we will share what it’s like to maintain a CNCF Graduated project, not just the technical side, but the human side: how we keep the project growing, prioritize responsibly, and how governance structures like SIGs help scale responsibilities. You’ll hear stories, lessons, and hard truths that rarely make it into blog posts.
47+
48+
The more successful a project becomes, the harder it gets to sustain, and that’s something we don’t acknowledge enough. If you’ve ever wondered why your issue didn’t get a response, why a feature was declined, or what “being supportive” really looks like in open source, this talk will help you understand the maintainer’s side and maybe rethink your own role in the ecosystem to support them.
49+
</p>
50+
51+
<div class="flex-row" style="margin-bottom: 2rem;">
52+
<p>
53+
Date: November 12, 2025<br />
54+
Time: 11:00am - 11:30am EST
55+
</p>
56+
57+
<Button $secondary title="See Details" $url="https://kccncna2025.sched.com/event/27FYt" $external={ true } />
58+
</div>
59+
4160
### Session: 🚨 Contribfest: Meshery Contribfest: Dive Deep Into Extending Cloud Native Management
4261

4362
<p>

src/components/SistentNavigation/content.js

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -95,29 +95,33 @@ export const content = [
9595
{ id: 66, link: "/projects/sistent/components/select/guidance", text: "Select" },
9696
{ id: 67, link: "/projects/sistent/components/select/code", text: "Select" },
9797

98-
{ id: 68, link: "/projects/sistent/components/switch", text: "Switch" },
99-
{ id: 69, link: "/projects/sistent/components/switch/guidance", text: "Switch" },
100-
{ id: 70, link: "/projects/sistent/components/switch/code", text: "Switch" },
98+
{ id: 68, link: "/projects/sistent/components/stepper", text: "Stepper" },
99+
{ id: 69, link: "/projects/sistent/components/stepper/guidance", text: "Stepper" },
100+
{ id: 70, link: "/projects/sistent/components/stepper/code", text: "Stepper" },
101101

102-
{ id: 71, link: "/projects/sistent/components/tabs", text: "Tabs" },
103-
{ id: 72, link: "/projects/sistent/components/tabs/guidance", text: "Tabs" },
104-
{ id: 73, link: "/projects/sistent/components/tabs/code", text: "Tabs" },
102+
{ id: 71, link: "/projects/sistent/components/switch", text: "Switch" },
103+
{ id: 72, link: "/projects/sistent/components/switch/guidance", text: "Switch" },
104+
{ id: 73, link: "/projects/sistent/components/switch/code", text: "Switch" },
105105

106-
{ id: 74, link: "/projects/sistent/components/text-field", text: "Text Field" },
107-
{ id: 75, link: "/projects/sistent/components/text-field/guidance", text: "Text Field" },
108-
{ id: 76, link: "/projects/sistent/components/text-field/code", text: "Text Field" },
106+
{ id: 74, link: "/projects/sistent/components/tabs", text: "Tabs" },
107+
{ id: 75, link: "/projects/sistent/components/tabs/guidance", text: "Tabs" },
108+
{ id: 76, link: "/projects/sistent/components/tabs/code", text: "Tabs" },
109109

110-
{ id: 77, link: "/projects/sistent/components/text-input", text: "Text Input" },
111-
{ id: 78, link: "/projects/sistent/components/text-input/guidance", text: "Text Input" },
112-
{ id: 79, link: "/projects/sistent/components/text-input/code", text: "Text Input" },
110+
{ id: 77, link: "/projects/sistent/components/text-field", text: "Text Field" },
111+
{ id: 78, link: "/projects/sistent/components/text-field/guidance", text: "Text Field" },
112+
{ id: 79, link: "/projects/sistent/components/text-field/code", text: "Text Field" },
113113

114-
{ id: 80, link: "/projects/sistent/components/toolbar", text: "Toolbar" },
115-
{ id: 81, link: "/projects/sistent/components/toolbar/guidance", text: "Toolbar" },
116-
{ id: 82, link: "/projects/sistent/components/toolbar/code", text: "Toolbar" },
114+
{ id: 80, link: "/projects/sistent/components/text-input", text: "Text Input" },
115+
{ id: 81, link: "/projects/sistent/components/text-input/guidance", text: "Text Input" },
116+
{ id: 82, link: "/projects/sistent/components/text-input/code", text: "Text Input" },
117117

118-
{ id: 83, link: "/projects/sistent/components/tooltip", text: "Tooltip" },
119-
{ id: 84, link: "/projects/sistent/components/tooltip/guidance", text: "Tooltip" },
120-
{ id: 85, link: "/projects/sistent/components/tooltip/code", text: "Tooltip" },
118+
{ id: 83, link: "/projects/sistent/components/toolbar", text: "Toolbar" },
119+
{ id: 84, link: "/projects/sistent/components/toolbar/guidance", text: "Toolbar" },
120+
{ id: 85, link: "/projects/sistent/components/toolbar/code", text: "Toolbar" },
121+
122+
{ id: 86, link: "/projects/sistent/components/tooltip", text: "Tooltip" },
123+
{ id: 87, link: "/projects/sistent/components/tooltip/guidance", text: "Tooltip" },
124+
{ id: 88, link: "/projects/sistent/components/tooltip/code", text: "Tooltip" },
121125

122126

123127

src/sections/Company/Brand/index.js

Lines changed: 67 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,12 @@ const getDimensions = (ele) => {
4747

4848
// Functions to make scroll with speed control
4949
// Element to move, element or px from, element or px to, time in ms to animate
50-
const scrollTo = (element, duration = 2000) => {
50+
const scrollTo = (element, sectionId, duration = 2000) => {
51+
// Update URL hash
52+
if (sectionId) {
53+
window.history.pushState(null, null, `#${sectionId}`);
54+
}
55+
5156
let e = document.documentElement;
5257
if (e.scrollTop === 0) {
5358
let t = e.scrollTop;
@@ -127,6 +132,36 @@ const Brand = () => {
127132
{ section: "SocialBackgrounds", ref: SocialBackgroundsRef }
128133
];
129134

135+
const sectionIdMap = {
136+
"layer5": layer5Ref,
137+
"social-backgrounds": SocialBackgroundsRef,
138+
"meshery": mesheryRef,
139+
"meshsync": meshsyncRef,
140+
"meshery-operator": mesheryOperatorRef,
141+
"image-hub": imageHubRef,
142+
"smp": smpRef,
143+
"meshmark": meshmarkRef,
144+
"service-mesh-patterns": servicemeshpatternsRef,
145+
"nighthawk": nightHawkRef,
146+
"meshmate": meshmateRef,
147+
"meshmaster": meshMasterRef,
148+
"kanvas": kanvasRef,
149+
"catalog": CatalogRef,
150+
"five": stickfiguresRef
151+
};
152+
153+
// Handle initial hash navigation on page load
154+
useEffect(() => {
155+
if (typeof window !== "undefined") {
156+
const hash = window.location.hash.substring(1);
157+
if (hash && sectionIdMap[hash]) {
158+
setTimeout(() => {
159+
scrollTo(sectionIdMap[hash].current, hash);
160+
}, 100);
161+
}
162+
}
163+
}, []);
164+
130165
useEffect(() => {
131166
const handleScroll = () => {
132167
const { height: headerHeight } = getDimensions(headerRef.current);
@@ -173,52 +208,52 @@ const Brand = () => {
173208
</div>
174209
<Row className="brand-row">
175210
<Col $xs={12} $md={9} className="brand-col">
176-
<div className="section">
211+
<div className="section" id="brand-guide">
177212
<BrandGuide />
178213
</div>
179-
<div className="section" ref={layer5Ref}>
214+
<div className="section" id="layer5" ref={layer5Ref}>
180215
<Layer5Brand />
181216
</div>
182-
<div className="section" ref={SocialBackgroundsRef}>
217+
<div className="section" id="social-backgrounds" ref={SocialBackgroundsRef}>
183218
<SocialBackgrounds />
184219
</div>
185-
<div className="section" ref={mesheryRef}>
220+
<div className="section" id="meshery" ref={mesheryRef}>
186221
<MesheryBrand />
187222
</div>
188-
<div className="section" ref={meshsyncRef}>
223+
<div className="section" id="meshsync" ref={meshsyncRef}>
189224
<MeshSyncBrand />
190225
</div>
191-
<div className="section" ref={mesheryOperatorRef}>
226+
<div className="section" id="meshery-operator" ref={mesheryOperatorRef}>
192227
<MesheryOperatorBrand />
193228
</div>
194-
<div className="section" ref={imageHubRef}>
229+
<div className="section" id="image-hub" ref={imageHubRef}>
195230
<ImageHubBrand />
196231
</div>
197-
<div className="section" ref={smpRef}>
232+
<div className="section" id="smp" ref={smpRef}>
198233
<SMPBrand />
199234
</div>
200-
<div className="section" ref={meshmarkRef}>
235+
<div className="section" id="meshmark" ref={meshmarkRef}>
201236
<MeshMarkBrand />
202237
</div>
203-
<div className="section" ref={servicemeshpatternsRef}>
238+
<div className="section" id="service-mesh-patterns" ref={servicemeshpatternsRef}>
204239
<ServiceMeshPatterns />
205240
</div>
206-
<div className="section" ref={nightHawkRef}>
241+
<div className="section" id="nighthawk" ref={nightHawkRef}>
207242
<NightHawk />
208243
</div>
209-
<div className="section" ref={meshmateRef}>
244+
<div className="section" id="meshmate" ref={meshmateRef}>
210245
<CommunityBrand />
211246
</div>
212-
<div className="section" ref={meshMasterRef}>
247+
<div className="section" id="meshmaster" ref={meshMasterRef}>
213248
<MeshMasterBrand />
214249
</div>
215-
<div className="section" ref={kanvasRef}>
250+
<div className="section" id="kanvas" ref={kanvasRef}>
216251
<KanvasBrand />
217252
</div>
218-
<div className="section" ref={CatalogRef}>
253+
<div className="section" id="catalog" ref={CatalogRef}>
219254
<Catalog />
220255
</div>
221-
<div className="section" ref={stickfiguresRef}>
256+
<div className="section" id="five" ref={stickfiguresRef}>
222257
<StickFigures />
223258
</div>
224259
</Col>
@@ -229,7 +264,7 @@ const Brand = () => {
229264
visibleSection === "Layer5" ? "selected" : ""
230265
}`}
231266
onClick={() => {
232-
scrollTo(layer5Ref.current);
267+
scrollTo(layer5Ref.current, "layer5");
233268
}}
234269
>
235270
<span>Layer5</span>
@@ -239,7 +274,7 @@ const Brand = () => {
239274
visibleSection === "SocialBackgrounds" ? "selected" : ""
240275
}`}
241276
onClick={() => {
242-
scrollTo(SocialBackgroundsRef.current);
277+
scrollTo(SocialBackgroundsRef.current, "social-backgrounds");
243278
}}
244279
>
245280
<span> Layer5 Social Backgrounds </span>
@@ -249,7 +284,7 @@ const Brand = () => {
249284
visibleSection === "Meshery" ? "selected" : ""
250285
}`}
251286
onClick={() => {
252-
scrollTo(mesheryRef.current);
287+
scrollTo(mesheryRef.current, "meshery");
253288
}}
254289
>
255290
<span>Meshery</span>
@@ -259,7 +294,7 @@ const Brand = () => {
259294
visibleSection === "MeshSync" ? "selected" : ""
260295
}`}
261296
onClick={() => {
262-
scrollTo(meshsyncRef.current);
297+
scrollTo(meshsyncRef.current, "meshsync");
263298
}}
264299
>
265300
<span>MeshSync</span>
@@ -269,7 +304,7 @@ const Brand = () => {
269304
visibleSection === "MesheryOperator" ? "selected" : ""
270305
}`}
271306
onClick={() => {
272-
scrollTo(mesheryOperatorRef.current);
307+
scrollTo(mesheryOperatorRef.current, "meshery-operator");
273308
}}
274309
>
275310
<span>Meshery Operator</span>
@@ -279,7 +314,7 @@ const Brand = () => {
279314
visibleSection === "ImageHub" ? "selected" : ""
280315
}`}
281316
onClick={() => {
282-
scrollTo(imageHubRef.current);
317+
scrollTo(imageHubRef.current, "image-hub");
283318
}}
284319
>
285320
<span>Image Hub</span>
@@ -289,7 +324,7 @@ const Brand = () => {
289324
visibleSection === "SMP" ? "selected" : ""
290325
}`}
291326
onClick={() => {
292-
scrollTo(smpRef.current);
327+
scrollTo(smpRef.current, "smp");
293328
}}
294329
>
295330
<span>Cloud Native Performance</span>
@@ -299,7 +334,7 @@ const Brand = () => {
299334
visibleSection === "MeshMark" ? "selected" : ""
300335
}`}
301336
onClick={() => {
302-
scrollTo(meshmarkRef.current);
337+
scrollTo(meshmarkRef.current, "meshmark");
303338
}}
304339
>
305340
<span>MeshMark</span>
@@ -309,7 +344,7 @@ const Brand = () => {
309344
visibleSection === "ServiceMeshPatterns" ? "selected" : ""
310345
}`}
311346
onClick={() => {
312-
scrollTo(servicemeshpatternsRef.current);
347+
scrollTo(servicemeshpatternsRef.current, "service-mesh-patterns");
313348
}}
314349
>
315350
<span>Cloud Native Patterns</span>
@@ -319,7 +354,7 @@ const Brand = () => {
319354
visibleSection === "NightHawk" ? "selected" : ""
320355
}`}
321356
onClick={() => {
322-
scrollTo(nightHawkRef.current);
357+
scrollTo(nightHawkRef.current, "nighthawk");
323358
}}
324359
>
325360
<span> NightHawk </span>
@@ -329,7 +364,7 @@ const Brand = () => {
329364
visibleSection === "MeshMate" ? "selected" : ""
330365
}`}
331366
onClick={() => {
332-
scrollTo(meshmateRef.current);
367+
scrollTo(meshmateRef.current, "meshmate");
333368
}}
334369
>
335370
<span>MeshMate</span>
@@ -339,7 +374,7 @@ const Brand = () => {
339374
visibleSection === "MeshMaster" ? "selected" : ""
340375
}`}
341376
onClick={() => {
342-
scrollTo(meshMasterRef.current);
377+
scrollTo(meshMasterRef.current, "meshmaster");
343378
}}
344379
>
345380
<span> MeshMaster </span>
@@ -349,7 +384,7 @@ const Brand = () => {
349384
visibleSection === "Kanvas" ? "selected" : ""
350385
}`}
351386
onClick={() => {
352-
scrollTo(kanvasRef.current);
387+
scrollTo(kanvasRef.current, "kanvas");
353388
}}
354389
>
355390
<span> Kanvas </span>
@@ -359,7 +394,7 @@ const Brand = () => {
359394
visibleSection === "Catalog" ? "selected" : ""
360395
}`}
361396
onClick={() => {
362-
scrollTo(CatalogRef.current);
397+
scrollTo(CatalogRef.current, "catalog");
363398
}}
364399
>
365400
<span> Catalog </span>
@@ -369,7 +404,7 @@ const Brand = () => {
369404
visibleSection === "Five" ? "selected" : ""
370405
}`}
371406
onClick={() => {
372-
scrollTo(stickfiguresRef.current);
407+
scrollTo(stickfiguresRef.current, "five");
373408
}}
374409
>
375410
<span> Five, our mascot </span>

src/sections/Projects/Project-grid/index.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ const ProjectPage = () => {
4444
<h5>Sistent</h5>
4545
</div>
4646
</Link>
47-
{/*TODD - The URL needs to be changed */}
48-
<Link to="https://cloud.layer5.io/academy" className="project__card academy">
47+
<Link to="/learn/academy" className="project__card academy">
4948
<div className="project__card-container project__card-container_one">
5049
<img src={academy} alt="Academy" />
5150
<h5>Academy</h5>

src/sections/Projects/Sistent/components/content.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,13 @@ const componentsData = [
223223
url: "/projects/sistent/components/iconbutton",
224224
src: "/iconbutton",
225225
},
226+
{
227+
id: 30,
228+
name: "Stepper",
229+
description: "Stepper provides a way to display progress through a sequence of logical steps.",
230+
url: "/projects/sistent/components/stepper",
231+
src: "/stepper",
232+
},
226233
];
227234

228235
module.exports = { componentsData };

0 commit comments

Comments
 (0)