Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
a797e26
slider does not work
Mar 31, 2023
7cfc153
svg + buttons
Apr 3, 2023
87b69e2
px to rem
Apr 3, 2023
59046c7
fix for 1366 and 1920
Apr 3, 2023
355461f
Deleted Tailwind
Apr 3, 2023
8b10e6d
fixed font-size
Apr 4, 2023
d14cc74
new landing styles
Apr 23, 2023
5989e84
mobile styles
Apr 24, 2023
1714096
800 - 1200 styles
Apr 25, 2023
92c2af1
fixed mobile and added hovers
Apr 28, 2023
e129635
Merge branch 'main' into gh1-new-landing-page
Apr 28, 2023
9205d92
Fix horizontal overflow
visortelle Apr 29, 2023
456126b
Merge branch 'gh1-new-landing-page' of github.com:tealtools/pulsar-si…
visortelle Apr 29, 2023
c49e386
Used Docusaurus navbar
smoothpie May 6, 2023
ec710d3
Used Docusaurus footer
smoothpie May 6, 2023
670683e
Improved styles
smoothpie May 6, 2023
39a0d81
Minor changes
visortelle May 7, 2023
dac020f
Get rid of tailwind in BlockLink component
visortelle May 7, 2023
86b38df
Move some components to the ui dir
visortelle May 7, 2023
a048f5a
Reimplement ecosystem page
visortelle May 7, 2023
298f1d8
Adjust typography and styles
visortelle May 7, 2023
cd35cef
Animation perf tweaks
visortelle May 7, 2023
ba1f795
Ecosystem and case-studies pages
visortelle May 7, 2023
40f9e7e
Style adjustements
visortelle May 7, 2023
6df9cce
Reimplement events page
visortelle May 7, 2023
b3f907e
Cleanup
visortelle May 7, 2023
6e784de
Reimplement resource page
visortelle May 7, 2023
92a6491
Set right links at the homepage
visortelle May 7, 2023
546379d
Fix build
visortelle May 7, 2023
440e0d1
Merge the main branch
visortelle May 7, 2023
02c9096
Fix build
visortelle May 7, 2023
293f349
pulsar-users changed size
May 8, 2023
5693834
Better formating for What is Pulsar section
visortelle May 8, 2023
40e0c9e
Fix active navbar items highlighting
visortelle May 8, 2023
b8b423c
Less blue color on the Resources page
visortelle May 8, 2023
a697cf1
Fixes for mobile
visortelle May 8, 2023
eaeb12d
Static background for Firefox (#4)
gibloor May 13, 2023
73af67f
Fixed mobile version pulsar features (#5)
gibloor May 13, 2023
3d6d967
Fix powered by page (#3)
gibloor May 13, 2023
120e412
Fix Download button on mobile
visortelle May 13, 2023
e621604
Bigger home page font sizes for mobile
visortelle May 13, 2023
99e2a8a
Flat searchbar buttons
visortelle May 13, 2023
5e91da1
Fix slider buttons position in Firefox
visortelle May 13, 2023
344a09f
Make community page look more-less ok
visortelle May 13, 2023
c5122d9
Fix build
visortelle May 13, 2023
39c0593
Fix build
visortelle May 13, 2023
1f9877d
Otherwise VSCode fails to start TS LSP server
visortelle May 14, 2023
6d80050
Use static background for home page
visortelle May 14, 2023
880271b
Announcement bar
visortelle May 14, 2023
86bccda
Adjust styles for mobile devices
visortelle May 14, 2023
df6da33
Minor mobile fixes
visortelle May 14, 2023
46f41d0
Trigger redeploy
visortelle May 14, 2023
a844848
Use real users testimonials
visortelle May 14, 2023
ca08368
Fix mistake in user testimonials
visortelle May 14, 2023
542cc18
Fix media queries priority in production build
visortelle May 14, 2023
4adf07c
Fix media queries priority in production build
visortelle May 14, 2023
f1bd557
Delete duplicate file
visortelle May 14, 2023
973d0b0
Fix links
visortelle May 14, 2023
b0992d4
Make docs navbar items less bold
visortelle May 14, 2023
e4b4850
Fix Features slider on mobile
visortelle May 14, 2023
f1ecf67
Reimplement the community page
visortelle May 14, 2023
1195209
Remove unused components
visortelle May 14, 2023
14cc253
Make the whole announcement bar clickable
visortelle May 14, 2023
041ad11
Make the whole announcement bar clickable
visortelle May 14, 2023
52ef249
Apply default page styles to the Download page
visortelle May 14, 2023
62d5978
Align blog page content with navbar
visortelle May 14, 2023
ea3440b
Merge main
visortelle May 15, 2023
29b6da1
Merge main
visortelle May 15, 2023
38f2abf
Trigger redeploy
visortelle May 15, 2023
6c21d18
Fixed the Contribute page
visortelle May 15, 2023
ea0464f
Fix client-feature-matrix tables height
visortelle May 15, 2023
1fd9c4a
Get rid of unnecessary scrollbar
visortelle May 15, 2023
b127f9d
Exclude large dirs in tsconfig.json
visortelle May 15, 2023
8d14d05
Client feature matrix - Fix column overlap with content when scroll t…
visortelle May 15, 2023
3b1c420
Fix build
visortelle May 15, 2023
b0d0f02
Maybe fix build
visortelle May 15, 2023
c56c37d
Trigger redeploy
visortelle May 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion client-feature-matrix/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,7 @@ import {

<Matrix data={consumer} name="consumer" />

See details and full version [here](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit?usp=sharing)
<br />
<br />

See details and full version [here](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit?usp=sharing)
250 changes: 30 additions & 220 deletions src/pages/case-studies.js → data/case-studies.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,32 @@
import React, { useState } from "react";
import Layout from "@theme/Layout";
import CaseStudyCards from "../components/CaseStudyCards";
import PropTypes from 'prop-types';
import Select, { selectClasses } from '@mui/base/Select';
import Option, { optionClasses } from '@mui/base/Option';
import Popper from '@mui/base/Popper';
import { styled } from '@mui/system';
const csObj =
export const categories = [
'financial_services',
'healthcare',
'software_it',
'telecom',
'retail',
'transportation_logistics',
'apparel_manufacturing'
] as const;
export type Category = typeof categories[number];

export const categoryLabels: Record<Category, string> = {
financial_services: 'Financial Services',
healthcare: 'Healthcare',
software_it: 'Software & IT',
telecom: 'Telecom',
retail: 'Retail',
transportation_logistics: 'Transportation & Logistics',
apparel_manufacturing: 'Apparel Manufacturing'
};

export type Resource = {
company: string;
link: string;
image: string;
description: string;
};

export const resources: Record<Category, Resource[]> =
{

financial_services: [
Expand Down Expand Up @@ -273,7 +293,7 @@ const csObj =
description: "Keytop redesigned its messaging system by using Apache Pulsar as the backbone of its architecture. Its geo-replication feature helps Keytop securely store mission-critical data across multiple data centers."
},
],
apprel_manufacturing: [
apparel_manufacturing: [
{
company: "Dada Group",
link: 'https://www.youtube.com/watch?v=F402mUTmOIc',
Expand All @@ -282,214 +302,4 @@ const csObj =
},
]

};

let allArr = [];
Object.keys(csObj).forEach(key => {
allArr = [...allArr, ...csObj[key]];
});

const blue = {
100: '#DAECFF',
200: '#99CCF3',
400: '#3399FF',
500: '#007FFF',
600: '#0072E5',
900: '#003A75',
};

const grey = {
100: '#E7EBF0',
200: '#E0E3E7',
300: '#CDD2D7',
400: '#B2BAC2',
500: '#A0AAB4',
600: '#6F7E8C',
700: '#3E5060',
800: '#2D3843',
900: '#1A2027',
};

const StyledButton = styled('button')(
({ theme }) => `
font-family: IBM Plex Sans, sans-serif;
font-size: 0.875rem;
box-sizing: border-box;
min-height: calc(1.5em + 22px);
min-width: 320px;
background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'};
border: 1px solid ${theme.palette.mode === 'dark' ? grey[800] : grey[300]};
border-radius: 0.75em;
margin-top: 0.5em;
padding: 10px;
text-align: left;
line-height: 1.5;
color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};

&:hover {
background: ${theme.palette.mode === 'dark' ? '' : grey[100]};
border-color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
}

&.${selectClasses.focusVisible} {
outline: 3px solid ${theme.palette.mode === 'dark' ? blue[600] : blue[100]};
}

&.${selectClasses.expanded} {
&::after {
content: '▴';
}
}

&::after {
content: '▾';
float: right;
}
`,
);

const StyledListbox = styled('ul')(
({ theme }) => `
font-family: IBM Plex Sans, sans-serif;
font-size: 0.875rem;
box-sizing: border-box;
padding: 5px;
margin: 10px 0;
min-width: 320px;
background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'};
border: 1px solid ${theme.palette.mode === 'dark' ? grey[800] : grey[300]};
border-radius: 0.75em;
color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
overflow: auto;
outline: 0px;
`,
);

const StyledOption = styled(Option)(
({ theme }) => `
list-style: none;
padding: 8px;
border-radius: 0.45em;
cursor: default;

&:last-of-type {
border-bottom: none;
}

&.${optionClasses.selected} {
background-color: ${theme.palette.mode === 'dark' ? blue[900] : blue[100]};
color: ${theme.palette.mode === 'dark' ? blue[100] : blue[900]};
}

&.${optionClasses.highlighted} {
background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
}

&.${optionClasses.highlighted}.${optionClasses.selected} {
background-color: ${theme.palette.mode === 'dark' ? blue[900] : blue[100]};
color: ${theme.palette.mode === 'dark' ? blue[100] : blue[900]};
}

&.${optionClasses.disabled} {
color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
}

&:hover:not(.${optionClasses.disabled}) {
background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
}
`,
);

const StyledPopper = styled(Popper)`
z-index: 10;
`;

const Paragraph = styled('p')(
({ theme }) => `
font-family: IBM Plex Sans, sans-serif;
font-size: 0.875rem;
margin: 10px 0;
color: ${theme.palette.mode === 'dark' ? grey[400] : grey[700]};
`,
);

function CustomSelect(props) {
const components = {
Root: StyledButton,
Listbox: StyledListbox,
Popper: StyledPopper,
...props.components,
};

return <Select {...props} components={components} />;
}

CustomSelect.propTypes = {
/**
* The components used for each slot inside the Select.
* Either a string to use a HTML element or a component.
* @default {}
*/
components: PropTypes.shape({
Listbox: PropTypes.elementType,
Popper: PropTypes.func,
Root: PropTypes.elementType,
}),
};


export default function CaseStudies() {
const [value, setValue] = React.useState(0);
const [searchString, setSearch] = useState('');
return (
<Layout
title={`Case Studies`}
description="Pulsar Case Stdies"
>
<div className="page-wrap tailwind">
<section className="hero">
<div className="inner text--left">
<div className="row">
<div className="col col--8">
<h1>Case Studies</h1>
<p>Organizations around the globe rely on Apache Pulsar to manage their most demanding real-time requirements.</p>

</div>
</div>
</div>
</section>
<section className="main-content waves-bg pt-12 pb-48 mb-24">
<div className="block text--center tabs-bar py-8 px-4">
</div>
<form className="search-form relative z10 text--center">
<div className="my-12 relative z-5">
<div className="ml-2 px-2">
<CustomSelect className="inline-block px-4 cursor-pointer ml-4 underline-offset-1 text-sm" name="search" defaultValue={0} value={value} onChange={setValue}>
<StyledOption value={0}>Filter by Industry</StyledOption>
<StyledOption value={1}>Healthcare</StyledOption>
<StyledOption value={2}>Financial Services</StyledOption>
<StyledOption value={3}>Retail</StyledOption>
<StyledOption value={4}>Software/IT</StyledOption>
<StyledOption value={5}>Telecom</StyledOption>
<StyledOption value={6}>Transportation/Logistics</StyledOption>
</CustomSelect>
<input type="text" placeholder="Search" className="ml-2 px-2" name="search" value={searchString} onChange={e => setSearch(e.target.value)} />
<Paragraph>
{value == 0 && <CaseStudyCards search={searchString} cards={allArr} />}
{value == 1 && <CaseStudyCards search={searchString} cards={csObj.healthcare} />}
{value == 2 && <CaseStudyCards search={searchString} cards={csObj.financial_services} />}
{value == 3 && <CaseStudyCards search={searchString} cards={csObj.retail} />}
{value == 4 && <CaseStudyCards search={searchString} cards={csObj.software_it} />}
{value == 5 && <CaseStudyCards search={searchString} cards={csObj.telecom} />}
{value == 6 && <CaseStudyCards search={searchString} cards={csObj.transportation_logistics} />}
</Paragraph>
</div>
</div>
</form>
</section>
</div>
</Layout>
);
}
38 changes: 37 additions & 1 deletion data/ecosystem.js → data/ecosystem.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,40 @@
module.exports = {
export const categories = [
'client_api',
'client_wrapper',
'database_integration',
'io',
'logging',
'observability',
'protocol_handlers',
'search_and_query',
'security_plugins',
'stream_processing',
'tools'
] as const;
export type Category = typeof categories[number];

export const categoryLabels: Record<Category, string> = {
client_api: 'Client API',
client_wrapper: 'Client Wrapper',
database_integration: 'Database Integration',
io: 'IO',
logging: 'Logging',
observability: 'Observability',
protocol_handlers: 'Protocol Handlers',
search_and_query: 'Search and Query',
security_plugins: 'Security Plugins',
stream_processing: 'Stream Processing',
tools: 'Tools'
};

export type Resource = {
name: string;
description: string;
link: string;
source_or_sink: string;
};

export const resources: Record<Category, Resource[]> = {
client_api: [
{
name: 'Starlight for JMS',
Expand Down
26 changes: 24 additions & 2 deletions data/events.js → data/events.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,26 @@
module.exports = {
export const categories = [
'events',
'meetups',
'playlists',
] as const;
export type Category = typeof categories[number];

export const categoryLabels: Record<Category, string> = {
events: 'Events',
meetups: 'Meetups',
playlists: 'Playlists',
};

export type Resource = {
title: string;
description: string;
link: string;
previewImg?: string;
displayDate?: string;
startDate?: string;
};

export const resources: Record<Category, Resource[]> = {
events: [
{
title: 'Pulsar Summit San Francisco 2022',
Expand Down Expand Up @@ -117,4 +139,4 @@ module.exports = {
},
]
}

Loading