36 | )}
37 | >
38 | );
39 | }
40 |
--------------------------------------------------------------------------------
/components/conf-container.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .container {
18 | margin: auto 0;
19 | padding: 0 var(--space-4x);
20 | }
21 |
22 | @media (min-width: 768px) {
23 | .container {
24 | margin: auto;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/components/conf-container.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import styles from './conf-container.module.css';
18 |
19 | export default function ConfContainer({ children }: { children: React.ReactNode }) {
20 | return
{children}
;
21 | }
22 |
--------------------------------------------------------------------------------
/components/contact.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .contact {
18 | text-align: center;
19 | color: var(--secondary-color);
20 | margin-bottom: var(--space-12x);
21 | }
22 |
23 | .contact-email {
24 | color: #fff;
25 | }
26 |
27 | .contact-email:hover {
28 | text-decoration: underline;
29 | color: #fff;
30 | }
31 |
--------------------------------------------------------------------------------
/components/event-description.module.css:
--------------------------------------------------------------------------------
1 | .container {
2 | max-width: 800px;
3 | color: var(--secondary-color);
4 | margin-bottom: var(--space-12x);
5 | margin: auto auto 30px;
6 | }
7 |
8 | .header {
9 | font-size: 42px;
10 | line-height: 1.15;
11 | font-weight: 700;
12 | color: #fff;
13 | }
14 |
--------------------------------------------------------------------------------
/components/header.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .hero {
18 | font-size: 28px;
19 | line-height: 1;
20 | letter-spacing: -0.05em;
21 | font-weight: 800;
22 | margin: var(--space-8x) 24px var(--space-2x);
23 | }
24 |
25 | .description {
26 | font-size: var(--text-md);
27 | line-height: 1.4;
28 | color: var(--secondary-color);
29 | margin-top: 0;
30 | margin-left: 24px;
31 | }
32 |
33 | @media (min-width: 768px) {
34 | .hero {
35 | font-size: 40px;
36 | margin: var(--space-16x) var(--space-8x) var(--space-4x);
37 | }
38 |
39 | .description {
40 | margin-left: var(--space-8x);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/components/header.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import styles from './header.module.css';
18 |
19 | type Props = {
20 | hero: React.ReactNode;
21 | description: React.ReactNode;
22 | };
23 |
24 | export default function Header({ hero, description }: Props) {
25 | return (
26 | <>
27 |
{hero}
28 |
{description}
29 | >
30 | );
31 | }
32 |
--------------------------------------------------------------------------------
/components/hero.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .wrapper {
18 | margin-top: var(--space-12x);
19 | }
20 |
21 | .hero {
22 | font-size: 52px;
23 | line-height: 1.15;
24 | letter-spacing: -0.05em;
25 | font-weight: 700;
26 | text-align: center;
27 | margin: 0 0 25px;
28 | }
29 |
30 | .info {
31 | font-size: 20px;
32 | line-height: 1.4;
33 | text-transform: uppercase;
34 | display: flex;
35 | justify-content: center;
36 | align-items: center;
37 | margin-bottom: var(--space-8x);
38 | color: var(--brand);
39 | }
40 |
41 | .description {
42 | font-weight: 400;
43 | font-size: 20px;
44 | line-height: 1.4;
45 | text-align: center;
46 | margin: auto auto 30px;
47 | color: var(--secondary-color);
48 | max-width: 355px;
49 | }
50 |
51 | .description-separator {
52 | height: 24px;
53 | width: 1px;
54 | background: var(--secondary-color);
55 | margin: 0 var(--space-4x);
56 | }
57 |
58 | .info :global(p) {
59 | margin: 0;
60 | }
61 |
62 | @media (min-width: 768px) {
63 | .hero {
64 | font-size: 100px;
65 | line-height: 1;
66 | font-weight: 800;
67 | margin: 0 0px 40px;
68 | }
69 |
70 | .info {
71 | font-size: 24px;
72 | margin-bottom: 80px;
73 | }
74 |
75 | .description {
76 | font-size: var(--space-8x);
77 | max-width: 531px;
78 | margin: 40px auto;
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/components/hero.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import cn from 'classnames';
18 | import styleUtils from './utils.module.css';
19 | import styles from './hero.module.css';
20 | import { BRAND_NAME, DATE, SITE_DESCRIPTION } from '@lib/constants';
21 |
22 | export default function Hero() {
23 | return (
24 |
25 |
33 | {SITE_DESCRIPTION}
34 |
35 |
36 | {BRAND_NAME} Conference
37 |
38 |
46 | {SITE_DESCRIPTION}
47 |
48 |
49 |
{DATE}
50 |
51 |
52 | Online
53 |
54 |
55 |
56 | );
57 | }
58 |
--------------------------------------------------------------------------------
/components/icons/icon-add-calendar.tsx:
--------------------------------------------------------------------------------
1 | export default function IconAddCalendar() {
2 | return (
3 |
13 | );
14 | }
15 |
--------------------------------------------------------------------------------
/components/icons/icon-check.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | type Props = {
18 | color: string;
19 | size: number;
20 | };
21 |
22 | export default function IconCheck({ color, size }: Props) {
23 | return (
24 |
32 | );
33 | }
34 |
--------------------------------------------------------------------------------
/components/icons/icon-copy.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | export default function IconCopy() {
18 | return (
19 |
28 | );
29 | }
30 |
--------------------------------------------------------------------------------
/components/icons/icon-download.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import cn from 'classnames';
18 | import styles from './icon-transition.module.css';
19 |
20 | type Props = { width: number | string };
21 |
22 | export default function IconDownload({ width }: Props) {
23 | return (
24 |
47 | );
48 | }
49 |
--------------------------------------------------------------------------------
/components/icons/icon-linkedin.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import styles from './icon-transition.module.css';
18 |
19 | type Props = { width: number | string };
20 |
21 | export default function IconLinkedin({ width }: Props) {
22 | return (
23 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/components/icons/icon-platform.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | type Props = { color: string; height?: number | string };
18 |
19 | export default function PlatformLogo({ color, height = 20 }: Props) {
20 | return (
21 |
27 | );
28 | }
29 |
--------------------------------------------------------------------------------
/components/icons/icon-transition.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .fill-black {
18 | fill: black;
19 | transition: stroke fill 0.2s ease;
20 | }
21 |
22 | .stroke-black {
23 | stroke: black;
24 | transition: stroke fill 0.2s ease;
25 | }
26 |
27 | .stroke-white {
28 | stroke: #fff;
29 | transition: stroke fill 0.2s ease;
30 | }
31 |
32 | :global(.icon-button:hover) .fill-black,
33 | :global(.icon-button:focus) .fill-black {
34 | fill: #fff;
35 | transition: stroke fill 0.2s ease;
36 | }
37 |
38 | :global(.icon-button:hover) .stroke-black,
39 | :global(.icon-button:focus) .stroke-black {
40 | stroke: #fff;
41 | transition: stroke fill 0.2s ease;
42 | }
43 |
44 | :global(.icon-button:hover) .stroke-white,
45 | :global(.icon-button:focus) .stroke-white {
46 | stroke: black;
47 | transition: stroke fill 0.2s ease;
48 | }
49 |
--------------------------------------------------------------------------------
/components/icons/icon-twitter.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import styles from './icon-transition.module.css';
18 |
19 | type Props = { width: number | string };
20 |
21 | export default function IconTwitter({ width }: Props) {
22 | return (
23 |
29 | );
30 | }
31 |
--------------------------------------------------------------------------------
/components/learn-more.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import cn from 'classnames';
18 | import styleUtils from './utils.module.css';
19 | import styles from './contact.module.css';
20 | import { CODE_OF_CONDUCT } from '@lib/constants';
21 |
22 | export default function LearnMore() {
23 | // copy here to learn more or put below the hero if necessary.
24 | return (
25 |
35 | );
36 | }
37 |
--------------------------------------------------------------------------------
/components/loading-dots.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .loading {
18 | display: inline-flex;
19 | align-items: center;
20 | --loading-dots-height: auto;
21 | --loading-dots-size: 2px;
22 | height: var(--loading-dots-height);
23 | }
24 |
25 | .loading .spacer {
26 | margin-right: var(--space-3x);
27 | }
28 |
29 | .loading span {
30 | animation-name: blink;
31 | animation-duration: 1.4s;
32 | animation-iteration-count: infinite;
33 | animation-fill-mode: both;
34 | width: var(--loading-dots-size);
35 | height: var(--loading-dots-size);
36 | border-radius: 50%;
37 | background-color: var(--accents-6);
38 | display: inline-block;
39 | margin: 0 1px;
40 | }
41 |
42 | .loading.reverse span {
43 | background-color: var(--accents-2);
44 | }
45 |
46 | .loading span:nth-of-type(2) {
47 | animation-delay: 0.2s;
48 | }
49 |
50 | .loading span:nth-of-type(3) {
51 | animation-delay: 0.4s;
52 | }
53 |
54 | @keyframes blink {
55 | 0% {
56 | opacity: 0.2;
57 | }
58 | 20% {
59 | opacity: 1;
60 | }
61 | 100% {
62 | opacity: 0.2;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/components/loading-dots.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import px from '@lib/to-pixels';
18 | import cn from 'classnames';
19 | import styles from './loading-dots.module.css';
20 |
21 | interface Props {
22 | size?: number;
23 | height?: number | string;
24 | reverse?: boolean;
25 | children?: React.ReactNode;
26 | }
27 |
28 | export default function LoadingDots({ size = 2, height, children, reverse }: Props) {
29 | return (
30 |
37 | {children &&
{children}
}
38 |
39 |
40 |
41 |
42 | );
43 | };
44 |
--------------------------------------------------------------------------------
/components/logo.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .logo {
18 | display: flex;
19 | align-items: center;
20 | }
21 |
22 | .icon {
23 | margin-right: var(--space-3x);
24 | display: flex;
25 | width: 3em;
26 | }
27 |
28 | .text {
29 | line-height: 1.15;
30 | font-size: 1.25em;
31 | text-transform: uppercase;
32 | font-weight: bold;
33 | }
34 |
35 | .text-secondary {
36 | color: var(--color);
37 | }
38 |
--------------------------------------------------------------------------------
/components/logo.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import IconLogo from './icons/icon-logo';
18 | import styles from './logo.module.css';
19 | import { SITE_NAME_MULTILINE } from '@lib/constants';
20 |
21 | export default function Logo({ textSecondaryColor = 'var(--accents-5)' }) {
22 | return (
23 |
24 |
25 |
26 |
27 |
28 |
{SITE_NAME_MULTILINE[0]}
29 |
33 | {SITE_NAME_MULTILINE[1]}
34 |
35 |
36 |
37 | );
38 | }
39 |
--------------------------------------------------------------------------------
/components/mobile-menu.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .nav-overlay {
18 | position: fixed;
19 | z-index: 100;
20 | top: 72px;
21 | left: 0;
22 | right: 0;
23 | bottom: 0;
24 | background: black;
25 | display: flex;
26 | align-items: center;
27 | justify-content: center;
28 | }
29 |
30 | .nav {
31 | margin: auto;
32 | display: flex;
33 | flex-direction: column;
34 | align-items: center;
35 | }
36 |
37 | .nav-item {
38 | font-size: var(--space-8x);
39 | letter-spacing: -0.05em;
40 | font-weight: 800;
41 | color: #fff;
42 | margin-bottom: var(--space-4x);
43 | line-height: 1.5;
44 | width: fit-content;
45 | }
46 |
47 | .nav-item:focus {
48 | outline: 1px dotted #fff;
49 | }
50 |
51 | .nav-active {
52 | color: #fff;
53 | background: linear-gradient(90deg, var(--brand), var(--brand)) left bottom transparent no-repeat;
54 | background-size: 100% 2px;
55 | }
56 |
57 | .button {
58 | margin: 0;
59 | margin-right: var(--space-4x);
60 | background: none;
61 | border: none;
62 | cursor: pointer;
63 | }
64 |
65 | .icon {
66 | color: #fff;
67 | display: block;
68 | }
69 |
70 | @media (min-width: 1032px) {
71 | .button {
72 | display: none;
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/components/nprogress.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import NProgress from 'nprogress';
18 | import { useRouter } from 'next/router';
19 | import { useEffect } from 'react';
20 |
21 | export default function Progress() {
22 | const router = useRouter();
23 |
24 | useEffect(() => {
25 | let timeout: NodeJS.Timeout;
26 |
27 | const start = () => {
28 | timeout = setTimeout(NProgress.start, 100);
29 | };
30 |
31 | const done = () => {
32 | clearTimeout(timeout);
33 | NProgress.done();
34 | };
35 |
36 | router.events.on('routeChangeStart', start);
37 | router.events.on('routeChangeComplete', done);
38 | router.events.on('routeChangeError', done);
39 | return () => {
40 | router.events.off('routeChangeStart', start);
41 | router.events.off('routeChangeComplete', done);
42 | router.events.off('routeChangeError', done);
43 | };
44 | }, []);
45 | return <>>;
46 | }
47 |
--------------------------------------------------------------------------------
/components/pipeline.module.css:
--------------------------------------------------------------------------------
1 | .pipeline {
2 | text-align: center;
3 | color: var(--secondary-color);
4 | margin-bottom: var(--space-12x);
5 | padding-top: 20px;
6 | }
7 |
8 | .image {
9 | border-radius: var(--space-2x);
10 | }
11 |
--------------------------------------------------------------------------------
/components/pipeline.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import cn from 'classnames';
18 | import styleUtils from './utils.module.css';
19 | import styles from './pipeline.module.css';
20 | import Image from 'next/image';
21 |
22 | export default function Pipeline() {
23 | return (
24 |
25 |
26 |
35 |
36 |
37 | );
38 | }
39 |
--------------------------------------------------------------------------------
/components/resize-handler.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { useEffect } from 'react';
18 |
19 | function calcVh() {
20 | document.documentElement.style.setProperty('--100vh', window.innerHeight + 'px');
21 | }
22 |
23 | /**
24 | * Fix iOS 100vh bug (Unlike PostCSS-based solutions,
25 | * this JS-based solution allows var(--100vh) to be used inside calc())
26 | */
27 | export default function ResizeHandler() {
28 | useEffect(() => {
29 | window.addEventListener('resize', calcVh);
30 | calcVh();
31 | return () => {
32 | window.removeEventListener('resize', calcVh);
33 | };
34 | }, []);
35 | return <>>;
36 | }
37 |
--------------------------------------------------------------------------------
/components/schedule-sidebar.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .schedule {
18 | width: 100%;
19 | background: var(--sidebar);
20 | padding: var(--space-8x) var(--space-4x) var(--space-16x);
21 | color: var(--secondary-color);
22 | font-size: 14px;
23 | min-height: 1px;
24 | height: 40vh;
25 | max-height: calc(var(--100vh) - var(--header-height) - 400px);
26 | overflow-y: auto;
27 | -webkit-overflow-scrolling: touch;
28 | --talk-card-width: 100%;
29 | }
30 |
31 | .schedule::-webkit-scrollbar {
32 | display: none;
33 | }
34 |
35 | .header {
36 | font-size: 24px;
37 | color: #fff;
38 | line-height: 1.15;
39 | letter-spacing: -0.05em;
40 | font-weight: 800;
41 | }
42 |
43 | .talks {
44 | margin-top: var(--space-4x);
45 | display: flex;
46 | flex-direction: column;
47 | overflow-y: scroll;
48 | -webkit-overflow-scrolling: touch;
49 | -ms-overflow-style: none;
50 | scrollbar-width: none;
51 | }
52 |
53 | .talks::-webkit-scrollbar {
54 | display: none;
55 | }
56 |
57 | @media screen and (min-width: 1032px) {
58 | .schedule {
59 | height: unset;
60 | min-height: 340px;
61 | max-width: 303px;
62 | max-height: calc(var(--100vh) - var(--header-height));
63 | --talk-card-width: unset;
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/components/select.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import cn from 'classnames';
18 | import styles from './select.module.css';
19 |
20 | export default function Select({ className, ...props }: JSX.IntrinsicElements['select']) {
21 | return (
22 |
23 |
24 |
25 |
38 |
39 |
40 | );
41 | }
42 |
--------------------------------------------------------------------------------
/components/ticket-colored-mobile.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | export default function TicketColoredMobile() {
18 | return (
19 |
40 | );
41 | }
42 |
--------------------------------------------------------------------------------
/components/ticket-colored.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | export default function TicketColored() {
18 | return (
19 |
40 | );
41 | }
42 |
--------------------------------------------------------------------------------
/components/ticket-form.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .githubIcon {
18 | margin-left: 12px;
19 | margin-right: var(--space-4x);
20 | display: inline-flex;
21 | }
22 |
23 | .checkIcon {
24 | position: absolute;
25 | right: var(--space-4x);
26 | display: inline-flex;
27 | }
28 |
29 | .generateWithGithub {
30 | display: flex;
31 | align-items: center;
32 | font-weight: 500;
33 | }
34 |
35 | .form-row {
36 | margin-left: auto;
37 | margin-right: auto;
38 | max-width: 400px;
39 | }
40 |
41 | .description {
42 | color: var(--secondary-color);
43 | margin: 0;
44 | text-align: center;
45 | }
46 |
47 | @media (min-width: 768px) {
48 | .form-row {
49 | margin-bottom: 20px;
50 | }
51 | }
52 |
53 | @media (min-width: 1200px) {
54 | .form-row {
55 | margin: 0;
56 | }
57 |
58 | .description {
59 | text-align: left;
60 | }
61 |
62 | .generateWithGithub {
63 | width: 100%;
64 | }
65 | }
66 |
67 | .learn-more {
68 | color: #fff;
69 | }
70 |
71 | .learn-more:hover {
72 | text-decoration: underline;
73 | color: #fff;
74 | }
75 |
--------------------------------------------------------------------------------
/components/ticket-image.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .background {
18 | width: 2000px;
19 | height: 1000px;
20 | background: #000;
21 | color: #fff;
22 | overflow: hidden;
23 | display: flex;
24 | align-items: center;
25 | justify-content: center;
26 | }
27 |
28 | .page {
29 | width: 1700px;
30 | font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu',
31 | 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Noto Sans', 'Noto Sans JP',
32 | 'Noto Sans KR', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans HK', sans-serif;
33 | }
34 |
--------------------------------------------------------------------------------
/components/ticket-info.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | @media (min-width: 768px) {
18 | .info {
19 | display: grid;
20 | grid-template-columns: 1fr 2fr;
21 | gap: calc(var(--space-4x) * var(--size));
22 | font-size: calc(1em * var(--size));
23 | }
24 | }
25 |
26 | .logo {
27 | margin-bottom: var(--space-6x);
28 | font-size: 18px;
29 | }
30 |
31 | @media (min-width: 768px) {
32 | .logo {
33 | margin-bottom: 0;
34 | font-size: calc(16px * var(--size));
35 | }
36 | }
37 |
38 | .date {
39 | text-transform: uppercase;
40 | font-size: calc(20px * var(--size));
41 | line-height: 1.15;
42 | margin-bottom: var(--space-4x);
43 | }
44 |
45 | @media (min-width: 768px) {
46 | .date {
47 | margin-bottom: 0;
48 | }
49 | }
50 |
51 | .created-by {
52 | display: flex;
53 | align-items: center;
54 | color: var(--accents-4);
55 | }
56 |
57 | @media (min-width: 768px) {
58 | .created-by {
59 | margin-right: var(--space-4x);
60 | }
61 | }
62 |
63 | .created-by-text {
64 | white-space: nowrap;
65 | margin-right: var(--space);
66 | }
67 |
68 | .created-by-logo {
69 | height: calc(16px * var(--size));
70 | display: inline-flex;
71 | }
72 |
73 | .url {
74 | color: var(--accents-4);
75 | margin-bottom: var(--space-12x);
76 | }
77 |
78 | @media (min-width: 768px) {
79 | .url {
80 | margin-bottom: 0;
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/components/ticket-info.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import styles from './ticket-info.module.css';
18 | import styleUtils from './utils.module.css';
19 | import Logo from './logo';
20 | import { DATE, SITE_URL } from '@lib/constants';
21 |
22 | const siteUrl = new URL(SITE_URL);
23 | const siteUrlForTicket = `${siteUrl.host}${siteUrl.pathname}`.replace(/\/$/, '');
24 |
25 | export default function TicketInfo({ logoTextSecondaryColor = 'var(--accents-5)' }) {
26 | return (
27 |
28 |
29 |
30 |
31 |
32 |
{DATE}
33 |
ONLINE
34 |
35 |
{siteUrlForTicket}
36 |
37 | );
38 | }
39 |
--------------------------------------------------------------------------------
/components/ticket-mono.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | export default function TicketMono() {
18 | return (
19 |
40 | );
41 | }
42 |
--------------------------------------------------------------------------------
/components/ticket-number.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | type Props = {
18 | number: number;
19 | };
20 |
21 | export default function TicketNumber({ number }: Props) {
22 | const numDigits = `${number}`.length;
23 | const prefix = `000000`.slice(numDigits);
24 | return (
25 | <>
26 | № {prefix}
27 | {number}
28 | >
29 | );
30 | }
31 |
--------------------------------------------------------------------------------
/components/utils.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .appear {
18 | opacity: 0;
19 | animation: appear 0.8s cubic-bezier(0.1, 0, 0.175, 1) forwards;
20 | }
21 |
22 | .appear-first {
23 | animation-delay: 0.4s;
24 | }
25 |
26 | .appear-second {
27 | animation-delay: 0.8s;
28 | }
29 |
30 | .appear-third {
31 | animation-delay: 1.2s;
32 | }
33 |
34 | .appear-fourth {
35 | animation-delay: 1.6s;
36 | }
37 |
38 | .appear-fifth {
39 | animation-delay: 2s;
40 | }
41 |
42 | .appear-sixth {
43 | animation-delay: 2.4s;
44 | }
45 |
46 | @keyframes appear {
47 | to {
48 | opacity: 1;
49 | }
50 | }
51 |
52 | @media (min-width: 1200px) {
53 | .hide-on-desktop {
54 | display: none;
55 | }
56 | }
57 |
58 | .show-on-mobile {
59 | display: block;
60 | }
61 |
62 | .hide-on-mobile {
63 | display: none;
64 | }
65 |
66 | @media (min-width: 768px) {
67 | .show-on-mobile {
68 | display: none;
69 | }
70 |
71 | .hide-on-mobile {
72 | display: block;
73 | }
74 | }
75 |
76 | .hide-on-tablet {
77 | display: block;
78 | }
79 |
80 | .show-on-tablet {
81 | display: none;
82 | }
83 |
84 | @media (max-width: 1199px) and (min-width: 768px) {
85 | .show-on-tablet {
86 | display: block;
87 | }
88 |
89 | .hide-on-tablet {
90 | display: none;
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/components/view-source.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | .svg {
18 | z-index: 10;
19 | position: absolute;
20 | top: 0;
21 | right: 0;
22 | }
23 |
24 | .arm {
25 | transform-origin: 130px 106px;
26 | }
27 |
28 | .svg:hover .arm {
29 | animation: wave 560ms ease-in-out;
30 | }
31 |
32 | @keyframes wave {
33 | 0% {
34 | transform: rotate(0deg);
35 | }
36 |
37 | 20% {
38 | transform: rotate(-25deg);
39 | }
40 |
41 | 40% {
42 | transform: rotate(10deg);
43 | }
44 |
45 | 60% {
46 | transform: rotate(-25deg);
47 | }
48 |
49 | 80% {
50 | transform: rotate(10deg);
51 | }
52 |
53 | 100% {
54 | transform: rotate(0deg);
55 | }
56 | }
57 |
58 | @media (max-width: 500px) {
59 | .svg:hover .arm {
60 | animation: none;
61 | }
62 |
63 | .svg:hover .arm {
64 | animation: wave 560ms ease-in-out;
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/components/view-source.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import styles from './view-source.module.css';
18 | import { REPO } from '@lib/constants';
19 |
20 | export default function ViewSource() {
21 | return (
22 |
39 | );
40 | }
41 |
--------------------------------------------------------------------------------
/datocms.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Open Source Data Stack",
3 | "description": "Building the modern stack with open source data solutions",
4 | "previewImage": "https://www.opensourcedatastack.com/twitter-card.png",
5 | "datocmsProjectId": "37685",
6 | "deploymentType": "vercel",
7 | "buildCommand": "npm run build",
8 | "datocmsApiTokenEnvName": "DATOCMS_READ_ONLY_API_TOKEN",
9 | "livePreviewUrl": "https://www.openstackdatastack.com/"
10 | }
11 |
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/README.md:
--------------------------------------------------------------------------------
1 | # Launching this project with Prismic CMS
2 |
3 | This page will show you how to launch a new Prismic repository with all the default content you need to get started.
4 |
5 | ## Clone the default Prismic repo
6 |
7 | The Prismic command line interface will help get your Prismic repo launched. First install the CLI.
8 |
9 | ```bash
10 | yarn global add prismic-cli
11 | ```
12 |
13 | > Note: make sure to update to least version `3.8.4` of the `prismic-cli` if you already have it installed on your machine.
14 |
15 | Then you can clone the project and launch a Prismic repository.
16 |
17 | ```bash
18 | prismic theme --theme-url https://github.com/vercel/virtual-event-starter-kit/archive/main.zip --conf lib/cms-providers/prismic/README.md --custom-types lib/cms-providers/prismic/custom_types --documents lib/cms-providers/prismic/documents
19 | ```
20 |
21 | Note that you will likely need to log into your Prismic account or signup. After that, the command will download the project files, create a Prismic repository, & install the project dependencies.
22 |
23 | ## Running Locally
24 |
25 | First, set local environment variables in `.env.local.example`.
26 |
27 | ```
28 | cp .env.local.example .env.local
29 | ```
30 |
31 | Then update the environment variables with your Prismic repo ID. Your repo id will the be subdomain of your Prismic repository. For example if your repo url is https://your-repo-name.prismic.io, then you would update your `.env.local` file as follows:
32 |
33 | ```
34 | PRISMIC_REPO_ID=your-repo-name
35 | ```
36 |
37 | Next at the top of the file, make sure to remove the the value from `DATOCMS_READ_ONLY_API_TOKEN`. The project won't source the content from Prismic until this has been done.
38 |
39 | ```
40 | DATOCMS_READ_ONLY_API_TOKEN=
41 | ```
42 |
43 | From the root of the project, run the development server:
44 |
45 | ```bash
46 | yarn dev
47 | ```
48 |
49 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
50 |
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/custom_types/index.json:
--------------------------------------------------------------------------------
1 | [{
2 | "id": "speaker",
3 | "name": "Speaker",
4 | "repeatable": true,
5 | "value": "speaker.json"
6 | }, {
7 | "id": "company",
8 | "name": "Company",
9 | "repeatable": true,
10 | "value": "company.json"
11 | }, {
12 | "id": "stage",
13 | "name": "Stage",
14 | "repeatable": true,
15 | "value": "stage.json"
16 | }, {
17 | "id": "talk",
18 | "name": "Talk",
19 | "repeatable": true,
20 | "value": "talk.json"
21 | }, {
22 | "id": "job",
23 | "name": "Job",
24 | "repeatable": true,
25 | "value": "job.json"
26 | }]
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/custom_types/job.json:
--------------------------------------------------------------------------------
1 | {
2 | "Main" : {
3 | "title" : {
4 | "type" : "StructuredText",
5 | "config" : {
6 | "single" : "heading1",
7 | "label" : "Title",
8 | "placeholder" : "Job title"
9 | }
10 | },
11 | "company_name" : {
12 | "type" : "StructuredText",
13 | "config" : {
14 | "single" : "heading4",
15 | "label" : "Company Name",
16 | "placeholder" : "Company name"
17 | }
18 | },
19 | "description" : {
20 | "type" : "StructuredText",
21 | "config" : {
22 | "multi" : "paragraph",
23 | "label" : "Description",
24 | "placeholder" : "Job description"
25 | }
26 | },
27 | "link" : {
28 | "type" : "Link",
29 | "config" : {
30 | "label" : "Link",
31 | "select" : "web"
32 | }
33 | },
34 | "discord" : {
35 | "type" : "Link",
36 | "config" : {
37 | "label" : "Discord",
38 | "select" : "web"
39 | }
40 | },
41 | "rank" : {
42 | "type" : "Number",
43 | "config" : {
44 | "label" : "Rank"
45 | }
46 | }
47 | }
48 | }
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/custom_types/speaker.json:
--------------------------------------------------------------------------------
1 | {
2 | "Main" : {
3 | "uid" : {
4 | "type" : "UID",
5 | "config" : {
6 | "label" : "Slug",
7 | "placeholder" : "URL slug"
8 | }
9 | },
10 | "name" : {
11 | "type" : "StructuredText",
12 | "config" : {
13 | "single" : "heading1",
14 | "label" : "Name",
15 | "placeholder" : "Speaker's name"
16 | }
17 | },
18 | "image" : {
19 | "type" : "Image",
20 | "config" : {
21 | "constraint" : {
22 | "width" : 300,
23 | "height" : 400
24 | },
25 | "thumbnails" : [ ],
26 | "label" : "Image"
27 | }
28 | },
29 | "title" : {
30 | "type" : "StructuredText",
31 | "config" : {
32 | "single" : "heading4",
33 | "label" : "Title",
34 | "placeholder" : "Role"
35 | }
36 | },
37 | "company" : {
38 | "type" : "StructuredText",
39 | "config" : {
40 | "single" : "heading4",
41 | "label" : "Company",
42 | "placeholder" : "Company"
43 | }
44 | },
45 | "bio" : {
46 | "type" : "StructuredText",
47 | "config" : {
48 | "single" : "paragraph",
49 | "label" : "Bio",
50 | "placeholder" : "Bio"
51 | }
52 | },
53 | "twitter" : {
54 | "type" : "Link",
55 | "config" : {
56 | "label" : "Twitter",
57 | "select" : "web",
58 | "placeholder" : "Twitter profile URL"
59 | }
60 | },
61 | "github" : {
62 | "type" : "Link",
63 | "config" : {
64 | "label" : "Github",
65 | "select" : "web",
66 | "placeholder" : "GitHub profile URL"
67 | }
68 | },
69 | "talk" : {
70 | "type" : "Link",
71 | "config" : {
72 | "select" : "document",
73 | "customtypes" : [ "talk" ],
74 | "label" : "Talk"
75 | }
76 | }
77 | }
78 | }
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/custom_types/stage.json:
--------------------------------------------------------------------------------
1 | {
2 | "Main" : {
3 | "name" : {
4 | "type" : "StructuredText",
5 | "config" : {
6 | "single" : "heading1",
7 | "label" : "Name"
8 | }
9 | },
10 | "uid" : {
11 | "type" : "UID",
12 | "config" : {
13 | "label" : "Slug"
14 | }
15 | },
16 | "stream" : {
17 | "type" : "Link",
18 | "config" : {
19 | "label" : "Stream",
20 | "select" : "web"
21 | }
22 | },
23 | "discord" : {
24 | "type" : "Link",
25 | "config" : {
26 | "label" : "Discord",
27 | "select" : "web"
28 | }
29 | },
30 | "schedule" : {
31 | "type" : "Group",
32 | "config" : {
33 | "fields" : {
34 | "talk" : {
35 | "type" : "Link",
36 | "config" : {
37 | "select" : "document",
38 | "customtypes" : [ "talk" ],
39 | "label" : "Talk"
40 | }
41 | }
42 | },
43 | "label" : "Schedule"
44 | }
45 | }
46 | }
47 | }
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/custom_types/talk.json:
--------------------------------------------------------------------------------
1 | {
2 | "Main": {
3 | "title": {
4 | "type": "StructuredText",
5 | "config": {
6 | "single": "heading1",
7 | "label": "Title",
8 | "placeholder": "Talk title"
9 | }
10 | },
11 | "speakers": {
12 | "type": "Group",
13 | "config": {
14 | "fields": {
15 | "speaker": {
16 | "type": "Link",
17 | "config": {
18 | "select": "document",
19 | "customtypes": [
20 | "speaker"
21 | ],
22 | "label": "Speaker",
23 | "placeholder": "Add a speaker"
24 | }
25 | }
26 | },
27 | "label": "Speakers"
28 | }
29 | },
30 | "start": {
31 | "type": "Timestamp",
32 | "config": {
33 | "label": "Start"
34 | }
35 | },
36 | "end": {
37 | "type": "Timestamp",
38 | "config": {
39 | "label": "End"
40 | }
41 | },
42 | "description": {
43 | "type": "StructuredText",
44 | "config": {
45 | "single": "paragraph",
46 | "label": "Description",
47 | "placeholder": "Talk description"
48 | }
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i-DBIAACgA5eEx=#=X9jpRBIAACkA5qfq=#=speaker=#=X9i-DBIAACgA5eEz=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Brunhild Calvin","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"brunhild","title":[{"type":"heading4","content":{"text":"Senior Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6RIAACgA5bGE","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/4674eedd-c52c-422b-9e0a-601d19fef2ab_image+%2823%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/4674eedd-c52c-422b-9e0a-601d19fef2ab_image+%2823%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Brunhild Calvin","provider":"imgix","thumbnails":{}},"talk":{"id":"X9joshIAACgA5qVC","wioUrl":"wio://documents/X9joshIAACgA5qVC"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["brunhild-calvin"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i-mRIAACcA5ePU=#=X9uHQxIAACgA8pQy=#=speaker=#=X9i-mRIAACcA5ePW=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Manas Kerman","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"manas","title":[{"type":"heading4","content":{"text":"CFO","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"talk":{"id":"X9kEwBIAACcA5ydY","wioUrl":"wio://documents/X9kEwBIAACcA5ydY"},"image":{"origin":{"id":"X9iy6xIAACkA5bGc","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/6f3474a1-5525-41e7-a3fd-76918d36e251_image+%2822%29.jpeg","width":300,"height":400},"provider":"imgix","url":"https://images.prismic.io/nextjs-conference/6f3474a1-5525-41e7-a3fd-76918d36e251_image+%2822%29.jpeg?auto=compress,format&rect=0,0,300,400&w=300&h=400","alt":null,"credits":null,"width":300,"height":400,"edit":{"zoom":1,"crop":{"x":0,"y":0},"background":"#fff"},"thumbnails":{}},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["manas-kerman","cfo"],"uids_INTERNAL":["manas"]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i-rhIAACgA5eQ0=#=X9j3-hIAACkA5uxv=#=speaker=#=X9i-rhIAACgA5eQ2=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Ram Hanan","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"ram","title":[{"type":"heading4","content":{"text":"Senior Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6hIAACYA5bGS","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/cfdc2089-a4f4-4db6-ab5d-f383c51757b3_image+%2821%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/cfdc2089-a4f4-4db6-ab5d-f383c51757b3_image+%2821%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Ram Hanan","provider":"imgix","thumbnails":{}},"talk":{"id":"X9j3yhIAACgA5uuF","wioUrl":"wio://documents/X9j3yhIAACgA5uuF"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["ram-hanan"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i0JBIAACgA5bdM=#=X9kEZxIAACYA5yXE=#=speaker=#=X9i0JBIAACgA5bdO=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Harshad İrem","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"harshad","title":[{"type":"heading4","content":{"text":"Senior Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5hIAACYA5bFs","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/bba2ee42-db65-42cc-94f6-a77f02b5ae0a_image+%282%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/bba2ee42-db65-42cc-94f6-a77f02b5ae0a_image+%282%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Harshad İrem","provider":"imgix","thumbnails":{}},"talk":{"id":"X9kEExIAACcA5yQ_","wioUrl":"wio://documents/X9kEExIAACcA5yQ_"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["harshad-irem"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i0lBIAACYA5blV=#=X9kEIhIAACcA5ySF=#=speaker=#=X9i0lBIAACYA5blX=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Christa Collyn","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"christa","title":[{"type":"heading4","content":{"text":"CEO","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6hIAACYA5bGM","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/c84ff287-49a2-4ccc-9953-f80fa89b8ff6_image+%2831%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/c84ff287-49a2-4ccc-9953-f80fa89b8ff6_image+%2831%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Christa Collyn","provider":"imgix","thumbnails":{}},"talk":{"id":"X9kEExIAACcA5yQ_","wioUrl":"wio://documents/X9kEExIAACcA5yQ_"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["christa-collyn"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i28BIAACcA5cQW=#=X9jhABIAACkA5oGg=#=speaker=#=X9i28BIAACcA5cQY=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Prosper Aniruddha","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"prosper","title":[{"type":"heading4","content":{"text":"Lead Developer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9i1_BIAACgA5b-7","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/30db9c3f-deed-4602-942e-e636543f2b52_image.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/30db9c3f-deed-4602-942e-e636543f2b52_image.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Prosper Aniruddha","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jddRIAACcA5nEu","wioUrl":"wio://documents/X9jddRIAACcA5nEu"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["prosper-aniruddha"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i3AxIAACcA5cRx=#=X9kKlRIAACgA50FH=#=speaker=#=X9i3AxIAACcA5cRz=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Paulína Rodya","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"paulina","title":[{"type":"heading4","content":{"text":"VP of Engineering","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9i39xIAACgA5cjj","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/64b861ad-2c07-4db0-a045-fada96fe909a_image.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/64b861ad-2c07-4db0-a045-fada96fe909a_image.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Paulína Rodya","provider":"imgix","thumbnails":{}},"talk":{"id":"X9joshIAACgA5qVC","wioUrl":"wio://documents/X9joshIAACgA5qVC"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["paulina-rodya"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i4gBIAACYA5ctf=#=X9kEQxIAACkA5yUe=#=speaker=#=X9i4gBIAACYA5cth=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Blagun Dobromil","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"blagun","title":[{"type":"heading4","content":{"text":"Designer & Developer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9i4ehIAACkA5ctD","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/527bb474-fe93-4dae-951f-93ca1f9ba518_image+%281%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/527bb474-fe93-4dae-951f-93ca1f9ba518_image+%281%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Blagun Dobromil","provider":"imgix","thumbnails":{}},"talk":{"id":"X9kEExIAACcA5yQ_","wioUrl":"wio://documents/X9kEExIAACcA5yQ_"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["blagun-dobromil"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i51hIAACcA5dFu=#=X9j71RIAACgA5v4S=#=speaker=#=X9i51hIAACcA5dFw=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Ricohard Bohuslav","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"ricohard","title":[{"type":"heading4","content":{"text":"Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9i50hIAACkA5dFZ","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/2797ee98-fcce-46a0-9017-5a3ad0cae13c_image+%283%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/2797ee98-fcce-46a0-9017-5a3ad0cae13c_image+%283%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Ricohard Bohuslav","provider":"imgix","thumbnails":{}},"talk":{"id":"X9j7yxIAACgA5v3j","wioUrl":"wio://documents/X9j7yxIAACgA5v3j"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["ricohard-bohuslav"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i5nxIAACcA5dBn=#=X9jsZRIAACkA5rZv=#=speaker=#=X9i5nxIAACcA5dBp=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Cordula Daniel","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"cordula","title":[{"type":"heading4","content":{"text":"Co-Founder","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9i5mhIAACcA5dBQ","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/1708a781-b7f3-46e7-9c32-d7804ad97624_image+%282%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/1708a781-b7f3-46e7-9c32-d7804ad97624_image+%282%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Cordula Daniel","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jsWRIAACgA5rYy","wioUrl":"wio://documents/X9jsWRIAACgA5rYy"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["cordula-daniel"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i8PxIAACkA5dov=#=X9j2zxIAACYA5ubk=#=speaker=#=X9i8PxIAACkA5dox=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Lothaire Darius","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"lothaire","title":[{"type":"heading4","content":{"text":"Software Developer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6xIAACcA5bGX","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/0103a5a0-d3a3-4ed0-aece-1e3476ba055b_image+%2825%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/0103a5a0-d3a3-4ed0-aece-1e3476ba055b_image+%2825%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Lothaire Darius","provider":"imgix","thumbnails":{}},"talk":{"id":"X9j2tRIAACgA5uZq","wioUrl":"wio://documents/X9j2tRIAACgA5uZq"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["lothaire-darius"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9i9XhIAACgA5d4P=#=X9jmKRIAACgA5pmP=#=speaker=#=X9i9XhIAACgA5d4R=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Chariovalda Magdalena","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"chariovalda","title":[{"type":"heading4","content":{"text":"Tech Lead","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6hIAACcA5bGL","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/0939fff3-2ef3-49cb-b84b-bec5106dd83c_image+%2824%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/0939fff3-2ef3-49cb-b84b-bec5106dd83c_image+%2824%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Chariovalda Magdalena","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jmGxIAACkA5plN","wioUrl":"wio://documents/X9jmGxIAACkA5plN"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["chariovalda-magdalena"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9it0BIAACYA5Zk9=#=X9kkvxIAACkA57PC=#=job=#=X9it0BIAACYA5Zk_=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Field Engineer / Solutions Architect","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"Vercel Field Engineering is an integral part of our business, showcasing Vercel's products, working with our users and customers, understanding their business goals and technical requirements, and distilling complex problems into understandable, achievable solutions.","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"1","company_name":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["field-engineer--solutions-architect","vercel"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9itWRIAACcA5Zcc=#=X9uGPBIAACcA8o9o=#=job=#=X9itWRIAACcA5Zce=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"company_name":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Security Lead","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"The Security Lead at Vercel will work closely with engineering and product teams to ensure that security is top-priority in all of our work. The role will also require designing and implementing technical controls to enforce strong security guarantees by default, as well as supporting audits for certification and compliance programs, such as SOC 2, GDPR, and ISO 27001.","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"1","company_name_TYPE":"StructuredText","company_name_POSITION":0,"title_TYPE":"StructuredText","title_POSITION":1,"description_TYPE":"StructuredText","description_POSITION":2,"link_TYPE":"Link","link_POSITION":3,"discord_TYPE":"Link","discord_POSITION":4,"rank_TYPE":"Number","rank_POSITION":5,"slugs_INTERNAL":["security-lead","vercel"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9itmRIAACkA5ZhF=#=X9kktxIAACkA57Oa=#=job=#=X9itmRIAACkA5ZhH=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Developer Relations Lead","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"Vercel's mission is to empower front-end developers in doing their best work, at the fastest possible pace. We’re passionate about our work with that community, and we are seeking an experienced Developer Relations Leader to steward our connection to that community, grow our presence and impact, and provide a conduit for community feedback into all parts of our business.","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"1","company_name":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["developer-relations-lead","vercel"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9iuNRIAACgA5ZsV=#=X9kkzBIAACkA57P-=#=job=#=X9iuNRIAACgA5ZsX=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Account Executive / Sr. Account Executive","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"Vercel's sales team is full of bright, hardworking Account Executives who are helping us create a new category. Vercel's sales team is deeply technical and spans a range of business functions (developers, operations, marketing, product, IT).","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"1","company_name":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["account-executive--sr.-account-executive"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9iuXxIAACYA5ZvT=#=X9kk1RIAACcA57Qo=#=job=#=X9iuXxIAACYA5ZvV=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Senior Site Reliability Engineer","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"As a Senior Site Reliability Engineer, you will help to scale and improve our infrastructure, availability, and reliability by working closely with our backend engineers and product team to identify problems, create tooling and automation. If you have a solid background in software engineering and are familiar with Cloud Services (e.g. AWS, Google Cloud, or others), Node.js, Terraform, or Kubernetes we'd like to meet you.","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"1","company_name":[{"type":"heading4","content":{"text":"Vercel","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["senior-site-reliability-engineer"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9iu_BIAACcA5Z6e=#=X9kk8RIAACkA57Sm=#=job=#=X9iu_BIAACcA5Z6g=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Senior Site Reliability Engineer","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"As a Senior Site Reliability Engineer, you will help to scale and improve our infrastructure, availability, and reliability by working closely with our backend engineers and product team to identify problems, create tooling and automation. If you have a solid background in software engineering and are familiar with Cloud Services (e.g. AWS, Google Cloud, or others), Node.js, Terraform, or Kubernetes we'd like to meet you.","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"2","company_name":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["senior-site-reliability-engineer"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9iulxIAACYA5ZzK=#=X9kk3xIAACcA57RS=#=job=#=X9iulxIAACYA5ZzM=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Security Lead","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"The Security Lead at Vercel will work closely with engineering and product teams to ensure that security is top-priority in all of our work. The role will also require designing and implementing technical controls to enforce strong security guarantees by default, as well as supporting audits for certification and compliance programs, such as SOC 2, GDPR, and ISO 27001.","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"2","company_name":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["security-lead"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9iutxIAACcA5Z1h=#=X9kk5xIAACcA57R7=#=job=#=X9iutxIAACcA5Z1j=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Account Executive / Sr. Account Executive","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"Vercel's sales team is full of bright, hardworking Account Executives who are helping us create a new category. Vercel's sales team is deeply technical and spans a range of business functions (developers, operations, marketing, product, IT).","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"2","company_name":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["account-executive--sr.-account-executive"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9ivKxIAACgA5Z9t=#=X9kk-hIAACYA57TQ=#=job=#=X9ivKxIAACgA5Z9v=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Field Engineer / Solutions Architect","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"Vercel Field Engineering is an integral part of our business, showcasing Vercel's products, working with our users and customers, understanding their business goals and technical requirements, and distilling complex problems into understandable, achievable solutions.","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"2","company_name":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["field-engineer--solutions-architect"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9ivYxIAACgA5aBx=#=X9klAhIAACYA57T6=#=job=#=X9ivYxIAACgA5aBz=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"companyName":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"title":[{"type":"heading1","content":{"text":"Developer Relations Lead","spans":[]}}],"description":[{"type":"paragraph","content":{"text":"Vercel's mission is to empower front-end developers in doing their best work, at the fastest possible pace. We’re passionate about our work with that community, and we are seeking an experienced Developer Relations Leader to steward our connection to that community, grow our presence and impact, and provide a conduit for community feedback into all parts of our business.","spans":[]}}],"link":{"url":"https://vercel.com/careers","preview":null},"discord":{"url":"https://discord.gg/d5VXPqV","preview":null},"rank":"2","company_name":[{"type":"heading4","content":{"text":"ACME","spans":[]}}],"companyName_TYPE":"StructuredText","companyName_POSITION":0,"company_name_TYPE":"StructuredText","company_name_POSITION":1,"title_TYPE":"StructuredText","title_POSITION":2,"description_TYPE":"StructuredText","description_POSITION":3,"link_TYPE":"Link","link_POSITION":4,"discord_TYPE":"Link","discord_POSITION":5,"rank_TYPE":"Number","rank_POSITION":6,"slugs_INTERNAL":["developer-relations-lead"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9ivfhIAACYA5aDq=#=X9jiThIAACcA5oe-=#=speaker=#=X9ivfhIAACYA5aDs=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"July Desideria","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"july","title":[{"type":"heading4","content":{"text":"Senior Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iw2RIAACYA5agl","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/bae167e1-e138-4bac-9b85-6fe2af48f183_image.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/bae167e1-e138-4bac-9b85-6fe2af48f183_image.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"July Desideria","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jiORIAACgA5odb","wioUrl":"wio://documents/X9jiORIAACgA5odb"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["july-desideria"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9izVBIAACcA5bOL=#=X9jg8RIAACYA5oFZ=#=speaker=#=X9izVBIAACcA5bON=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Cerere Eetu","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"cerere","title":[{"type":"heading4","content":{"text":"Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iyAxIAACkA5a1n","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/c185df56-d76c-4f6f-afdf-c7bcd97cff55_image+%281%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/c185df56-d76c-4f6f-afdf-c7bcd97cff55_image+%281%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Cerere Eetu","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jddRIAACcA5nEu","wioUrl":"wio://documents/X9jddRIAACcA5nEu"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["cerere-eetu"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9j2tRIAACgA5uZq=#=X9j3BhIAACgA5uf2=#=talk=#=X9j2tRIAACgA5uZs=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Building Your First E-Commerce Site","spans":[]}}],"speakers":[{"speaker":{"id":"X9i8PxIAACkA5dov","wioUrl":"wio://documents/X9i8PxIAACkA5dov"}}],"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["building-your-first-e-commerce-site"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9j3OhIAACgA5ujr=#=X9j3hxIAACcA5upQ=#=talk=#=X9j3OhIAACgA5ujt=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Will React Survive in 2030?","spans":[]}}],"speakers":[{"speaker":{"id":"X9jMkBIAACcA5iF1","wioUrl":"wio://documents/X9jMkBIAACcA5iF1"}}],"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["will-react-survive-in-2030"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9j3yhIAACgA5uuF=#=X9j4KhIAACgA5u1K=#=talk=#=X9j3yhIAACgA5uuH=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Deploying to the Edge with Vercel","spans":[]}}],"speakers":[{"speaker":{"id":"X9jRbBIAACgA5jhp","wioUrl":"wio://documents/X9jRbBIAACgA5jhp"}},{"speaker":{"id":"X9i-rhIAACgA5eQ0","wioUrl":"wio://documents/X9i-rhIAACgA5eQ0"}}],"start":"2020-10-27T18:50:00+00:00","end":"2020-12-15T19:30:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["deploying-to-the-edge-with-vercel"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9j7yxIAACgA5v3j=#=X9j8BRIAACcA5v7z=#=talk=#=X9j7yxIAACgA5v3l=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Serverless Databases at the Edge","spans":[]}}],"speakers":[{"speaker":{"id":"X9i51hIAACcA5dFu","wioUrl":"wio://documents/X9i51hIAACcA5dFu"}}],"start":"2020-10-27T18:10:00+00:00","end":"2020-10-27T18:50:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["serverless-databases-at-the-edge"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9j8WRIAACgA5wB6=#=X9j8kBIAACkA5wFv=#=talk=#=X9j8WRIAACgA5wB8=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Using a CMS with Next.js (And Why)","spans":[]}}],"speakers":[{"speaker":{"id":"X9jSWRIAACgA5jyo","wioUrl":"wio://documents/X9jSWRIAACgA5jyo"}}],"start":"2020-10-27T17:30:00+00:00","end":"2020-10-27T18:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["using-a-cms-with-next.js-and-why"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9j8vRIAACgA5wJP=#=X9j87hIAACgA5wM-=#=talk=#=X9j8vRIAACgA5wJR=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"10 Reasons You Don't Need a Custom Server","spans":[]}}],"speakers":[{"speaker":{"id":"X9jJhRIAACcA5hNe","wioUrl":"wio://documents/X9jJhRIAACcA5hNe"}}],"start":"2020-10-27T18:50:00+00:00","end":"2020-10-27T19:30:00+00:00","title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["10-reasons-you-dont-need-a-custom-server"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jBeBIAACgA5e99=#=X9jg2xIAACcA5oDx=#=speaker=#=X9jBeBIAACgA5e9_=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Lallie Viggo","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"lallie","title":[{"type":"heading4","content":{"text":"Vice President of Cloud","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5xIAACkA5bF5","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/d3e4428e-014c-4ed6-a9fc-ad20ba89a3bf_image+%2820%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/d3e4428e-014c-4ed6-a9fc-ad20ba89a3bf_image+%2820%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Lallie Viggo","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jddRIAACcA5nEu","wioUrl":"wio://documents/X9jddRIAACcA5nEu"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["lallie-viggo"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jJhRIAACcA5hNe=#=X9j8zhIAACkA5wKa=#=speaker=#=X9jJhRIAACcA5hNg=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Jazmin Sanel","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"jazmin","title":[{"type":"heading4","content":{"text":"Developer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5hIAACcA5bFt","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/fe652df9-bf54-4bdb-b5dd-5b555f3e2592_image+%2819%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/fe652df9-bf54-4bdb-b5dd-5b555f3e2592_image+%2819%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Jazmin Sanel","provider":"imgix","thumbnails":{}},"talk":{"id":"X9j8vRIAACgA5wJP","wioUrl":"wio://documents/X9j8vRIAACgA5wJP"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["jazmin-sanel"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jK8xIAACkA5hoI=#=X9jrWBIAACkA5rGS=#=speaker=#=X9jK8xIAACkA5hoK=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Katell Kali","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"katell","title":[{"type":"heading4","content":{"text":"Creator","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6hIAACgA5bGR","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/d40dcab3-c3d3-4a8f-865a-31cd05cbada2_image+%2817%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/d40dcab3-c3d3-4a8f-865a-31cd05cbada2_image+%2817%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Katell Kali","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jrThIAACkA5rFj","wioUrl":"wio://documents/X9jrThIAACkA5rFj"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["katell-kali"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jKoxIAACcA5hiZ=#=X9kJyhIAACgA5z3f=#=speaker=#=X9jKoxIAACcA5hib=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Hadyn Faye","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"hadyn","title":[{"type":"heading4","content":{"text":"President","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5hIAACgA5bFu","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/0c3d9f01-0e9f-41db-9093-78766436c376_image+%2818%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/0c3d9f01-0e9f-41db-9093-78766436c376_image+%2818%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Hadyn Faye","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jmoBIAACcA5pu4","wioUrl":"wio://documents/X9jmoBIAACcA5pu4"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["hadyn-faye"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jLzxIAACYA5h39=#=X9kJlhIAACgA5zzu=#=speaker=#=X9jLzxIAACYA5h3_=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Chidiebube Paul","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"chidiebube","title":[{"type":"heading4","content":{"text":"Lead Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6hIAACgA5bGU","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/6be6c675-d4eb-4d7d-8d7a-bfc503386384_image+%2816%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/6be6c675-d4eb-4d7d-8d7a-bfc503386384_image+%2816%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Chidiebube Paul","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jVQxIAACgA5kpB","wioUrl":"wio://documents/X9jVQxIAACgA5kpB"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["chidiebube-paul"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jM4BIAACkA5iLV=#=X9kFhhIAACgA5yrO=#=speaker=#=X9jM4BIAACkA5iLX=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Fabiana Aramis","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"fabiana","title":[{"type":"heading4","content":{"text":"CEO","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5hIAACgA5bFz","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/5665a6f8-2e91-4d76-bf9c-55bd0ada974c_image+%2812%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/5665a6f8-2e91-4d76-bf9c-55bd0ada974c_image+%2812%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Fabiana Aramis","provider":"imgix","thumbnails":{}},"talk":{"id":"X9kFeRIAACgA5yqX","wioUrl":"wio://documents/X9kFeRIAACgA5yqX"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["fabiana-aramis"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jMFBIAACYA5h85=#=X9jxEBIAACgA5sxR=#=speaker=#=X9jMFBIAACYA5h87=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Ramses Reinaldo","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"ramses","title":[{"type":"heading4","content":{"text":"Lead Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy7RIAACcA5bGj","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/2fdeedca-4c53-4dcd-933f-4cefb4b9475b_image+%2815%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/2fdeedca-4c53-4dcd-933f-4cefb4b9475b_image+%2815%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Ramses Reinaldo","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jw3hIAACkA5stx","wioUrl":"wio://documents/X9jw3hIAACkA5stx"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["ramses-reinaldo"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jMURIAACYA5iBY=#=X9kFFxIAACkA5yjg=#=speaker=#=X9jMURIAACYA5iBa=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Peg Amaterasu","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"peg","title":[{"type":"heading4","content":{"text":"Accessibility / Front-End","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6BIAACkA5bF-","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/cad09532-603e-4753-8869-1620477505b0_image+%2814%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/cad09532-603e-4753-8869-1620477505b0_image+%2814%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Peg Amaterasu","provider":"imgix","thumbnails":{}},"talk":{"id":"X9kFDxIAACkA5yi4","wioUrl":"wio://documents/X9kFDxIAACkA5yi4"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["peg-amaterasu"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jMkBIAACcA5iF1=#=X9j3WBIAACkA5ul6=#=speaker=#=X9jMkBIAACcA5iF3=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Terese Kreka","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"terese","title":[{"type":"heading4","content":{"text":"Senior Developer Advocate","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6xIAACkA5bGW","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/5485620e-b3e9-4888-ba97-636f35effb33_image+%2813%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/5485620e-b3e9-4888-ba97-636f35effb33_image+%2813%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Terese Kreka","provider":"imgix","thumbnails":{}},"talk":{"id":"X9j3OhIAACgA5ujr","wioUrl":"wio://documents/X9j3OhIAACgA5ujr"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["terese-kreka"],"uids_INTERNAL":["terese"]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jOMxIAACgA5ij1=#=X9kGvRIAACkA5zBE=#=speaker=#=X9jOMxIAACgA5ij3=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Maksim Vishal","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"maksim","title":[{"type":"heading4","content":{"text":"Lead Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6RIAACgA5bGD","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/9b533fdc-18ee-4ea1-9e4c-197355b4fef6_image+%2811%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/9b533fdc-18ee-4ea1-9e4c-197355b4fef6_image+%2811%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Maksim Vishal","provider":"imgix","thumbnails":{}},"talk":{"id":"X9kGsxIAACgA5zAR","wioUrl":"wio://documents/X9kGsxIAACgA5zAR"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["maksim-vishal"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jPLhIAACgA5i14=#=X9kHFRIAACkA5zHX=#=speaker=#=X9jPLhIAACgA5i16=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Süheyla Purnima","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"purnima","title":[{"type":"heading4","content":{"text":"Founder","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6hIAACYA5bGK","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/112b41ee-1748-44bb-870c-661aba667369_image+%2810%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/112b41ee-1748-44bb-870c-661aba667369_image+%2810%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Süheyla Purnima","provider":"imgix","thumbnails":{}},"talk":{"id":"X9kHDBIAACcA5zGs","wioUrl":"wio://documents/X9kHDBIAACcA5zGs"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["suheyla-purnima"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jQ0hIAACYA5jVk=#=X9jw6BIAACkA5suh=#=speaker=#=X9jQ0hIAACYA5jVm=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Catahecassa Sarra","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"catahecassa","title":[{"type":"heading4","content":{"text":"Senior Manager","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5xIAACgA5bF9","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/b0f68b3f-dbb0-40b0-b51d-026a0c335f04_image+%288%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/b0f68b3f-dbb0-40b0-b51d-026a0c335f04_image+%288%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Catahecassa Sarra","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jw3hIAACkA5stx","wioUrl":"wio://documents/X9jw3hIAACkA5stx"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["catahecassa-sarra"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jQlhIAACYA5jQu=#=X9kHjRIAACgA5zP1=#=speaker=#=X9jQlhIAACYA5jQw=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Kleon Renaud","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"kleon","title":[{"type":"heading4","content":{"text":"Software Engineer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6hIAACYA5bGJ","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/9ed16e73-7f1d-463d-99bc-751c3cf19cdd_image+%289%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/9ed16e73-7f1d-463d-99bc-751c3cf19cdd_image+%289%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Kleon Renaud","provider":"imgix","thumbnails":{}},"talk":{"id":"X9kHdBIAACcA5zOI","wioUrl":"wio://documents/X9kHdBIAACcA5zOI"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["kleon-renaud"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jRbBIAACgA5jhp=#=X9j32xIAACYA5uvc=#=speaker=#=X9jRbBIAACgA5jhr=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Neha Beatriu","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"neha","title":[{"type":"heading4","content":{"text":"Founder","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy6hIAACgA5bGT","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/020d1129-e981-4dd7-b6e8-02382f23d83b_image+%287%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/020d1129-e981-4dd7-b6e8-02382f23d83b_image+%287%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Neha Beatriu","provider":"imgix","thumbnails":{}},"talk":{"id":"X9j3yhIAACgA5uuF","wioUrl":"wio://documents/X9j3yhIAACgA5uuF"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["neha-beatriu"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jSWRIAACgA5jyo=#=X9j8ZRIAACcA5wCx=#=speaker=#=X9jSWRIAACgA5jyq=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Mariyam Bricius","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"mariyam","title":[{"type":"heading4","content":{"text":"Director of Technology","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5xIAACkA5bF6","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/288d41ff-93fa-491c-8c1b-be3d45f8bc7e_image+%286%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/288d41ff-93fa-491c-8c1b-be3d45f8bc7e_image+%286%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Mariyam Bricius","provider":"imgix","thumbnails":{}},"talk":{"id":"X9j8WRIAACgA5wB6","wioUrl":"wio://documents/X9j8WRIAACgA5wB6"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["mariyam-bricius"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jSfBIAACgA5j1U=#=X9jVTRIAACgA5kpx=#=speaker=#=X9jSfBIAACgA5j1W=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Alon Neelima","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"alon","title":[{"type":"heading4","content":{"text":"Head of Development","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5xIAACkA5bF4","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/a16ee2b4-c9b3-4f82-96b8-b7b309c0a0f0_image+%285%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/a16ee2b4-c9b3-4f82-96b8-b7b309c0a0f0_image+%285%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Alon Neelima","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jVQxIAACgA5kpB","wioUrl":"wio://documents/X9jVQxIAACgA5kpB"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["alon-neelima"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jT0hIAACgA5kON=#=X9jpqhIAACkA5qnA=#=speaker=#=X9jT0hIAACgA5kOP=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Bhaskar Folami","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"bhaskar","title":[{"type":"heading4","content":{"text":"Software Architect","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy7BIAACgA5bGd","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/5e8aaa19-5a61-462a-afc3-2be0046505a0_image+%284%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/5e8aaa19-5a61-462a-afc3-2be0046505a0_image+%284%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Bhaskar Folami","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jpoRIAACcA5qmT","wioUrl":"wio://documents/X9jpoRIAACcA5qmT"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["bhaskar-folami"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jUfxIAACcA5ka7=#=X9jWpBIAACkA5lCt=#=speaker=#=X9jUfxIAACcA5ka9=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Ensio Heidi","spans":[]}}],"bio":[{"type":"paragraph","content":{"text":"They have over ten years of experience building blazing-fast web applications with Next.js and Vercel. Outside of work, they enjoy hiking, skiing, and surfing. Before becoming a developer, they worked in finance for a Fortune 500 company.","spans":[]}}],"uid":"ensio","title":[{"type":"heading4","content":{"text":"Senior Software Developer","spans":[]}}],"twitter":{"url":"https://twitter.com/vercel","preview":null},"github":{"url":"https://github.com/vercel","preview":null},"company":[{"type":"heading4","content":{"text":"Company","spans":[]}}],"image":{"origin":{"id":"X9iy5xIAACkA5bF8","url":"https://prismic-io.s3.amazonaws.com/nextjs-conference/9da8d55e-2587-4c0b-93d5-2261435ea50e_image+%283%29.jpeg","width":300,"height":400},"width":300,"height":400,"url":"https://images.prismic.io/nextjs-conference/9da8d55e-2587-4c0b-93d5-2261435ea50e_image+%283%29.jpeg?auto=compress,format","edit":{"background":"#fff","zoom":1,"crop":{"x":0,"y":0}},"credits":null,"alt":"Ensio Heidi","provider":"imgix","thumbnails":{}},"talk":{"id":"X9jWmRIAACYA5lBt","wioUrl":"wio://documents/X9jWmRIAACYA5lBt"},"name_TYPE":"StructuredText","name_POSITION":0,"bio_TYPE":"StructuredText","bio_POSITION":1,"uid_TYPE":"UID","uid_POSITION":2,"title_TYPE":"StructuredText","title_POSITION":3,"twitter_TYPE":"Link","twitter_POSITION":4,"github_TYPE":"Link","github_POSITION":5,"company_TYPE":"StructuredText","company_POSITION":6,"image_TYPE":"Image","image_POSITION":7,"talk_TYPE":"Link","talk_POSITION":8,"slugs_INTERNAL":["ensio-heidi"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jVQxIAACgA5kpB=#=X9jbExIAACcA5mYK=#=talk=#=X9jVQxIAACgA5kpD=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"React Fundamentals","spans":[]}}],"speaker_temp":{"id":"X9jSfBIAACgA5j1U","wioUrl":"wio://documents/X9jSfBIAACgA5j1U"},"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"speakers":[{"speaker":{"id":"X9jSfBIAACgA5j1U","wioUrl":"wio://documents/X9jSfBIAACgA5j1U"}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"speaker_temp_TYPE":"Link","speaker_temp_POSITION":3,"start_TYPE":"Timestamp","start_POSITION":4,"end_TYPE":"Timestamp","end_POSITION":5,"description_TYPE":"StructuredText","description_POSITION":6,"slugs_INTERNAL":["react-fundamentals"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jWmRIAACYA5lBt=#=X9jbHhIAACcA5mY9=#=talk=#=X9jWmRIAACYA5lBv=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"How To Use Dynamic Routing","spans":[]}}],"speaker_temp":{"id":"X9jUfxIAACcA5ka7","wioUrl":"wio://documents/X9jUfxIAACcA5ka7"},"start":"2020-10-27T18:50:00+00:00","end":"2020-10-27T19:30:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"speakers":[{"speaker":{"id":"X9jUfxIAACcA5ka7","wioUrl":"wio://documents/X9jUfxIAACcA5ka7"}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"speaker_temp_TYPE":"Link","speaker_temp_POSITION":3,"start_TYPE":"Timestamp","start_POSITION":4,"end_TYPE":"Timestamp","end_POSITION":5,"description_TYPE":"StructuredText","description_POSITION":6,"slugs_INTERNAL":["how-to-use-dynamic-routing"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jddRIAACcA5nEu=#=X9jgYhIAACgA5n7J=#=talk=#=X9jddRIAACcA5nEw=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"speakers":[{"speaker":{"id":"X9jBeBIAACgA5e99","wioUrl":"wio://documents/X9jBeBIAACgA5e99"}},{"speaker":{"id":"X9izVBIAACcA5bOL","wioUrl":"wio://documents/X9izVBIAACcA5bOL"}},{"speaker":{"id":"X9i28BIAACcA5cQW","wioUrl":"wio://documents/X9i28BIAACcA5cQW"}}],"title":[{"type":"heading1","content":{"text":"Using i18n Routing with Next 10","spans":[]}}],"start":"2020-10-27T18:10:00+00:00","end":"2020-10-27T18:50:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["using-i18n-routing-with-next-10"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jiORIAACgA5odb=#=X9jjBBIAACkA5or2=#=talk=#=X9jiORIAACgA5odd=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Using the Next.js Image Component","spans":[]}}],"speakers":[{"speaker":{"id":"X9ivfhIAACYA5aDq","wioUrl":"wio://documents/X9ivfhIAACYA5aDq"}}],"start":"2020-10-27T17:30:00+00:00","end":"2020-10-27T18:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["using-the-next.js-image-component"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jmGxIAACkA5plN=#=X9jmexIAACcA5psF=#=talk=#=X9jmGxIAACkA5plP=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Incrementally Adopting Next.js","spans":[]}}],"speakers":[{"speaker":{"id":"X9i9XhIAACgA5d4P","wioUrl":"wio://documents/X9i9XhIAACgA5d4P"}}],"start":"2020-10-27T18:10:00+00:00","end":"2020-10-27T18:50:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["incrementally-adopting-next.js"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jmoBIAACcA5pu4=#=X9jnNhIAACYA5p5s=#=talk=#=X9jmoBIAACcA5pu6=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"speakers":[{"speaker":{"id":"X9jMkBIAACcA5iF1","wioUrl":"wio://documents/X9jMkBIAACcA5iF1"}}],"title":[{"type":"heading1","content":{"text":"Using Preview Deploys with Vercel","spans":[]}}],"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["using-preview-deploys-with-vercel"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9joshIAACgA5qVC=#=X9jpexIAACkA5qjg=#=talk=#=X9joshIAACgA5qVE=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"What are Vercelians?","spans":[]}}],"speakers":[{"speaker":{"id":"X9i-DBIAACgA5eEx","wioUrl":"wio://documents/X9i-DBIAACgA5eEx"}}],"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["what-are-vercelians"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jpoRIAACcA5qmT=#=X9jqohIAACYA5q5F=#=talk=#=X9jpoRIAACcA5qmV=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"When And When Not To useEffect","spans":[]}}],"speakers":[{"speaker":{"id":"X9jT0hIAACgA5kON","wioUrl":"wio://documents/X9jT0hIAACgA5kON"}}],"start":"2020-10-27T18:50:00+00:00","end":"2020-10-27T19:30:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["when-and-when-not-to-useeffect"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jrThIAACkA5rFj=#=X9jsEBIAACkA5rTl=#=talk=#=X9jrThIAACkA5rFl=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Is Twitter Good Or Bad For You?","spans":[]}}],"speakers":[{"speaker":{"id":"X9jK8xIAACkA5hoI","wioUrl":"wio://documents/X9jK8xIAACkA5hoI"}}],"start":"2020-10-27T18:50:00+00:00","end":"2020-10-27T19:30:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["is-twitter-good-or-bad-for-you"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jsWRIAACgA5rYy=#=X9jslBIAACcA5rdM=#=talk=#=X9jsWRIAACgA5rY0=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"React vs. Vue vs. Svelte","spans":[]}}],"speakers":[{"speaker":{"id":"X9i5nxIAACcA5dBn","wioUrl":"wio://documents/X9i5nxIAACcA5dBn"}}],"start":"2020-10-27T18:50:00+00:00","end":"2020-10-27T19:30:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["react-vs.-vue-vs.-svelte"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9jw3hIAACkA5stx=#=X9jxQRIAACcA5s05=#=talk=#=X9jw3hIAACkA5stz=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"You Don't Need A Compiler: A Hot Take","spans":[]}}],"speakers":[{"speaker":{"id":"X9jQ0hIAACYA5jVk","wioUrl":"wio://documents/X9jQ0hIAACYA5jVk"}},{"speaker":{"id":"X9jMFBIAACYA5h85","wioUrl":"wio://documents/X9jMFBIAACYA5h85"}}],"start":"2020-10-27T17:30:00+00:00","end":"2020-10-27T18:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["you-dont-need-a-compiler-a-hot-take"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kEExIAACcA5yQ_=#=X9kEjxIAACcA5yZ4=#=talk=#=X9kEExIAACcA5yRB=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Keynote","spans":[]}}],"speakers":[{"speaker":{"id":"X9i0lBIAACYA5blV","wioUrl":"wio://documents/X9i0lBIAACYA5blV"}},{"speaker":{"id":"X9i4gBIAACYA5ctf","wioUrl":"wio://documents/X9i4gBIAACYA5ctf"}},{"speaker":{"id":"X9i0JBIAACgA5bdM","wioUrl":"wio://documents/X9i0JBIAACgA5bdM"}}],"start":"2020-10-27T17:00:00+00:00","end":"2020-10-27T17:30:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["keynote"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kEwBIAACcA5ydY=#=X9kE8BIAACgA5ygr=#=talk=#=X9kEwBIAACcA5yda=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Why Next.js Is Great for You","spans":[]}}],"speakers":[{"speaker":{"id":"X9i-mRIAACcA5ePU","wioUrl":"wio://documents/X9i-mRIAACcA5ePU"}}],"start":"2020-10-27T17:30:00+00:00","end":"2020-10-27T18:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["why-next.js-is-great-for-you"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kFDxIAACkA5yi4=#=X9kFPhIAACYA5ymR=#=talk=#=X9kFDxIAACkA5yi6=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"How To Do Proper Accessibility","spans":[]}}],"speakers":[{"speaker":{"id":"X9jMURIAACYA5iBY","wioUrl":"wio://documents/X9jMURIAACYA5iBY"}}],"start":"2020-10-27T18:10:00+00:00","end":"2020-10-27T18:50:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["how-to-do-proper-accessibility"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kFeRIAACgA5yqX=#=X9kFuhIAACYA5yu6=#=talk=#=X9kFeRIAACgA5yqZ=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"How to Design in Next.js","spans":[]}}],"speakers":[{"speaker":{"id":"X9jM4BIAACkA5iLV","wioUrl":"wio://documents/X9jM4BIAACkA5iLV"}}],"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["how-to-design-in-next.js"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kGsxIAACgA5zAR=#=X9kG6BIAACcA5zEM=#=talk=#=X9kGsxIAACgA5zAT=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Building Apps So Fast Your Boss is Confused","spans":[]}}],"speakers":[{"speaker":{"id":"X9jOMxIAACgA5ij1","wioUrl":"wio://documents/X9jOMxIAACgA5ij1"}}],"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["building-apps-so-fast-your-boss-is-confused"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kHDBIAACcA5zGs=#=X9kHTBIAACgA5zLP=#=talk=#=X9kHDBIAACcA5zGu=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"From Zero to Production","spans":[]}}],"speakers":[{"speaker":{"id":"X9jPLhIAACgA5i14","wioUrl":"wio://documents/X9jPLhIAACgA5i14"}}],"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["from-zero-to-production"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kHdBIAACcA5zOI=#=X9kHsxIAACgA5zSg=#=talk=#=X9kHdBIAACcA5zOK=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"title":[{"type":"heading1","content":{"text":"Using MDX for Markdown","spans":[]}}],"speakers":[{"speaker":{"id":"X9jQlhIAACYA5jQu","wioUrl":"wio://documents/X9jQlhIAACYA5jQu"}}],"start":"2020-10-27T19:30:00+00:00","end":"2020-10-27T20:10:00+00:00","description":[{"type":"paragraph","content":{"text":"In this talk, you'll learn how Next.js and Vercel help transform the workflow of front-end developers. Hear about the latest developments with Next.js 10 and deploy your application with one click to Vercel.","spans":[]}}],"title_TYPE":"StructuredText","title_POSITION":0,"speakers_TYPE":"Group","speakers_POSITION":1,"speakers.speaker_TYPE":"Link","speakers.speaker_POSITION":2,"start_TYPE":"Timestamp","start_POSITION":3,"end_TYPE":"Timestamp","end_POSITION":4,"description_TYPE":"StructuredText","description_POSITION":5,"slugs_INTERNAL":["using-mdx-for-markdown"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kX-BIAACcA53pG=#=X9uAxRIAACgA8nXO=#=stage=#=X9kX-BIAACcA53pI=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"name":[{"type":"heading1","content":{"text":"Stage A","spans":[]}}],"uid":"a","stream":{"url":"https://www.youtube.com/embed/1-NzQ9ObsfM","preview":null},"discord":{"url":"https://discord.com","preview":null},"schedule":[{"talk":{"id":"X9kEExIAACcA5yQ_","wioUrl":"wio://documents/X9kEExIAACcA5yQ_"}},{"talk":{"id":"X9jiORIAACgA5odb","wioUrl":"wio://documents/X9jiORIAACgA5odb"}},{"talk":{"id":"X9jddRIAACcA5nEu","wioUrl":"wio://documents/X9jddRIAACcA5nEu"}},{"talk":{"id":"X9jWmRIAACYA5lBt","wioUrl":"wio://documents/X9jWmRIAACYA5lBt"}},{"talk":{"id":"X9jVQxIAACgA5kpB","wioUrl":"wio://documents/X9jVQxIAACgA5kpB"}}],"name_TYPE":"StructuredText","name_POSITION":0,"uid_TYPE":"UID","uid_POSITION":1,"stream_TYPE":"Link","stream_POSITION":2,"discord_TYPE":"Link","discord_POSITION":3,"schedule_TYPE":"Group","schedule_POSITION":4,"schedule.talk_TYPE":"Link","schedule.talk_POSITION":5,"slugs_INTERNAL":["stage-a","a"],"uids_INTERNAL":["a"]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kZrBIAACcA54Hl=#=X9kZrBIAACcA54Hm=#=stage=#=X9kZrBIAACcA54Hn=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"schedule":[{"talk":{"id":"X9kEExIAACcA5yQ_","wioUrl":"wio://documents/X9kEExIAACcA5yQ_"}},{"talk":{"id":"X9jw3hIAACkA5stx","wioUrl":"wio://documents/X9jw3hIAACkA5stx"}},{"talk":{"id":"X9jsWRIAACgA5rYy","wioUrl":"wio://documents/X9jsWRIAACgA5rYy"}},{"talk":{"id":"X9jmGxIAACkA5plN","wioUrl":"wio://documents/X9jmGxIAACkA5plN"}},{"talk":{"id":"X9jrThIAACkA5rFj","wioUrl":"wio://documents/X9jrThIAACkA5rFj"}},{"talk":{"id":"X9jpoRIAACcA5qmT","wioUrl":"wio://documents/X9jpoRIAACcA5qmT"}},{"talk":{"id":"X9joshIAACgA5qVC","wioUrl":"wio://documents/X9joshIAACgA5qVC"}},{"talk":{"id":"X9jmoBIAACcA5pu4","wioUrl":"wio://documents/X9jmoBIAACcA5pu4"}}],"name":[{"type":"heading1","content":{"text":"Stage C","spans":[]}}],"uid":"c","stream":{"url":"https://www.youtube.com/embed/1-NzQ9ObsfM"},"discord":{"url":"https://discord.com"},"name_TYPE":"StructuredText","name_POSITION":0,"uid_TYPE":"UID","uid_POSITION":1,"stream_TYPE":"Link","stream_POSITION":2,"discord_TYPE":"Link","discord_POSITION":3,"schedule_TYPE":"Group","schedule_POSITION":4,"schedule.talk_TYPE":"Link","schedule.talk_POSITION":5,"slugs_INTERNAL":["stage-c"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kb_xIAACgA54w7=#=X9kb_xIAACgA54w8=#=stage=#=X9kb_xIAACgA54w9=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"schedule":[{"talk":{"id":"X9kEExIAACcA5yQ_","wioUrl":"wio://documents/X9kEExIAACcA5yQ_"}},{"talk":{"id":"X9j8WRIAACgA5wB6","wioUrl":"wio://documents/X9j8WRIAACgA5wB6"}},{"talk":{"id":"X9j7yxIAACgA5v3j","wioUrl":"wio://documents/X9j7yxIAACgA5v3j"}},{"talk":{"id":"X9j3yhIAACgA5uuF","wioUrl":"wio://documents/X9j3yhIAACgA5uuF"}},{"talk":{"id":"X9j3OhIAACgA5ujr","wioUrl":"wio://documents/X9j3OhIAACgA5ujr"}},{"talk":{"id":"X9j2tRIAACgA5uZq","wioUrl":"wio://documents/X9j2tRIAACgA5uZq"}}],"name":[{"type":"heading1","content":{"text":"Stage M","spans":[]}}],"uid":"m","stream":{"url":"https://www.youtube.com/embed/1-NzQ9ObsfM"},"discord":{"url":"https://discord.com"},"name_TYPE":"StructuredText","name_POSITION":0,"uid_TYPE":"UID","uid_POSITION":1,"stream_TYPE":"Link","stream_POSITION":2,"discord_TYPE":"Link","discord_POSITION":3,"schedule_TYPE":"Group","schedule_POSITION":4,"schedule.talk_TYPE":"Link","schedule.talk_POSITION":5,"slugs_INTERNAL":["stage-m"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/en-us/X9kc1RIAACgA54_x=#=X9kc1RIAACgA54_y=#=stage=#=X9kc1RIAACgA54_z=#=en-us=#=y.json:
--------------------------------------------------------------------------------
1 | {"schedule":[{"talk":{"id":"X9kEExIAACcA5yQ_","wioUrl":"wio://documents/X9kEExIAACcA5yQ_"}},{"talk":{"id":"X9kEwBIAACcA5ydY","wioUrl":"wio://documents/X9kEwBIAACcA5ydY"}},{"talk":{"id":"X9kFDxIAACkA5yi4","wioUrl":"wio://documents/X9kFDxIAACkA5yi4"}},{"talk":{"id":"X9j8vRIAACgA5wJP","wioUrl":"wio://documents/X9j8vRIAACgA5wJP"}},{"talk":{"id":"X9kFeRIAACgA5yqX","wioUrl":"wio://documents/X9kFeRIAACgA5yqX"}},{"talk":{"id":"X9kHdBIAACcA5zOI","wioUrl":"wio://documents/X9kHdBIAACcA5zOI"}},{"talk":{"id":"X9kHDBIAACcA5zGs","wioUrl":"wio://documents/X9kHDBIAACcA5zGs"}},{"talk":{"id":"X9kGsxIAACgA5zAR","wioUrl":"wio://documents/X9kGsxIAACgA5zAR"}}],"name":[{"type":"heading1","content":{"text":"Stage E","spans":[]}}],"uid":"e","stream":{"url":"https://www.youtube.com/embed/1-NzQ9ObsfM"},"discord":{"url":"https://discord.com"},"name_TYPE":"StructuredText","name_POSITION":0,"uid_TYPE":"UID","uid_POSITION":1,"stream_TYPE":"Link","stream_POSITION":2,"discord_TYPE":"Link","discord_POSITION":3,"schedule_TYPE":"Group","schedule_POSITION":4,"schedule.talk_TYPE":"Link","schedule.talk_POSITION":5,"slugs_INTERNAL":["stage-e"],"uids_INTERNAL":[]}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/documents/index.json:
--------------------------------------------------------------------------------
1 | {"signature":"b5eec47a9c9c113c825272bd3d0b0ec2fc6b4171"}
--------------------------------------------------------------------------------
/lib/cms-providers/prismic/utils.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | export function richTextAsText(richTextField: any) {
17 | if (Object.prototype.toString.call(richTextField) !== '[object Array]') {
18 | return '';
19 | }
20 | return richTextField.map((block: any) => block.text).join(' ');
21 | }
22 |
23 | export function getLinkUrl(linkField: any) {
24 | return linkField && linkField.url ? linkField.url : '';
25 | }
26 |
--------------------------------------------------------------------------------
/lib/form-error.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | export default class FormError extends Error {
18 | constructor(public res: Response) {
19 | super();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lib/hooks/use-conf-data.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { createContext, useContext } from 'react';
18 |
19 | export type PageState = 'registration' | 'ticket';
20 |
21 | export type UserData = {
22 | id?: string;
23 | ticketNumber?: number;
24 | username?: string;
25 | name?: string;
26 | };
27 |
28 | type ConfDataContextType = {
29 | userData: UserData;
30 | setUserData: React.Dispatch>;
31 | setPageState: React.Dispatch>;
32 | };
33 |
34 | export const ConfDataContext = createContext(null);
35 |
36 | export default function useConfData() {
37 | const result = useContext(ConfDataContext);
38 | if (!result) {
39 | throw new Error();
40 | }
41 | return result;
42 | }
43 |
--------------------------------------------------------------------------------
/lib/hooks/use-email-query-param.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { useEffect } from 'react';
18 | import { useRouter } from 'next/router';
19 |
20 | /**
21 | * If `paramName` exists in query string, then call `setEmail()` with the value
22 | * and delete it from the URL.
23 | */
24 | export default function useEmailQueryParam(
25 | paramName: string,
26 | setEmail: (email: string) => unknown
27 | ) {
28 | const router = useRouter();
29 | useEffect(() => {
30 | if ('URLSearchParams' in window) {
31 | const { search, pathname } = window.location;
32 | const params = new URLSearchParams(search);
33 | const email = params.get(paramName);
34 | if (email) {
35 | setEmail(email);
36 | params.delete(paramName);
37 | const newSearch = params.toString();
38 | const newAsPath = pathname + (newSearch ? `?${newSearch}` : '');
39 | const newPathname = router.pathname + (newSearch ? `?${newSearch}` : '');
40 | history.replaceState(
41 | { url: newPathname, as: newAsPath, options: { shallow: true } },
42 | '',
43 | newAsPath
44 | );
45 | }
46 | }
47 | }, [setEmail, router.pathname, paramName]);
48 | }
49 |
--------------------------------------------------------------------------------
/lib/hooks/use-login-status.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import useSWR, { ConfigInterface } from 'swr';
18 | import { ARCHIVE } from '@lib/constants';
19 |
20 | export default function useLoginStatus(opts?: ConfigInterface) {
21 | const { data, error, mutate } = useSWR(
22 | `/api/auth`,
23 | async url => {
24 | if (ARCHIVE) {
25 | return { loggedIn: true };
26 | }
27 | const res = await fetch(url);
28 | if (!res.ok) {
29 | throw new Error();
30 | }
31 | return res.json();
32 | },
33 | {
34 | ...opts,
35 | revalidateOnFocus: false
36 | }
37 | );
38 |
39 | return {
40 | loginStatus: error
41 | ? ('loggedOut' as const)
42 | : !data
43 | ? ('loading' as const)
44 | : ('loggedIn' as const),
45 | mutate
46 | };
47 | }
48 |
--------------------------------------------------------------------------------
/lib/is-mobile-or-tablet.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | export default function isMobileOrTablet() {
18 | // https://stackoverflow.com/a/8876069/114157
19 | const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
20 | return viewportWidth < 1200;
21 | }
22 |
--------------------------------------------------------------------------------
/lib/redis.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import Redis from 'ioredis';
18 | import crypto from 'crypto';
19 |
20 | const redis =
21 | process.env.REDIS_URL && process.env.REDIS_EMAIL_TO_ID_SECRET ? getRedisClient() : undefined;
22 |
23 | export function getRedisClient(): Redis.Redis {
24 | const url = process.env.REDIS_URL || '';
25 | const protocol = url.split(':')[0].toLowerCase();
26 | const options = {
27 | tls: protocol === 'rediss' ? { rejectUnauthorized: false } : undefined
28 | };
29 | return new Redis(process.env.REDIS_URL, options);
30 | }
31 |
32 | export function emailToId(email: string) {
33 | if (process.env.REDIS_EMAIL_TO_ID_SECRET) {
34 | const hmac = crypto.createHmac('sha1', process.env.REDIS_EMAIL_TO_ID_SECRET);
35 | hmac.update(email);
36 | const result = hmac.digest('hex');
37 | return result;
38 | } else {
39 | throw new Error('REDIS_EMAIL_TO_ID_SECRET is missing');
40 | }
41 | }
42 |
43 | export default redis;
44 |
--------------------------------------------------------------------------------
/lib/screenshot.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import chrome from 'chrome-aws-lambda';
18 | import puppeteer from 'puppeteer-core';
19 |
20 | export default async function screenshot(url: string) {
21 | const options = process.env.AWS_REGION
22 | ? {
23 | args: chrome.args,
24 | executablePath: await chrome.executablePath,
25 | headless: chrome.headless
26 | }
27 | : {
28 | args: [],
29 | executablePath:
30 | process.platform === 'win32'
31 | ? 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'
32 | : process.platform === 'linux'
33 | ? '/usr/bin/google-chrome'
34 | : '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
35 | };
36 | const browser = await puppeteer.launch(options);
37 | const page = await browser.newPage();
38 | await page.setViewport({ width: 2000, height: 1000 });
39 | await page.goto(url, { waitUntil: 'networkidle0' });
40 | return await page.screenshot({ type: 'png' });
41 | }
42 |
--------------------------------------------------------------------------------
/lib/smooth-scroll.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import smoothscroll from 'smoothscroll-polyfill';
18 |
19 | let installed = false;
20 |
21 | export default function scroll(opts: ScrollToOptions) {
22 | if (!installed) {
23 | try {
24 | smoothscroll.polyfill();
25 | } catch (err) {
26 | // eslint-disable-next-line no-console
27 | console.error('smoothscroll polyfill failed', err);
28 | return;
29 | }
30 | installed = true;
31 | }
32 |
33 | try {
34 | window.scroll({ behavior: 'smooth', ...opts });
35 | } catch (err) {
36 | // eslint-disable-next-line no-console
37 | console.error('smoothscroll polyfill failed', err);
38 | }
39 | }
40 |
41 | export const scrollTo = (el: HTMLElement, offset = 0) => {
42 | scroll({
43 | top: el.offsetTop + offset
44 | });
45 | };
46 |
--------------------------------------------------------------------------------
/lib/to-pixels.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | // Convert numbers or strings to pixel value
18 | // Helpful for styled-jsx when using a prop
19 | // height: ${toPixels(height)}; (supports height={20} and height="20px")
20 |
21 | const toPixels = (value: string | number) => {
22 | if (typeof value === 'number') {
23 | return `${value}px`;
24 | }
25 |
26 | return value;
27 | };
28 |
29 | export default toPixels;
30 |
--------------------------------------------------------------------------------
/lib/user-api.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | export async function register(email: string) {
18 | return await fetch('/api/register', {
19 | method: 'POST',
20 | headers: {
21 | 'Content-Type': 'application/json'
22 | },
23 | body: JSON.stringify({ email })
24 | });
25 | }
26 |
27 | export async function saveGithubToken({ id, token }: { id?: string; token: string }) {
28 | return await fetch('/api/save-github-token', {
29 | method: 'POST',
30 | headers: {
31 | 'Content-Type': 'application/json'
32 | },
33 | body: JSON.stringify({
34 | id,
35 | token
36 | })
37 | });
38 | }
39 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | ///
18 | ///
19 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | module.exports = {
18 | env: {
19 | GOOGLE_ANALYTICS_TRACKING_ID: process.env.GOOGLE_ANALYTICS_TRACKING_ID
20 | },
21 | images: {
22 | domains: [
23 | 'www.datocms-assets.com',
24 | 'a.storyblok.com',
25 | 'images.ctfassets.net',
26 | 'images.prismic.io',
27 | 'cdn.aglty.io',
28 | 'localhost' // For Strapi
29 | ],
30 | imageSizes: [24, 64, 300]
31 | }
32 | };
33 |
--------------------------------------------------------------------------------
/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { SSRProvider, OverlayProvider } from 'react-aria';
18 | import '@styles/global.css';
19 | import '@styles/nprogress.css';
20 | import '@styles/chrome-bug.css';
21 | import type { AppProps } from 'next/app';
22 | import NProgress from '@components/nprogress';
23 | import ResizeHandler from '@components/resize-handler';
24 | import { useEffect } from 'react';
25 | import { useRouter } from 'next/router';
26 | import { analyticsPageView } from '@components/analytics';
27 |
28 | export default function App({ Component, pageProps }: AppProps) {
29 | const router = useRouter();
30 | useEffect(() => {
31 | document.body.classList?.remove('loading');
32 |
33 | const handleRouteChange = (url: string) => {
34 | analyticsPageView(url);
35 | };
36 | router.events.on('routeChangeComplete', handleRouteChange);
37 | return () => {
38 | router.events.off('routeChangeComplete', handleRouteChange);
39 | };
40 | }, [router.events]);
41 |
42 | return (
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | );
51 | }
52 |
--------------------------------------------------------------------------------
/pages/_document.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import Document, { Html, Head, Main, NextScript } from 'next/document';
18 | import { AnalyticsHead } from '@components/analytics';
19 |
20 | export default class CustomDocument extends Document {
21 | render() {
22 | return (
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | );
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/pages/api/auth.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { NextApiRequest, NextApiResponse } from 'next';
18 | import { COOKIE, ARCHIVE } from '@lib/constants';
19 | import redis from '@lib/redis';
20 |
21 | export default async function auth(req: NextApiRequest, res: NextApiResponse) {
22 | if (ARCHIVE) {
23 | return res.status(200).json({ loggedIn: true });
24 | }
25 |
26 | const id = req.cookies[COOKIE];
27 | if (!id) {
28 | return res.status(401).json({
29 | error: {
30 | code: 'missing_cookie',
31 | message: 'Missing cookie'
32 | }
33 | });
34 | }
35 |
36 | if (redis) {
37 | const ticketNumberString = await redis.hget(`id:${id}`, 'ticketNumber');
38 |
39 | if (!ticketNumberString) {
40 | return res.status(401).json({
41 | error: {
42 | code: 'not_registered',
43 | message: 'This user is not registered'
44 | }
45 | });
46 | }
47 | }
48 |
49 | return res.status(200).json({ loggedIn: true });
50 | }
51 |
--------------------------------------------------------------------------------
/pages/api/stages.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import ms from 'ms';
18 | import { NextApiRequest, NextApiResponse } from 'next';
19 | import { getAllStages } from '@lib/cms-api';
20 |
21 | // Number of seconds to cache the API response for
22 | const EXPIRES_SECONDS = 5;
23 |
24 | export default async function getStages(_: NextApiRequest, res: NextApiResponse) {
25 | try {
26 | const allStages = await getAllStages();
27 |
28 | // Set caching headers
29 | const expires = new Date(Date.now() + ms(`${EXPIRES_SECONDS}s`));
30 | res.setHeader('Expires', expires.toUTCString());
31 | res.setHeader(
32 | 'Cache-Control',
33 | `s-maxage=${EXPIRES_SECONDS}, immutable, must-revalidate, stale-while-revalidate`
34 | );
35 |
36 | return res.status(200).json(allStages);
37 | } catch (e) {
38 | // eslint-disable-next-line no-console
39 | console.log(e);
40 |
41 | return res.status(500).json({
42 | error: {
43 | code: 'server_error',
44 | message: 'Internal server error'
45 | }
46 | });
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/pages/api/status.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Status endpoint
3 | */
4 |
5 | import { NextApiRequest, NextApiResponse } from 'next';
6 | import redis from '@lib/redis';
7 | import { getAllStages } from '@lib/cms-api';
8 |
9 | export default async function getStatus(_: NextApiRequest, res: NextApiResponse) {
10 | try {
11 | await checkRedis();
12 | await checkCms();
13 | return res.status(200).json({ status: 200, success: true });
14 | } catch (e: any) {
15 | // eslint-disable-next-line no-console
16 | console.log(e);
17 |
18 | return res.status(500).json({
19 | status: 500,
20 | success: false,
21 | failed: e.failed || 'other',
22 | error: e.message
23 | });
24 | }
25 | }
26 |
27 | async function checkRedis() {
28 | // make sure can connect to redis
29 | try {
30 | if (redis) {
31 | await redis.get('count');
32 | }
33 | } catch (e: any) {
34 | e.failed = 'redis';
35 | throw e;
36 | }
37 | }
38 |
39 | async function checkCms() {
40 | // make sure can connect to cms
41 | try {
42 | await getAllStages();
43 | } catch (e: any) {
44 | e.failed = 'cms';
45 | throw e;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/pages/conference.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { useRouter } from 'next/router';
18 | import { SkipNavContent } from '@reach/skip-nav';
19 |
20 | import Page from '@components/page';
21 | import ConfContent from '@components/conference';
22 | import { META_DESCRIPTION, META_TITLE } from '@lib/constants';
23 |
24 | export default function Conf() {
25 | const { query } = useRouter();
26 | const meta = {
27 | title: META_TITLE,
28 | description: META_DESCRIPTION
29 | };
30 | const ticketNumber = query.ticketNumber?.toString();
31 | const defaultUserData = {
32 | id: query.id?.toString(),
33 | ticketNumber: ticketNumber ? parseInt(ticketNumber, 10) : undefined,
34 | name: query.name?.toString(),
35 | username: query.username?.toString()
36 | };
37 |
38 | return (
39 |
40 | <>
41 |
42 |
46 | >
47 |
48 | );
49 | }
50 |
--------------------------------------------------------------------------------
/pages/expo.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { GetStaticProps } from 'next';
18 |
19 | import Page from '@components/page';
20 | import SponsorsGrid from '@components/sponsors-grid';
21 | import Header from '@components/header';
22 | import Layout from '@components/layout';
23 |
24 | import { getAllSponsors } from '@lib/cms-api';
25 | import { Sponsor } from '@lib/types';
26 | import { META_DESCRIPTION, META_TITLE } from '@lib/constants';
27 |
28 | type Props = {
29 | sponsors: Sponsor[];
30 | };
31 |
32 | export default function ExpoPage({ sponsors }: Props) {
33 | const meta = {
34 | title: `Partners - ${META_TITLE}`,
35 | description: META_DESCRIPTION
36 | };
37 |
38 | return (
39 |
40 |
41 |
42 |
43 |
44 |
45 | );
46 | }
47 |
48 | export const getStaticProps: GetStaticProps = async () => {
49 | const sponsors = await getAllSponsors();
50 |
51 | return {
52 | props: {
53 | sponsors
54 | },
55 | revalidate: 60
56 | };
57 | };
58 |
--------------------------------------------------------------------------------
/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import { SkipNavContent } from '@reach/skip-nav';
2 | import Page from '@components/page';
3 | import EventContent from '@components/event';
4 | import { META_DESCRIPTION, META_TITLE } from '@lib/constants';
5 |
6 | export default function Conf() {
7 | const meta = {
8 | title: META_TITLE,
9 | description: META_DESCRIPTION
10 | };
11 |
12 | return (
13 |
14 |
15 |
16 |
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/pages/jobs.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { GetStaticProps } from 'next';
18 |
19 | import Page from '@components/page';
20 | import JobsGrid from '@components/jobs-grid';
21 | import Layout from '@components/layout';
22 | import Header from '@components/header';
23 |
24 | import { getAllJobs } from '@lib/cms-api';
25 | import { Job } from '@lib/types';
26 | import { META_DESCRIPTION, META_TITLE } from '@lib/constants';
27 |
28 | type Props = {
29 | jobs: Job[];
30 | };
31 |
32 | export default function Jobs({ jobs }: Props) {
33 | const meta = {
34 | title: `Career Fair - ${META_TITLE}`,
35 | description: META_DESCRIPTION
36 | };
37 |
38 | return (
39 |
40 |
41 |
42 |
43 |
44 |
45 | );
46 | }
47 |
48 | export const getStaticProps: GetStaticProps = async () => {
49 | const jobs = await getAllJobs();
50 |
51 | return {
52 | props: {
53 | jobs
54 | },
55 | revalidate: 60
56 | };
57 | };
58 |
--------------------------------------------------------------------------------
/pages/schedule.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { GetStaticProps } from 'next';
18 |
19 | import Page from '@components/page';
20 | import Schedule from '@components/schedule';
21 | import Layout from '@components/layout';
22 | import Header from '@components/header';
23 |
24 | import { getAllStages } from '@lib/cms-api';
25 | import { Stage } from '@lib/types';
26 | import { META_DESCRIPTION, META_TITLE } from '@lib/constants';
27 |
28 | type Props = {
29 | allStages: Stage[];
30 | };
31 |
32 | export default function SchedulePage({ allStages }: Props) {
33 | const meta = {
34 | title: `Schedule - ${META_TITLE}`,
35 | description: META_DESCRIPTION
36 | };
37 |
38 | return (
39 |
40 |
41 |
42 |
43 |
44 |
45 | );
46 | }
47 |
48 | export const getStaticProps: GetStaticProps = async () => {
49 | const allStages = await getAllStages();
50 |
51 | return {
52 | props: {
53 | allStages
54 | },
55 | revalidate: 60
56 | };
57 | };
58 |
--------------------------------------------------------------------------------
/pages/speakers.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import { GetStaticProps } from 'next';
18 |
19 | import Page from '@components/page';
20 | import SpeakersGrid from '@components/speakers-grid';
21 | import Layout from '@components/layout';
22 | import Header from '@components/header';
23 |
24 | import { getAllSpeakers } from '@lib/cms-api';
25 | import { Speaker } from '@lib/types';
26 | import { META_DESCRIPTION, META_TITLE } from '@lib/constants';
27 |
28 | type Props = {
29 | speakers: Speaker[];
30 | };
31 |
32 | export default function Speakers({ speakers }: Props) {
33 | const meta = {
34 | title: `Speakers - ${META_TITLE}`,
35 | description: META_DESCRIPTION
36 | };
37 | return (
38 |
39 |
40 |
41 |
42 |
43 |
44 | );
45 | }
46 |
47 | export const getStaticProps: GetStaticProps = async () => {
48 | const speakers = await getAllSpeakers();
49 |
50 | return {
51 | props: {
52 | speakers
53 | },
54 | revalidate: 60
55 | };
56 | };
57 |
--------------------------------------------------------------------------------
/pages/ticket-image.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import TicketImage from '@components/ticket-image';
18 |
19 | export default function TicketOnlyPage() {
20 | return ;
21 | }
22 |
--------------------------------------------------------------------------------
/postcss.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | "postcss-hover-media-feature",
4 | "postcss-flexbugs-fixes",
5 | [
6 | "postcss-preset-env",
7 | {
8 | "autoprefixer": {
9 | "flexbox": "no-2009"
10 | },
11 | "stage": 3,
12 | "features": {
13 | "custom-properties": false
14 | }
15 | }
16 | ]
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/bg.png
--------------------------------------------------------------------------------
/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/favicon-16x16.png
--------------------------------------------------------------------------------
/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/favicon-32x32.png
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/favicon.ico
--------------------------------------------------------------------------------
/public/icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/icon-192x192.png
--------------------------------------------------------------------------------
/public/icon-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/icon-512x512.png
--------------------------------------------------------------------------------
/public/pipeline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/pipeline.png
--------------------------------------------------------------------------------
/public/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Open Source Data Stack",
3 | "short_name": "Open Source Data Stack",
4 | "description": "Building the modern stack with open source data solutions.",
5 | "display": "standalone",
6 | "start_url": "/",
7 | "theme_color": "#fff",
8 | "background_color": "#000000",
9 | "orientation": "portrait",
10 | "icons": [
11 | {
12 | "src": "/icon-192x192.png",
13 | "type": "image/png",
14 | "sizes": "192x192"
15 | },
16 | {
17 | "src": "/icon-512x512.png",
18 | "type": "image/png",
19 | "sizes": "512x512"
20 | }
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/public/twitter-card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/public/twitter-card.png
--------------------------------------------------------------------------------
/styles/chrome-bug.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Chrome has a bug with transitions on load since 2012!
3 | *
4 | * To prevent a "pop" of content, you have to disable all transitions until
5 | * the page is done loading.
6 | *
7 | * https://lab.laukstein.com/bug/input
8 | * https://twitter.com/timer150/status/1345217126680899584
9 | */
10 | body.loading * {
11 | transition: none !important;
12 | }
13 |
--------------------------------------------------------------------------------
/styles/nprogress.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2020 Vercel Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | /* Make clicks pass-through */
18 | #nprogress {
19 | pointer-events: none;
20 | }
21 |
22 | #nprogress .bar {
23 | background: #845ef7;
24 | position: fixed;
25 | z-index: 1031;
26 | top: 0;
27 | left: 0;
28 | width: 100%;
29 | height: 2px;
30 | }
31 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "target": "es5",
5 | "lib": ["dom", "dom.iterable", "esnext"],
6 | "allowJs": true,
7 | "skipLibCheck": true,
8 | "strict": true,
9 | "forceConsistentCasingInFileNames": true,
10 | "noEmit": true,
11 | "esModuleInterop": true,
12 | "module": "esnext",
13 | "moduleResolution": "node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "jsx": "preserve",
17 | "paths": {
18 | "@components/*": ["components/*"],
19 | "@lib/*": ["lib/*"],
20 | "@styles/*": ["styles/*"]
21 | }
22 | },
23 | "exclude": ["node_modules"],
24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"]
25 | }
26 |
--------------------------------------------------------------------------------