@@ -5,10 +5,15 @@ import NavItem from './NavItem'
5
5
import Product from './Product'
6
6
import * as MenuColumn from './MenuColumn'
7
7
import useGetLastPost from 'hooks/use-get-last-post'
8
+ import { ReactComponent as IconKubernetes } from '../../images/IconKubernetes.svg'
9
+ import { ReactComponent as IconDockerSwarm } from '../../images/IconDockerSwarm.svg'
10
+ import { ReactComponent as IconApiGovernance } from '../../images/IconApiGovernance.svg'
11
+ import { ReactComponent as IconsApiMocks } from '../../images/IconsApiMocks.svg'
12
+ import { ReactComponent as IconAiGateway } from '../../images/IconAiGateway.svg'
13
+ import { ReactComponent as IconWaf } from '../../images/IconWaf.svg'
8
14
import { ReactComponent as TraefikHubIcon } from '../../images/Traefikhub.svg'
9
15
import { ReactComponent as TraefikIcon } from '../../images/Traefik-Hub.svg'
10
16
import { ReactComponent as TraefikProxyIcon } from '../../images/TraefikProxy.svg'
11
- import { ReactComponent as TraefikEnterpriseIcon } from '../../images/TraefikEnterprise.svg'
12
17
import { ReactComponent as ApiGatewayIcon } from '../../images/APIGateway.svg'
13
18
import { ReactComponent as ApiGovernanceIcon } from '../../images/APIGovernance.svg'
14
19
import { ReactComponent as ApiMockingIcon } from '../../images/APIMocking.svg'
@@ -31,6 +36,7 @@ import { ReactComponent as WafIcon } from '../../images/menu_icons_waf.svg'
31
36
import { ReactComponent as HashicorpIcon } from '../../images/menu_icons_hashicorp.svg'
32
37
import { ReactComponent as AiGatewayIcon } from '../../images/menu_icons_ai_gateway.svg'
33
38
import PostCard from './PostCard'
39
+ import NavHeader from './NavHeader'
34
40
35
41
const Wrapper = styled ( Flex ) `
36
42
display: none;
@@ -48,59 +54,85 @@ const MainNav = () => {
48
54
< Flex as = "ul" sx = { { height : '100%' , alignItems : 'center' , p : 0 , m : 0 , listStyle : 'none' } } >
49
55
{ /* Products */ }
50
56
< NavItem name = "Products" hasSubmenu position = { { marginLeft : '-15%' } } >
51
- < Grid sx = { { gridTemplateColumns : '1fr 1fr 1fr' , maxWidth : '1160px' } } >
52
- < Product
53
- title = "Application Proxy"
54
- description = "Simplify microservice discovery, routing, & load balancing."
55
- links = { [
56
- {
57
- title : 'Traefik Proxy' ,
58
- url : 'https://traefik.io/traefik/' ,
59
- external : true ,
60
- description : 'OSS Cloud-Native Application Proxy' ,
61
- icon : < TraefikProxyIcon /> ,
62
- } ,
63
- ] }
64
- bgImage = { 'https://traefik.io/images/site-nav/[email protected] ' }
65
- />
66
- < Product
67
- title = "API Gateway"
68
- description = "Enhance security & centralize control of your APIs and microservices."
69
- links = { [
70
- {
71
- title : 'Traefik Hub' ,
72
- url : 'https://traefik.io/traefik-hub-api-gateway/' ,
73
- tag : 'API Gateway' ,
74
- external : true ,
75
- description : 'Seamless Upgrade from Traefik Proxy' ,
76
- tagColor : 'rgb(177,64,245)' ,
77
- icon : < TraefikIcon /> ,
78
- } ,
79
- {
80
- title : 'Traefik Enterprise' ,
81
- url : 'https://traefik.io/traefik-enterprise/' ,
82
- external : true ,
83
- description : 'Standalone General-Purpose API Gateway' ,
84
- icon : < TraefikEnterpriseIcon /> ,
85
- } ,
86
- ] }
87
- bgImage = { 'https://traefik.io/images/site-nav/[email protected] ' }
88
- />
89
- < Product
90
- title = "API Management"
91
- description = "Simplify & accelerate API lifecycle management in Kubernetes."
92
- links = { [
93
- {
94
- title : 'Traefik Hub' ,
95
- url : 'https://traefik.io/traefik-hub/' ,
96
- external : true ,
97
- tag : 'API Management' ,
98
- description : 'Kubernetes-Native API Management' ,
99
- icon : < TraefikHubIcon /> ,
100
- } ,
101
- ] }
102
- bgImage = { 'https://traefik.io/images/site-nav/[email protected] ' }
103
- />
57
+ < Grid sx = { { gridTemplateColumns : '1fr' , maxWidth : '1160px' } } >
58
+ < NavHeader title = "Traefik Runtime Platform" />
59
+ < Grid sx = { { gridTemplateColumns : '1fr 1fr 1fr' } } >
60
+ < Product
61
+ links = { [
62
+ {
63
+ title : 'Traefik Proxy →' ,
64
+ url : 'https://traefik.io/traefik/' ,
65
+ external : true ,
66
+ description : 'OSS Cloud-Native Application Proxy' ,
67
+ icon : < TraefikProxyIcon /> ,
68
+ } ,
69
+ ] }
70
+ subLinks = { [
71
+ {
72
+ title : 'Kubernetes Ingress' ,
73
+ external : true ,
74
+ icon : < IconKubernetes /> ,
75
+ url : 'https://traefik.io/solutions/kubernetes-ingress/' ,
76
+ } ,
77
+ {
78
+ title : 'Docker Swarm Ingress' ,
79
+ external : true ,
80
+ icon : < IconDockerSwarm /> ,
81
+ url : 'https://traefik.io/solutions/docker-swarm-ingress/' ,
82
+ } ,
83
+ ] }
84
+ />
85
+ < Product
86
+ links = { [
87
+ {
88
+ title : 'Traefik API Gateway →' ,
89
+ url : 'https://traefik.io/traefik-hub-api-gateway/' ,
90
+ external : true ,
91
+ description : 'Seamless Upgrade from Traefik Proxy' ,
92
+ icon : < TraefikIcon /> ,
93
+ } ,
94
+ ] }
95
+ subLinks = { [
96
+ {
97
+ title : 'Web Application Firewall' ,
98
+ external : true ,
99
+ icon : < IconWaf /> ,
100
+ url : 'https://traefik.io/solutions/waf/' ,
101
+ } ,
102
+ {
103
+ title : 'AI Gateway' ,
104
+ external : true ,
105
+ icon : < IconAiGateway /> ,
106
+ url : 'https://traefik.io/solutions/ai-gateway/' ,
107
+ } ,
108
+ ] }
109
+ />
110
+ < Product
111
+ links = { [
112
+ {
113
+ title : 'Traefik API Management →' ,
114
+ url : 'https://traefik.io/traefik-hub/' ,
115
+ external : true ,
116
+ description : 'GitOps-Driven API Management' ,
117
+ icon : < TraefikHubIcon /> ,
118
+ } ,
119
+ ] }
120
+ subLinks = { [
121
+ {
122
+ title : 'API Governance' ,
123
+ external : true ,
124
+ icon : < IconApiGovernance /> ,
125
+ url : 'https://traefik.io/solutions/api-governance/' ,
126
+ } ,
127
+ {
128
+ title : 'API Mocking' ,
129
+ external : true ,
130
+ icon : < IconsApiMocks /> ,
131
+ url : 'https://traefik.io/solutions/api-mocking/' ,
132
+ } ,
133
+ ] }
134
+ />
135
+ </ Grid >
104
136
</ Grid >
105
137
</ NavItem >
106
138
@@ -183,7 +215,8 @@ const MainNav = () => {
183
215
title : 'Runtime API Governance' ,
184
216
url : 'https://traefik.io/solutions/api-governance/' ,
185
217
external : true ,
186
- description : 'Enforce critical runtime API policies for secure, reliable, and compliant API management.' ,
218
+ description :
219
+ 'Enforce critical runtime API policies for secure, reliable, and compliant API management.' ,
187
220
icon : < ApiGovernanceIcon /> ,
188
221
badge : 'New!' ,
189
222
} ,
@@ -264,6 +297,41 @@ const MainNav = () => {
264
297
</ Grid >
265
298
</ NavItem >
266
299
300
+ < NavItem name = "Compare" hasSubmenu >
301
+ < Grid sx = { { gridTemplateColumns : '1fr' , width : '304px' , p : '24px' } } >
302
+ < MenuColumn . Column title = "Compare Traefik Hub" >
303
+ < MenuColumn . Item
304
+ title = "vs Kong Konnect"
305
+ href = "https://traefik.io/compare/traefik-vs-kong-konnect/"
306
+ external
307
+ />
308
+ < MenuColumn . Item
309
+ title = "vs AWS API Gateway"
310
+ href = "https://traefik.io/compare/traefik-vs-aws-api-gateway/"
311
+ external
312
+ />
313
+ < MenuColumn . Item
314
+ title = "vs Azure APIM"
315
+ href = "https://traefik.io/compare/traefik-vs-azure-api-management/"
316
+ external
317
+ />
318
+ < MenuColumn . Item title = "vs NGINX" href = "https://traefik.io/compare/traefik-vs-nginx/" external />
319
+ < MenuColumn . Item
320
+ title = "vs Solo.io Gloo Gateway"
321
+ href = "https://traefik.io/compare/traefik-vs-nginx/"
322
+ external
323
+ />
324
+ < MenuColumn . Item title = "vs Tyk" href = "https://traefik.io/compare/compare/traefik-vs-tyk" external />
325
+ < MenuColumn . Item title = "vs Gravitee" href = "https://traefik.io/compare/traefik-vs-gravitee/" external />
326
+ < MenuColumn . Item
327
+ title = "vs Envoy Gateway"
328
+ href = "https://traefik.io/compare/traefik-vs-envoy-gateway/"
329
+ external
330
+ />
331
+ </ MenuColumn . Column >
332
+ </ Grid >
333
+ </ NavItem >
334
+
267
335
{ /* Pricing */ }
268
336
< NavItem name = "Pricing" url = "https://traefik.io/pricing/" />
269
337
0 commit comments