CINXE.COM

Mercure.rocks: Real-time APIs Made Easy

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><title>Mercure.rocks: Real-time APIs Made Easy</title><meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no"/><meta name="description" content="Mercure is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way."/><meta name="next-head-count" content="4"/><meta charSet="utf-8"/><meta name="theme-color" content="#2ab3d7"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/><link rel="manifest" href="/site.webmanifest"/><link rel="preload" href="/_next/static/css/c70fb4704bb90ac9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/c70fb4704bb90ac9.css" data-n-g=""/><link rel="preload" href="/_next/static/css/24fadce5853fb4e3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/24fadce5853fb4e3.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-ee7e63bc15b31913.js" defer=""></script><script src="/_next/static/chunks/framework-005007471bfa5739.js" defer=""></script><script src="/_next/static/chunks/main-9136667d6ce5ae85.js" defer=""></script><script src="/_next/static/chunks/pages/_app-12a2fe278becd220.js" defer=""></script><script src="/_next/static/chunks/96cefcb4-34c353d29c835cfb.js" defer=""></script><script src="/_next/static/chunks/427-642103173e34f08c.js" defer=""></script><script src="/_next/static/chunks/448-d3da5cf376ac459e.js" defer=""></script><script src="/_next/static/chunks/174-be791fcc477ead11.js" defer=""></script><script src="/_next/static/chunks/124-c7a734b9d2eda3bc.js" defer=""></script><script src="/_next/static/chunks/pages/index-1a005e04d904e947.js" defer=""></script><script src="/_next/static/wJpDtIkZe3rlK3VpPEV7T/_buildManifest.js" defer=""></script><script src="/_next/static/wJpDtIkZe3rlK3VpPEV7T/_ssgManifest.js" defer=""></script><style id="jss-server-side">html { box-sizing: border-box; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } *, *::before, *::after { box-sizing: inherit; } strong, b { font-weight: 700; } body { color: rgba(0, 0, 0, 0.87); margin: 0; font-size: 0.875rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 400; line-height: 1.43; letter-spacing: 0.01071em; background-color: #fff; } @media print { body { background-color: #fff; } } body::backdrop { background-color: #fff; } :target::before { height: 64px; margin: -64px 0 0; content: ; display: block; } .MuiTypography-root { margin: 0; } .MuiTypography-body2 { font-size: 0.875rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 400; line-height: 1.43; letter-spacing: 0.01071em; } .MuiTypography-body1 { font-size: 1rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 400; line-height: 1.5; letter-spacing: 0.00938em; } .MuiTypography-caption { font-size: 0.75rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 400; line-height: 1.66; letter-spacing: 0.03333em; } .MuiTypography-button { font-size: 0.875rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 500; line-height: 1.75; letter-spacing: 0.02857em; text-transform: uppercase; } .MuiTypography-h1 { font-size: 4.5rem; font-family: 'Montserrat', sans-serif; font-weight: 800; line-height: 1.167; letter-spacing: -0.01562em; } .MuiTypography-h2 { font-size: 4rem; font-family: 'Montserrat', sans-serif; font-weight: 800; line-height: 1.2; letter-spacing: -0.00833em; } .MuiTypography-h3 { font-size: 2.5rem; font-family: 'Montserrat', sans-serif; font-weight: 900; line-height: 1.167; letter-spacing: 0em; } .MuiTypography-h4 { font-size: 2.125rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 400; line-height: 1.235; letter-spacing: 0.00735em; } .MuiTypography-h5 { font-size: 1.2rem; font-family: 'Montserrat', sans-serif; font-weight: 400; line-height: 1; letter-spacing: 0em; text-transform: uppercase; } .MuiTypography-h6 { font-size: 1.1rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 500; line-height: 1.6; letter-spacing: 0.0075em; } .MuiTypography-subtitle1 { font-size: 1rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 400; line-height: 1.75; letter-spacing: 0.00938em; } .MuiTypography-subtitle2 { font-size: 0.875rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 500; line-height: 1.57; letter-spacing: 0.00714em; } .MuiTypography-overline { font-size: 0.75rem; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 400; line-height: 1.5; letter-spacing: 0.08333em; text-transform: uppercase; } .MuiTypography-srOnly { width: 1px; height: 1px; overflow: hidden; position: absolute; } .MuiTypography-alignLeft { text-align: left; } .MuiTypography-alignCenter { text-align: center; } .MuiTypography-alignRight { text-align: right; } .MuiTypography-alignJustify { text-align: justify; } .MuiTypography-noWrap { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .MuiTypography-gutterBottom { margin-bottom: 0.35em; } .MuiTypography-paragraph { margin-bottom: 16px; } .MuiTypography-colorInherit { color: inherit; } .MuiTypography-colorPrimary { color: #2ab3d7; } .MuiTypography-colorSecondary { color: #fadb33; } .MuiTypography-colorTextPrimary { color: rgba(0, 0, 0, 0.87); } .MuiTypography-colorTextSecondary { color: rgba(0, 0, 0, 0.54); } .MuiTypography-colorError { color: #ff1744; } .MuiTypography-displayInline { display: inline; } .MuiTypography-displayBlock { display: block; } .MuiGrid-container { width: 100%; display: flex; flex-wrap: wrap; box-sizing: border-box; } .MuiGrid-item { margin: 0; box-sizing: border-box; } .MuiGrid-zeroMinWidth { min-width: 0; } .MuiGrid-direction-xs-column { flex-direction: column; } .MuiGrid-direction-xs-column-reverse { flex-direction: column-reverse; } .MuiGrid-direction-xs-row-reverse { flex-direction: row-reverse; } .MuiGrid-wrap-xs-nowrap { flex-wrap: nowrap; } .MuiGrid-wrap-xs-wrap-reverse { flex-wrap: wrap-reverse; } .MuiGrid-align-items-xs-center { align-items: center; } .MuiGrid-align-items-xs-flex-start { align-items: flex-start; } .MuiGrid-align-items-xs-flex-end { align-items: flex-end; } .MuiGrid-align-items-xs-baseline { align-items: baseline; } .MuiGrid-align-content-xs-center { align-content: center; } .MuiGrid-align-content-xs-flex-start { align-content: flex-start; } .MuiGrid-align-content-xs-flex-end { align-content: flex-end; } .MuiGrid-align-content-xs-space-between { align-content: space-between; } .MuiGrid-align-content-xs-space-around { align-content: space-around; } .MuiGrid-justify-content-xs-center { justify-content: center; } .MuiGrid-justify-content-xs-flex-end { justify-content: flex-end; } .MuiGrid-justify-content-xs-space-between { justify-content: space-between; } .MuiGrid-justify-content-xs-space-around { justify-content: space-around; } .MuiGrid-justify-content-xs-space-evenly { justify-content: space-evenly; } .MuiGrid-spacing-xs-1 { width: calc(100% + 8px); margin: -4px; } .MuiGrid-spacing-xs-1 > .MuiGrid-item { padding: 4px; } .MuiGrid-spacing-xs-2 { width: calc(100% + 16px); margin: -8px; } .MuiGrid-spacing-xs-2 > .MuiGrid-item { padding: 8px; } .MuiGrid-spacing-xs-3 { width: calc(100% + 24px); margin: -12px; } .MuiGrid-spacing-xs-3 > .MuiGrid-item { padding: 12px; } .MuiGrid-spacing-xs-4 { width: calc(100% + 32px); margin: -16px; } .MuiGrid-spacing-xs-4 > .MuiGrid-item { padding: 16px; } .MuiGrid-spacing-xs-5 { width: calc(100% + 40px); margin: -20px; } .MuiGrid-spacing-xs-5 > .MuiGrid-item { padding: 20px; } .MuiGrid-spacing-xs-6 { width: calc(100% + 48px); margin: -24px; } .MuiGrid-spacing-xs-6 > .MuiGrid-item { padding: 24px; } .MuiGrid-spacing-xs-7 { width: calc(100% + 56px); margin: -28px; } .MuiGrid-spacing-xs-7 > .MuiGrid-item { padding: 28px; } .MuiGrid-spacing-xs-8 { width: calc(100% + 64px); margin: -32px; } .MuiGrid-spacing-xs-8 > .MuiGrid-item { padding: 32px; } .MuiGrid-spacing-xs-9 { width: calc(100% + 72px); margin: -36px; } .MuiGrid-spacing-xs-9 > .MuiGrid-item { padding: 36px; } .MuiGrid-spacing-xs-10 { width: calc(100% + 80px); margin: -40px; } .MuiGrid-spacing-xs-10 > .MuiGrid-item { padding: 40px; } .MuiGrid-grid-xs-auto { flex-grow: 0; max-width: none; flex-basis: auto; } .MuiGrid-grid-xs-true { flex-grow: 1; max-width: 100%; flex-basis: 0; } .MuiGrid-grid-xs-1 { flex-grow: 0; max-width: 8.333333%; flex-basis: 8.333333%; } .MuiGrid-grid-xs-2 { flex-grow: 0; max-width: 16.666667%; flex-basis: 16.666667%; } .MuiGrid-grid-xs-3 { flex-grow: 0; max-width: 25%; flex-basis: 25%; } .MuiGrid-grid-xs-4 { flex-grow: 0; max-width: 33.333333%; flex-basis: 33.333333%; } .MuiGrid-grid-xs-5 { flex-grow: 0; max-width: 41.666667%; flex-basis: 41.666667%; } .MuiGrid-grid-xs-6 { flex-grow: 0; max-width: 50%; flex-basis: 50%; } .MuiGrid-grid-xs-7 { flex-grow: 0; max-width: 58.333333%; flex-basis: 58.333333%; } .MuiGrid-grid-xs-8 { flex-grow: 0; max-width: 66.666667%; flex-basis: 66.666667%; } .MuiGrid-grid-xs-9 { flex-grow: 0; max-width: 75%; flex-basis: 75%; } .MuiGrid-grid-xs-10 { flex-grow: 0; max-width: 83.333333%; flex-basis: 83.333333%; } .MuiGrid-grid-xs-11 { flex-grow: 0; max-width: 91.666667%; flex-basis: 91.666667%; } .MuiGrid-grid-xs-12 { flex-grow: 0; max-width: 100%; flex-basis: 100%; } @media (min-width:600px) { .MuiGrid-grid-sm-auto { flex-grow: 0; max-width: none; flex-basis: auto; } .MuiGrid-grid-sm-true { flex-grow: 1; max-width: 100%; flex-basis: 0; } .MuiGrid-grid-sm-1 { flex-grow: 0; max-width: 8.333333%; flex-basis: 8.333333%; } .MuiGrid-grid-sm-2 { flex-grow: 0; max-width: 16.666667%; flex-basis: 16.666667%; } .MuiGrid-grid-sm-3 { flex-grow: 0; max-width: 25%; flex-basis: 25%; } .MuiGrid-grid-sm-4 { flex-grow: 0; max-width: 33.333333%; flex-basis: 33.333333%; } .MuiGrid-grid-sm-5 { flex-grow: 0; max-width: 41.666667%; flex-basis: 41.666667%; } .MuiGrid-grid-sm-6 { flex-grow: 0; max-width: 50%; flex-basis: 50%; } .MuiGrid-grid-sm-7 { flex-grow: 0; max-width: 58.333333%; flex-basis: 58.333333%; } .MuiGrid-grid-sm-8 { flex-grow: 0; max-width: 66.666667%; flex-basis: 66.666667%; } .MuiGrid-grid-sm-9 { flex-grow: 0; max-width: 75%; flex-basis: 75%; } .MuiGrid-grid-sm-10 { flex-grow: 0; max-width: 83.333333%; flex-basis: 83.333333%; } .MuiGrid-grid-sm-11 { flex-grow: 0; max-width: 91.666667%; flex-basis: 91.666667%; } .MuiGrid-grid-sm-12 { flex-grow: 0; max-width: 100%; flex-basis: 100%; } } @media (min-width:960px) { .MuiGrid-grid-md-auto { flex-grow: 0; max-width: none; flex-basis: auto; } .MuiGrid-grid-md-true { flex-grow: 1; max-width: 100%; flex-basis: 0; } .MuiGrid-grid-md-1 { flex-grow: 0; max-width: 8.333333%; flex-basis: 8.333333%; } .MuiGrid-grid-md-2 { flex-grow: 0; max-width: 16.666667%; flex-basis: 16.666667%; } .MuiGrid-grid-md-3 { flex-grow: 0; max-width: 25%; flex-basis: 25%; } .MuiGrid-grid-md-4 { flex-grow: 0; max-width: 33.333333%; flex-basis: 33.333333%; } .MuiGrid-grid-md-5 { flex-grow: 0; max-width: 41.666667%; flex-basis: 41.666667%; } .MuiGrid-grid-md-6 { flex-grow: 0; max-width: 50%; flex-basis: 50%; } .MuiGrid-grid-md-7 { flex-grow: 0; max-width: 58.333333%; flex-basis: 58.333333%; } .MuiGrid-grid-md-8 { flex-grow: 0; max-width: 66.666667%; flex-basis: 66.666667%; } .MuiGrid-grid-md-9 { flex-grow: 0; max-width: 75%; flex-basis: 75%; } .MuiGrid-grid-md-10 { flex-grow: 0; max-width: 83.333333%; flex-basis: 83.333333%; } .MuiGrid-grid-md-11 { flex-grow: 0; max-width: 91.666667%; flex-basis: 91.666667%; } .MuiGrid-grid-md-12 { flex-grow: 0; max-width: 100%; flex-basis: 100%; } } @media (min-width:1280px) { .MuiGrid-grid-lg-auto { flex-grow: 0; max-width: none; flex-basis: auto; } .MuiGrid-grid-lg-true { flex-grow: 1; max-width: 100%; flex-basis: 0; } .MuiGrid-grid-lg-1 { flex-grow: 0; max-width: 8.333333%; flex-basis: 8.333333%; } .MuiGrid-grid-lg-2 { flex-grow: 0; max-width: 16.666667%; flex-basis: 16.666667%; } .MuiGrid-grid-lg-3 { flex-grow: 0; max-width: 25%; flex-basis: 25%; } .MuiGrid-grid-lg-4 { flex-grow: 0; max-width: 33.333333%; flex-basis: 33.333333%; } .MuiGrid-grid-lg-5 { flex-grow: 0; max-width: 41.666667%; flex-basis: 41.666667%; } .MuiGrid-grid-lg-6 { flex-grow: 0; max-width: 50%; flex-basis: 50%; } .MuiGrid-grid-lg-7 { flex-grow: 0; max-width: 58.333333%; flex-basis: 58.333333%; } .MuiGrid-grid-lg-8 { flex-grow: 0; max-width: 66.666667%; flex-basis: 66.666667%; } .MuiGrid-grid-lg-9 { flex-grow: 0; max-width: 75%; flex-basis: 75%; } .MuiGrid-grid-lg-10 { flex-grow: 0; max-width: 83.333333%; flex-basis: 83.333333%; } .MuiGrid-grid-lg-11 { flex-grow: 0; max-width: 91.666667%; flex-basis: 91.666667%; } .MuiGrid-grid-lg-12 { flex-grow: 0; max-width: 100%; flex-basis: 100%; } } @media (min-width:1920px) { .MuiGrid-grid-xl-auto { flex-grow: 0; max-width: none; flex-basis: auto; } .MuiGrid-grid-xl-true { flex-grow: 1; max-width: 100%; flex-basis: 0; } .MuiGrid-grid-xl-1 { flex-grow: 0; max-width: 8.333333%; flex-basis: 8.333333%; } .MuiGrid-grid-xl-2 { flex-grow: 0; max-width: 16.666667%; flex-basis: 16.666667%; } .MuiGrid-grid-xl-3 { flex-grow: 0; max-width: 25%; flex-basis: 25%; } .MuiGrid-grid-xl-4 { flex-grow: 0; max-width: 33.333333%; flex-basis: 33.333333%; } .MuiGrid-grid-xl-5 { flex-grow: 0; max-width: 41.666667%; flex-basis: 41.666667%; } .MuiGrid-grid-xl-6 { flex-grow: 0; max-width: 50%; flex-basis: 50%; } .MuiGrid-grid-xl-7 { flex-grow: 0; max-width: 58.333333%; flex-basis: 58.333333%; } .MuiGrid-grid-xl-8 { flex-grow: 0; max-width: 66.666667%; flex-basis: 66.666667%; } .MuiGrid-grid-xl-9 { flex-grow: 0; max-width: 75%; flex-basis: 75%; } .MuiGrid-grid-xl-10 { flex-grow: 0; max-width: 83.333333%; flex-basis: 83.333333%; } .MuiGrid-grid-xl-11 { flex-grow: 0; max-width: 91.666667%; flex-basis: 91.666667%; } .MuiGrid-grid-xl-12 { flex-grow: 0; max-width: 100%; flex-basis: 100%; } } .MuiContainer-root { width: 100%; display: block; box-sizing: border-box; margin-left: auto; margin-right: auto; padding-left: 16px; padding-right: 16px; } @media (min-width:600px) { .MuiContainer-root { padding-left: 24px; padding-right: 24px; } } .MuiContainer-disableGutters { padding-left: 0; padding-right: 0; } @media (min-width:600px) { .MuiContainer-fixed { max-width: 600px; } } @media (min-width:960px) { .MuiContainer-fixed { max-width: 960px; } } @media (min-width:1280px) { .MuiContainer-fixed { max-width: 1280px; } } @media (min-width:1920px) { .MuiContainer-fixed { max-width: 1920px; } } @media (min-width:0px) { .MuiContainer-maxWidthXs { max-width: 444px; } } @media (min-width:600px) { .MuiContainer-maxWidthSm { max-width: 600px; } } @media (min-width:960px) { .MuiContainer-maxWidthMd { max-width: 960px; } } @media (min-width:1280px) { .MuiContainer-maxWidthLg { max-width: 1280px; } } @media (min-width:1920px) { .MuiContainer-maxWidthXl { max-width: 1920px; } } .MuiSvgIcon-root { fill: currentColor; width: 1em; height: 1em; display: inline-block; font-size: 1.5rem; transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; flex-shrink: 0; user-select: none; } .MuiSvgIcon-colorPrimary { color: #2ab3d7; } .MuiSvgIcon-colorSecondary { color: #fadb33; } .MuiSvgIcon-colorAction { color: rgba(0, 0, 0, 0.54); } .MuiSvgIcon-colorError { color: #ff1744; } .MuiSvgIcon-colorDisabled { color: rgba(0, 0, 0, 0.26); } .MuiSvgIcon-fontSizeInherit { font-size: inherit; } .MuiSvgIcon-fontSizeSmall { font-size: 1.25rem; } .MuiSvgIcon-fontSizeLarge { font-size: 2.1875rem; } .MuiPaper-root { color: rgba(0, 0, 0, 0.87); transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; background-color: #fff; } .MuiPaper-rounded { border-radius: 4px; } .MuiPaper-outlined { border: 1px solid rgba(0, 0, 0, 0.12); } .MuiPaper-elevation0 { box-shadow: none; } .MuiPaper-elevation1 { box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12); } .MuiPaper-elevation2 { box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12); } .MuiPaper-elevation3 { box-shadow: 0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12); } .MuiPaper-elevation4 { box-shadow: 0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12); } .MuiPaper-elevation5 { box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12); } .MuiPaper-elevation6 { box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12); } .MuiPaper-elevation7 { box-shadow: 0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12); } .MuiPaper-elevation8 { box-shadow: 0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12); } .MuiPaper-elevation9 { box-shadow: 0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12); } .MuiPaper-elevation10 { box-shadow: 0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12); } .MuiPaper-elevation11 { box-shadow: 0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12); } .MuiPaper-elevation12 { box-shadow: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12); } .MuiPaper-elevation13 { box-shadow: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12); } .MuiPaper-elevation14 { box-shadow: 0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12); } .MuiPaper-elevation15 { box-shadow: 0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12); } .MuiPaper-elevation16 { box-shadow: 0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12); } .MuiPaper-elevation17 { box-shadow: 0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12); } .MuiPaper-elevation18 { box-shadow: 0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12); } .MuiPaper-elevation19 { box-shadow: 0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12); } .MuiPaper-elevation20 { box-shadow: 0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12); } .MuiPaper-elevation21 { box-shadow: 0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12); } .MuiPaper-elevation22 { box-shadow: 0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12); } .MuiPaper-elevation23 { box-shadow: 0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12); } .MuiPaper-elevation24 { box-shadow: 0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12); } .MuiButtonBase-root { color: inherit; border: 0; cursor: pointer; margin: 0; display: inline-flex; outline: 0; padding: 0; position: relative; align-items: center; user-select: none; border-radius: 0; vertical-align: middle; -moz-appearance: none; justify-content: center; text-decoration: none; background-color: transparent; -webkit-appearance: none; -webkit-tap-highlight-color: transparent; } .MuiButtonBase-root::-moz-focus-inner { border-style: none; } .MuiButtonBase-root.Mui-disabled { cursor: default; pointer-events: none; } @media print { .MuiButtonBase-root { color-adjust: exact; } } .MuiAppBar-root { width: 100%; display: flex; z-index: 1100; box-sizing: border-box; flex-shrink: 0; border-bottom: 2px solid #2ab3d7; flex-direction: column; } .MuiAppBar-positionFixed { top: 0; left: auto; right: 0; position: fixed; } @media print { .MuiAppBar-positionFixed { position: absolute; } } .MuiAppBar-positionAbsolute { top: 0; left: auto; right: 0; position: absolute; } .MuiAppBar-positionSticky { top: 0; left: auto; right: 0; position: sticky; } .MuiAppBar-positionStatic { position: static; } .MuiAppBar-positionRelative { position: relative; } .MuiAppBar-colorDefault { color: rgba(0, 0, 0, 0.87);; background-color: #fff; } .MuiAppBar-colorPrimary { color: rgba(0, 0, 0, 0.87); background-color: #2ab3d7; } .MuiAppBar-colorSecondary { color: rgba(0, 0, 0, 0.87); background-color: #fadb33; } .MuiAppBar-colorInherit { color: inherit; } .MuiAppBar-colorTransparent { color: inherit; background-color: transparent; } .jss21 { display: flex; } .jss22 { } .jss31 { padding: 8px; } .jss32 { } .jss55 { padding: 8px; } .jss56 { display: flex; align-items: center; padding-left: 16px; padding-right: 16px; justify-content: center; } .jss57 { height: 100%; display: flex; padding-top: 16px; flex-direction: column; padding-bottom: 16px; } .jss58 { display: flex; align-items: center; padding-left: 16px; padding-right: 16px; justify-content: center; } .jss59 { height: 100%; display: flex; padding-top: 16px; flex-direction: column; padding-bottom: 16px; } .jss60 { display: flex; align-items: center; padding-left: 16px; padding-right: 16px; justify-content: center; } .jss61 { height: 100%; display: flex; padding-top: 16px; flex-direction: column; padding-bottom: 16px; } .jss62 { display: flex; align-items: center; padding-left: 16px; padding-right: 16px; justify-content: center; } .jss63 { height: 100%; display: flex; padding-top: 16px; flex-direction: column; padding-bottom: 16px; } .MuiButton-root { color: rgba(0, 0, 0, 0.87); padding: 6px 16px; font-size: 0.875rem; min-width: 64px; box-sizing: border-box; transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-weight: 500; line-height: 1.75; border-radius: 40px; letter-spacing: 0.02857em; text-transform: uppercase; } .MuiButton-root:hover { text-decoration: none; background-color: rgba(0, 0, 0, 0.04); } .MuiButton-root.Mui-disabled { color: rgba(0, 0, 0, 0.26); } @media (hover: none) { .MuiButton-root:hover { background-color: transparent; } } .MuiButton-root:hover.Mui-disabled { background-color: transparent; } .MuiButton-label { width: 100%; display: inherit; align-items: inherit; justify-content: inherit; } .MuiButton-text { padding: 6px 8px; } .MuiButton-textPrimary { color: #2ab3d7; } .MuiButton-textPrimary:hover { background-color: rgba(42, 179, 215, 0.04); } @media (hover: none) { .MuiButton-textPrimary:hover { background-color: transparent; } } .MuiButton-textSecondary { color: #fadb33; } .MuiButton-textSecondary:hover { background-color: rgba(250, 219, 51, 0.04); } @media (hover: none) { .MuiButton-textSecondary:hover { background-color: transparent; } } .MuiButton-outlined { border: 1px solid rgba(0, 0, 0, 0.23); padding: 5px 15px; } .MuiButton-outlined.Mui-disabled { border: 1px solid rgba(0, 0, 0, 0.12); } .MuiButton-outlinedPrimary { color: #2ab3d7; border: 1px solid rgba(42, 179, 215, 0.5); } .MuiButton-outlinedPrimary:hover { border: 1px solid #2ab3d7; background-color: rgba(42, 179, 215, 0.04); } @media (hover: none) { .MuiButton-outlinedPrimary:hover { background-color: transparent; } } .MuiButton-outlinedSecondary { color: #fadb33; border: 1px solid rgba(250, 219, 51, 0.5); } .MuiButton-outlinedSecondary:hover { border: 1px solid #fadb33; background-color: rgba(250, 219, 51, 0.04); } .MuiButton-outlinedSecondary.Mui-disabled { border: 1px solid rgba(0, 0, 0, 0.26); } @media (hover: none) { .MuiButton-outlinedSecondary:hover { background-color: transparent; } } .MuiButton-contained { color: rgba(0, 0, 0, 0.87); box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12); background-color: #e0e0e0; } .MuiButton-contained:hover { box-shadow: 0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12); background-color: #d5d5d5; } .MuiButton-contained.Mui-focusVisible { box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12); } .MuiButton-contained:active { box-shadow: 0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12); } .MuiButton-contained.Mui-disabled { color: rgba(0, 0, 0, 0.26); box-shadow: none; background-color: rgba(0, 0, 0, 0.12); } @media (hover: none) { .MuiButton-contained:hover { box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12); background-color: #e0e0e0; } } .MuiButton-contained:hover.Mui-disabled { background-color: rgba(0, 0, 0, 0.12); } .MuiButton-containedPrimary { color: rgba(0, 0, 0, 0.87); background-color: #2ab3d7; } .MuiButton-containedPrimary:hover { background-color: rgb(29, 125, 150); } @media (hover: none) { .MuiButton-containedPrimary:hover { background-color: #2ab3d7; } } .MuiButton-containedSecondary { color: rgba(0, 0, 0, 0.87); background-color: #fadb33; } .MuiButton-containedSecondary:hover { background-color: rgb(175, 153, 35); } @media (hover: none) { .MuiButton-containedSecondary:hover { background-color: #fadb33; } } .MuiButton-disableElevation { box-shadow: none; } .MuiButton-disableElevation:hover { box-shadow: none; } .MuiButton-disableElevation.Mui-focusVisible { box-shadow: none; } .MuiButton-disableElevation:active { box-shadow: none; } .MuiButton-disableElevation.Mui-disabled { box-shadow: none; } .MuiButton-colorInherit { color: inherit; border-color: currentColor; } .MuiButton-textSizeSmall { padding: 4px 5px; font-size: 0.8125rem; } .MuiButton-textSizeLarge { padding: 8px 11px; font-size: 0.9375rem; } .MuiButton-outlinedSizeSmall { padding: 3px 9px; font-size: 0.8125rem; } .MuiButton-outlinedSizeLarge { padding: 7px 21px; font-size: 0.9375rem; } .MuiButton-containedSizeSmall { padding: 4px 10px; font-size: 0.8125rem; } .MuiButton-containedSizeLarge { padding: 8px 22px; font-size: 0.9375rem; } .MuiButton-fullWidth { width: 100%; } .MuiButton-startIcon { display: inherit; margin-left: -4px; margin-right: 8px; } .MuiButton-startIcon.MuiButton-iconSizeSmall { margin-left: -2px; } .MuiButton-endIcon { display: inherit; margin-left: 8px; margin-right: -4px; } .MuiButton-endIcon.MuiButton-iconSizeSmall { margin-right: -2px; } .MuiButton-iconSizeSmall > *:first-child { font-size: 18px; } .MuiButton-iconSizeMedium > *:first-child { font-size: 20px; } .MuiButton-iconSizeLarge > *:first-child { font-size: 22px; } .MuiCard-root { overflow: hidden; } .MuiCardActions-root { display: flex; padding: 8px; align-items: center; } .MuiCardActions-spacing > :not(:first-child) { margin-left: 8px; } .MuiCardContent-root { padding: 16px; } .MuiCardContent-root:last-child { padding-bottom: 24px; } .MuiDrawer-docked { flex: 0 0 auto; } .MuiDrawer-paper { top: 0; flex: 1 0 auto; height: 100%; display: flex; outline: 0; z-index: 1200; position: fixed; overflow-y: auto; flex-direction: column; -webkit-overflow-scrolling: touch; } .MuiDrawer-paperAnchorLeft { left: 0; right: auto; } .MuiDrawer-paperAnchorRight { left: auto; right: 0; } .MuiDrawer-paperAnchorTop { top: 0; left: 0; right: 0; bottom: auto; height: auto; max-height: 100%; } .MuiDrawer-paperAnchorBottom { top: auto; left: 0; right: 0; bottom: 0; height: auto; max-height: 100%; } .MuiDrawer-paperAnchorDockedLeft { border-right: 1px solid rgba(0, 0, 0, 0.12); } .MuiDrawer-paperAnchorDockedTop { border-bottom: 1px solid rgba(0, 0, 0, 0.12); } .MuiDrawer-paperAnchorDockedRight { border-left: 1px solid rgba(0, 0, 0, 0.12); } .MuiDrawer-paperAnchorDockedBottom { border-top: 1px solid rgba(0, 0, 0, 0.12); } .MuiLink-underlineNone { text-decoration: none; } .MuiLink-underlineHover { text-decoration: none; } .MuiLink-underlineHover:hover { text-decoration: underline; } .MuiLink-underlineAlways { text-decoration: underline; } .MuiLink-button { border: 0; cursor: pointer; margin: 0; outline: 0; padding: 0; position: relative; user-select: none; border-radius: 0; vertical-align: middle; -moz-appearance: none; background-color: transparent; -webkit-appearance: none; -webkit-tap-highlight-color: transparent; } .MuiLink-button::-moz-focus-inner { border-style: none; } .MuiLink-button.Mui-focusVisible { outline: auto; } .MuiToolbar-root { display: flex; position: relative; align-items: center; } .MuiToolbar-gutters { padding-left: 16px; padding-right: 16px; } @media (min-width:600px) { .MuiToolbar-gutters { padding-left: 24px; padding-right: 24px; } } .MuiToolbar-regular { min-height: 56px; } @media (min-width:0px) and (orientation: landscape) { .MuiToolbar-regular { min-height: 48px; } } @media (min-width:600px) { .MuiToolbar-regular { min-height: 64px; } } .MuiToolbar-dense { min-height: 48px; } .jss5 { display: flex; z-index: 1201; flex-direction: row; } .jss6 { color: #fff; width: 100%; display: flex; padding: 8px; z-index: 1201; align-items: center; font-weight: 700; justify-content: center; background-color: #495466; } .jss6 > img { height: 16px; margin: 0 8px; } .jss7 { height: 40px; margin-right: 20px; } .jss8 { height: 100%; border-radius: 0; } .jss9 { top: 46px; left: 70px; height: 40px; position: absolute; clip-path: polygon(2% 30%, 94% 15%, 97% 73%, 5% 79%); } .jss10 { width: 100%; height: 64px; } .jss11 { height: 100%; padding: 0 15px; font-weight: 1.2em; border-radius: 0; } .jss11::after { top: calc(50% - 15px); left: 50%; width: 0px; height: 4px; content: ''; position: absolute; transform: translate(-50%, -50%); transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; background-color: #2ab3d7; } .jss11.active { position: relative; } .jss11.active::after { width: 20px; } .jss11:hover::after { width: 30px; } .jss12 { padding: 0; transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; } .jss12:hover { color: #2ab3d7; } .jss13 { display: flex; padding: 16px 24px; align-items: center; border-bottom: 1px solid #eeeeee; flex-direction: column; } .jss13 > svg { font-size: 3rem; } .jss14 { top: 66px; right: 0; width: 120px; height: 120px; overflow: hidden; position: absolute; clip-path: polygon(0% 0, 100% 0, 100% 100%); } .jss15 { top: 40px; color: rgba(0, 0, 0, 0.87)!important; right: -105px; width: 300px; z-index: 0; position: absolute; transform: rotate(45deg); background: #fadb33; text-align: center; line-height: 25px; text-transform: uppercase; } .jss16 { top: 0px; right: 0; border: 0; z-index: 0; position: absolute; } .jss17 { transform-origin: 130px 106px; } .jss18 > a { color: rgba(0, 0, 0, 0.87);; } .jss18 > a:hover { text-decoration: none; } .jss19 { display: flex; align-items: center; justify-content: center; } .jss20 { height: 40px; font-size: 1.1em; margin-right: 20px; border-radius: 5px; background-color: #ebebeb; } .jss20 .DocSearch-Button { width: 100%; margin: 0; background: transparent; box-shadow: none; border-radius: 0; } .jss20 .DocSearch-Search-Icon { color: #2ab3d7; } @media (max-width: 599px) { .jss20 { display: none; } } @media (min-width: 600px) and (max-width: 699px) { .jss20 { width: 35vw; } } @media (min-width: 700px) and (max-width: 828px) { .jss20 { width: 45vw; } } @media (min-width: 829px) and (max-width: 1043px) { .jss20 { width: 55vw; } } @media (min-width: 1044px) and (max-width: 1279px) { .jss20 { width: 60vw; } } @media (min-width: 1280px) and (max-width: 1306px) { .jss20 { width: 24vw; } } @media (min-width: 1370px) { .jss20 { width: 29vw; } } :root { --docsearch-primary-color: #2ab3d7; } .jss23 { width: 80%; } .jss24 { color: #fff; display: flex; padding: 16px; align-items: center; flex-direction: column; background-color: #2ab3d7; } .jss25 { font-size: 8rem; } .jss26 { width: 100%; } body { background-color: #fff; } #__next { display: flex; min-height: 100vh; flex-direction: column; } .jss1 { flex: 1; width: auto; display: flex; flex-direction: column; } .jss2 { color: #fff; padding: 48px 0px; background-color: #212121; } .jss3 { display: block; text-decoration: none; } .jss4 { flex: 1; display: flex; flex-direction: column; } .jss27 { color: #fff; padding: 64px 0px; background: url("/static/isometric.png") 140%, linear-gradient(315deg, #2ab3d7 0%, rgb(29, 125, 150) 100%); } .jss28 { width: 100%; height: auto; } .jss29 { margin-top: 24px; border-radius: 40px; } .jss29:not(:first-child) { margin-left: 8px; } @media (max-width:959.95px) { .jss30 { text-align: center; } } @media (min-width:960px) { .jss30 { text-align: left; } } .jss43 { text-align: left; margin-bottom: 48px; } @media (max-width:959.95px) { .jss43 { text-align: center; } } .jss44 { color: #fff; padding: 64px 0px; position: relative; background: rgb(29, 125, 150); } .jss45 { z-index: 1; position: relative; } .jss46 { width: 100%; } .jss47 { width: 100px; border: 8px solid rgb(29, 125, 150); height: 100px; display: flex; padding: 16px; border-radius: 50%; } .jss48 { background: url("/static/help.svg"); background-size: auto 100%; background-repeat: no-repeat; background-position: 0 center; } @media (max-width:959.95px) { .jss48 { background: none; } } .jss49 { width: 100%; height: 100%; display: flex; text-align: left; align-items: flex-start; flex-direction: column; justify-content: center; } @media (max-width:959.95px) { .jss49 { text-align: center; align-items: center; } } .jss50 { font-size: 3rem; } .jss51 { height: 100%; display: flex; flex-direction: column; } .jss52 { flex: 1; display: flex; flex-direction: row; } @media (max-width:959.95px) { .jss52 { text-align: center; flex-direction: column; } } .jss53 { display: flex; padding: 16px; justify-content: flex-end; } .jss54 { width: 100%; bottom: 0; height: 30vh; z-index: 0; position: absolute; } .jss54 > polygon { fill: #212121; } .jss33 { padding: 64px 0px; overflow-x: hidden; overflow-y: none; background-color: #f5f5f5; } .jss34 { position: relative; margin-bottom: 80px; } .jss34::after { left: 50%; width: 100px; bottom: -20px; height: 8px; content: ''; position: absolute; transform: translateX(-50%); background-color: #fadb33; } .jss35 { margin-top: 24px; border-radius: 40px; } .jss36 { display: flex; align-items: center; flex-direction: column; justify-content: flex-start; } .jss37 { font-size: 2.2rem; } .jss38 { max-width: 250px; } .jss39 { color: #fff; width: 70px; border: 5px solid rgb(29, 125, 150); height: 70px; display: flex; position: relative; align-items: center; border-radius: 50%; margin-bottom: 8px; justify-content: center; background-color: rgb(84, 194, 223); } .jss39::after { top: 50%; left: 50%; width: 60px; border: 4px solid #fff; height: 60px; content: ''; position: absolute; transform: translate(-50%, -50%); border-radius: 50%; } .jss40 { padding: 64px 0px; background-color: #f5f5f5; } .jss41 { position: relative; margin-bottom: 80px; } .jss41::after { left: 50%; width: 100px; bottom: -20px; height: 8px; content: ''; position: absolute; transform: translateX(-50%); background-color: #fadb33; } .jss42 { height: auto; max-width: 90%; }</style></head><body><div id="__next"><header class="MuiPaper-root MuiAppBar-root MuiAppBar-positionSticky MuiAppBar-colorDefault jss5 MuiPaper-elevation4"><div class="MuiToolbar-root MuiToolbar-regular jss10 MuiToolbar-gutters"><a class="MuiButtonBase-root MuiButton-root MuiButton-text jss8" tabindex="0" aria-disabled="false" href="/"><span class="MuiButton-label"><img class="jss7" src="/static/logo.svg" alt="Mercure.rocks"/></span></a><a href="https://les-tilleuls.coop/en" target="_blank" rel="noopener noreferrer"><img class="jss9" src="/static/sponsor.svg" alt="Sponsored by Les-Tilleuls.coop"/></a><div class="MuiBox-root jss21"><div class="jss19"><div class="MuiBox-root jss22 jss20"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div></div><a class="jss14" href="https://github.com/dunglas/mercure" target="_blank" rel="noopener noreferrer"><div class="jss15">Contribute!</div><div><svg width="80" height="80" viewBox="0 0 250 250" class="jss16" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" fill="#151513"></path><path class="jss17" d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="#ffffff"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="#ffffff"></path></svg></div></a></header><main class="jss1"><div class="jss4"><section class="jss27"><div class="MuiContainer-root MuiContainer-maxWidthLg"><div class="MuiGrid-root MuiGrid-container MuiGrid-align-items-xs-center MuiGrid-justify-content-xs-center"><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-md-7"><img class="jss28" src="/static/main.png" alt="main"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-md-5"><div class="MuiBox-root jss31 jss30"><h1 class="MuiTypography-root MuiTypography-h1 MuiTypography-colorInherit MuiTypography-gutterBottom">Mercure: Real-time Made Easy</h1><p class="MuiTypography-root MuiTypography-body1 MuiTypography-paragraph">Mercure is an open solution for real-time communications designed to be fast, reliable, and battery-efficient. It is a modern and convenient replacement for both WebSockets and the higher-level libraries and services relying on it.</p><p class="MuiTypography-root MuiTypography-body1 MuiTypography-paragraph">Mercure is especially useful to add streaming and asynchronous capabilities to REST and GraphQL APIs. Because it is a thin layer on top of HTTP and<!-- --> <abbr title="Server-sent events">SSE</abbr>, Mercure is natively supported by modern web browsers, mobile applications and<!-- --> <abbr title="Internet of things">IoT</abbr> devices.</p><p class="MuiTypography-root MuiTypography-body1 MuiTypography-paragraph">A free (as in beer, and as in speech) reference server as well as a hosted service are available.</p><div class="MuiBox-root jss32"><a class="MuiButtonBase-root MuiButton-root MuiButton-outlined jss29 MuiButton-outlinedSecondary MuiButton-outlinedSizeLarge MuiButton-sizeLarge" tabindex="0" aria-disabled="false" href="/docs/getting-started"><span class="MuiButton-label">Free and Open Source version</span></a><a class="MuiButtonBase-root MuiButton-root MuiButton-contained jss29 MuiButton-containedSecondary MuiButton-containedSizeLarge MuiButton-sizeLarge" tabindex="0" aria-disabled="false" href="/pricing"><span class="MuiButton-label">Managed Mercure Hub</span></a></div></div></div></div></div></section><section class="jss33"><div class="MuiContainer-root MuiContainer-maxWidthLg"><h3 class="MuiTypography-root jss34 MuiTypography-h3 MuiTypography-colorPrimary MuiTypography-alignCenter">Mercure: at a glance</h3><div class="MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-2 MuiGrid-align-items-xs-flex-start MuiGrid-justify-content-xs-center"><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Pure HTTP, full-duplex, leverage HTTP/2+</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M20.38 8.57l-1.23 1.85a8 8 0 01-.22 7.58H5.07A8 8 0 0115.58 6.85l1.85-1.23A10 10 0 003.35 19a2 2 0 001.72 1h13.85a2 2 0 001.74-1 10 10 0 00-.27-10.44zm-9.79 6.84a2 2 0 002.83 0l5.66-8.49-8.49 5.66a2 2 0 000 2.83z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">High performance, low latency</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M23 11.01L18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12c0 1.1.89 2 2 2h7v2H7v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4c0-1.11-.9-2-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Native browser support, works everywhere</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M4.01 6.03l7.51 3.22-7.52-1 .01-2.22m7.5 8.72L4 17.97v-2.22l7.51-1M2.01 3L2 10l15 2-15 2 .01 7L23 12 2.01 3z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Publish with a simple POST request</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Subscribe using Server-Sent-Events</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM6.24 5h11.52l.81.97H5.44l.8-.97zM5 19V8h14v11H5zm8.45-9h-2.9v3H8l4 4 4-4h-2.55z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Automatic reconnection, refetch missed messages</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 4h16v12H5.17L4 17.17V4m0-2c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H4zm2 10h12v2H6v-2zm0-3h12v2H6V9zm0-3h12v2H6V6z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Designed for REST and GraphQL</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Private updates (JWT authorization)</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Presence API and subscription events</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Event store</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Compatible with serverless, PHP and the like</h6></div><div class="MuiGrid-root jss36 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-4 MuiGrid-grid-md-3 MuiGrid-grid-lg-2"><div class="jss39"><svg class="MuiSvgIcon-root jss37" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"></path></svg></div><h6 class="MuiTypography-root jss38 MuiTypography-subtitle2 MuiTypography-gutterBottom MuiTypography-alignCenter">Supports end-to-end encryption</h6></div></div></div></section><section class="jss40"><div class="MuiContainer-root MuiContainer-maxWidthLg"><h3 class="MuiTypography-root jss41 MuiTypography-h3 MuiTypography-colorTextPrimary MuiTypography-alignCenter">They use Mercure</h3><div class="MuiGrid-root MuiGrid-container MuiGrid-justify-content-xs-center"><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/intm.png" alt="INTM"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/m6.png" alt="M6"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/oskab.png" alt="Oskab"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/tilleuls.png" alt="Les-Tilleuls.coop"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/sensio.png" alt="Sensiolabs"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/alice-garden.png" alt="Alice Garden"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/bce.png" alt="BCE"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/mym.png" alt="MYM"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/wrestling.png" alt="Wrestling"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/printify.png" alt="Printify"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/conference-glasgow.png" alt="Climate Change Conference"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/euro.png" alt="Euro 2020"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/lush.png" alt="Lush"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/rectangle.png" alt="Rectangle Health"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/yap-life.png" alt="Yap Life"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/raven-control.png" alt="Raven Control"/></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-4 MuiGrid-grid-sm-3 MuiGrid-grid-md-2"><img class="jss42" src="static/logos/mail-tm.png" alt="Mail Tm"/></div></div></div></section><section class="jss44"><svg class="jss54" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><polygon fill="white" points="0,100 100,0 100,100"></polygon></svg><div class="MuiContainer-root jss45 MuiContainer-maxWidthLg"><div class="MuiGrid-root jss48 MuiGrid-container MuiGrid-align-items-xs-center MuiGrid-justify-content-xs-center"><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-md-3"></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-md-9"><div class="MuiBox-root jss55"><h3 class="MuiTypography-root jss43 MuiTypography-h3 MuiTypography-colorInherit">Need help ?</h3><div class="MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-4"><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-6"><div class="MuiPaper-root MuiCard-root jss51 MuiPaper-elevation3"><div class="MuiCardContent-root jss52"><div class="MuiBox-root jss56"><div class="jss47"><img src="/static/book.svg" class="jss46" alt=""/></div></div><div class="MuiBox-root jss57 jss49"><h5 class="MuiTypography-root MuiTypography-h5 MuiTypography-gutterBottom">Documentation</h5><p class="MuiTypography-root MuiTypography-body2 MuiTypography-colorTextSecondary">Reading the documentation is an excellent way to discover Mercure.</p></div></div><div class="MuiCardActions-root jss53 MuiCardActions-spacing"><a class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-outlinedSizeSmall MuiButton-sizeSmall" tabindex="0" aria-disabled="false" href="/docs"><span class="MuiButton-label">Read the docs<svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"></path></svg></span></a></div></div></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-6"><div class="MuiPaper-root MuiCard-root jss51 MuiPaper-elevation3"><div class="MuiCardContent-root jss52"><div class="MuiBox-root jss58"><div class="jss47"><img src="/static/handshake.svg" class="jss46" alt=""/></div></div><div class="MuiBox-root jss59 jss49"><h5 class="MuiTypography-root MuiTypography-h5 MuiTypography-gutterBottom">Community support</h5><p class="MuiTypography-root MuiTypography-body2 MuiTypography-colorTextSecondary">Chat with the community on Slack and Stack Overflow</p></div></div><div class="MuiCardActions-root jss53 MuiCardActions-spacing"><a class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-outlinedSizeSmall MuiButton-sizeSmall" tabindex="0" aria-disabled="false" href="/docs/ecosystem/help"><span class="MuiButton-label">Slack<svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M6.5,14.5c0,1.1-0.9,2-2,2s-2-0.9-2-2s0.9-2,2-2h2V14.5z M7.5,14.5c0-1.1,0.9-2,2-2s2,0.9,2,2v5c0,1.1-0.9,2-2,2s-2-0.9-2-2 C7.5,19.5,7.5,14.5,7.5,14.5z M9.5,6.5c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2v2L9.5,6.5L9.5,6.5z M9.5,7.5c1.1,0,2,0.9,2,2 s-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2s0.9-2,2-2L9.5,7.5L9.5,7.5z M17.5,9.5c0-1.1,0.9-2,2-2s2,0.9,2,2s-0.9,2-2,2h-2V9.5L17.5,9.5z M16.5,9.5c0,1.1-0.9,2-2,2s-2-0.9-2-2v-5c0-1.1,0.9-2,2-2s2,0.9,2,2V9.5L16.5,9.5z M14.5,17.5c1.1,0,2,0.9,2,2s-0.9,2-2,2 s-2-0.9-2-2v-2H14.5z M14.5,16.5c-1.1,0-2-0.9-2-2s0.9-2,2-2h5c1.1,0,2,0.9,2,2s-0.9,2-2,2H14.5z"></path></svg></span></a><a class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-outlinedSizeSmall MuiButton-sizeSmall" tabindex="0" aria-disabled="false" href="/docs/ecosystem/help"><span class="MuiButton-label">Stack Overflow<svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M16.7,14.6l-9.3-2L7,14.5l9.3,1.9L16.7,14.6z M19.1,10.5l-7.3-6.1l-1.2,1.5l7.3,6.1L19.1,10.5z M17.6,12.4L9,8.4l-0.8,1.7 l8.6,4L17.6,12.4z M15.3,1.4l-1.5,1.1l5.6,7.6L21,9L15.3,1.4z M16.3,16.9H6.8v1.9h9.5V16.9z M18.2,20.7H4.9V15H3v7.6h17V15h-1.9 V20.7z"></path></svg></span></a></div></div></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-6"><div class="MuiPaper-root MuiCard-root jss51 MuiPaper-elevation3"><div class="MuiCardContent-root jss52"><div class="MuiBox-root jss60"><div class="jss47"><img src="/static/presentation.svg" class="jss46" alt=""/></div></div><div class="MuiBox-root jss61 jss49"><h5 class="MuiTypography-root MuiTypography-h5 MuiTypography-gutterBottom">Training</h5><p class="MuiTypography-root MuiTypography-body2 MuiTypography-colorTextSecondary">Improve your Mercure skills thanks to our trainings.</p></div></div><div class="MuiCardActions-root jss53 MuiCardActions-spacing"><a class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-outlinedSizeSmall MuiButton-sizeSmall" tabindex="0" aria-disabled="false" href="https://les-tilleuls.coop/en/masterclass/trainings/introduction-to-mercure"><span class="MuiButton-label">Get trained<svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"></path></svg></span></a></div></div></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-6"><div class="MuiPaper-root MuiCard-root jss51 MuiPaper-elevation3"><div class="MuiCardContent-root jss52"><div class="MuiBox-root jss62"><div class="jss47"><img src="/static/laptop-code.svg" class="jss46" alt=""/></div></div><div class="MuiBox-root jss63 jss49"><h5 class="MuiTypography-root MuiTypography-h5 MuiTypography-gutterBottom">Professional services</h5><p class="MuiTypography-root MuiTypography-body2 MuiTypography-colorTextSecondary">Les-Tilleuls.coop provides professional services: web development, trainings or consulting.</p></div></div><div class="MuiCardActions-root jss53 MuiCardActions-spacing"><a class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-outlinedSizeSmall MuiButton-sizeSmall" tabindex="0" aria-disabled="false" href="https://les-tilleuls.coop"><span class="MuiButton-label">Les-Tilleuls.coop<svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"></path></svg></span></a></div></div></div></div></div></div></div></div></section></div><footer class="jss2"><div class="MuiContainer-root MuiContainer-maxWidthLg"><div class="MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-2 MuiGrid-justify-content-xs-space-evenly"><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true"><h6 class="MuiTypography-root MuiTypography-h6 MuiTypography-colorInherit MuiTypography-gutterBottom">Mercure</h6><a class="MuiTypography-root jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="/docs/getting-started">Get Started</a><a class="MuiTypography-root jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="/docs/hub/install">Hub</a><a class="MuiTypography-root jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="/pricing">Managed</a></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true"><h6 class="MuiTypography-root MuiTypography-h6 MuiTypography-colorInherit MuiTypography-gutterBottom">Social</h6><a class="MuiTypography-root MuiLink-root MuiLink-underlineHover jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="https://github.com/dunglas/mercure">GitHub</a><a class="MuiTypography-root MuiLink-root MuiLink-underlineHover jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="https://twitter.com/MercureRealtime">Twitter</a><a class="MuiTypography-root MuiLink-root MuiLink-underlineHover jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="mailto:contact@mercure.rocks">Contact us</a></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true"><h6 class="MuiTypography-root MuiTypography-h6 MuiTypography-colorInherit MuiTypography-gutterBottom">Support</h6><a class="MuiTypography-root MuiLink-root MuiLink-underlineHover jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="https://stats.uptimerobot.com/JzXZqH8Vmz">Systems Status</a><a class="MuiTypography-root jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="/docs/ecosystem/help">Get Help</a><a class="MuiTypography-root MuiLink-root MuiLink-underlineHover jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="https://masterclass.les-tilleuls.coop/en/trainings/discover-mercure">Training</a></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true"><h6 class="MuiTypography-root MuiTypography-h6 MuiTypography-colorInherit MuiTypography-gutterBottom">Legal</h6><a class="MuiTypography-root jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="/legal/privacy-policy">Privacy policy</a><a class="MuiTypography-root jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="/legal/terms-of-use">Terms of use</a><a class="MuiTypography-root jss3 MuiTypography-subtitle1 MuiTypography-colorInherit" href="/legal/security">Security</a></div></div></div></footer></main></div><script defer="" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon="{&quot;token&quot;: &quot;aa985fb99a0345339c60d97333e1af7a&quot;}"></script><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"wJpDtIkZe3rlK3VpPEV7T","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10