├── .env.local.example ├── .eslintrc.json ├── .gitignore ├── .nvmrc ├── .prettierrc ├── .prettierrc.json ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── assets ├── Architectural Diagrams.fig ├── graph-background.png ├── graph-dark.png ├── graph-white.png ├── pipeline.pxd │ ├── QuickLook │ │ ├── Icon.tiff │ │ └── Thumbnail.tiff │ ├── data │ │ └── 0100B119-E25C-4A59-8435-AB7E8D376886 │ └── metadata.info └── twitter-card.pxd │ ├── QuickLook │ ├── Icon.tiff │ └── Thumbnail.tiff │ ├── data │ ├── 4582745E-1CC3-471E-AB32-9FC4702FCCD2 │ ├── 9BB7E6EF-5C8D-4623-BEA5-D8DEA3079C8F │ ├── CF7816CD-D1ED-4259-AD0D-1DEA12510266 │ └── originalImportedContentDocumentInfo │ └── metadata.info ├── components ├── add-calendars.module.css ├── add-calendars.tsx ├── analytics.tsx ├── archive-cta.module.css ├── archive-cta.tsx ├── conf-container.module.css ├── conf-container.tsx ├── conf-entry.module.css ├── conf-entry.tsx ├── conference.tsx ├── contact.module.css ├── event-description.module.css ├── event-description.tsx ├── event.tsx ├── footer.module.css ├── footer.tsx ├── form.module.css ├── form.tsx ├── header.module.css ├── header.tsx ├── hero.module.css ├── hero.tsx ├── icons │ ├── icon-add-calendar.tsx │ ├── icon-avatar.tsx │ ├── icon-check.tsx │ ├── icon-copy.tsx │ ├── icon-download.tsx │ ├── icon-github.tsx │ ├── icon-linkedin.tsx │ ├── icon-logo.tsx │ ├── icon-platform.tsx │ ├── icon-transition.module.css │ └── icon-twitter.tsx ├── jobs-grid.module.css ├── jobs-grid.tsx ├── layout.module.css ├── layout.tsx ├── learn-more.tsx ├── loading-dots.module.css ├── loading-dots.tsx ├── logo.module.css ├── logo.tsx ├── mobile-menu.module.css ├── mobile-menu.tsx ├── nprogress.tsx ├── page.tsx ├── pipeline.module.css ├── pipeline.tsx ├── resize-handler.tsx ├── schedule-sidebar.module.css ├── schedule-sidebar.tsx ├── schedule.module.css ├── schedule.tsx ├── select.module.css ├── select.tsx ├── speaker-section.module.css ├── speaker-section.tsx ├── speakers-grid.module.css ├── speakers-grid.tsx ├── sponsor-section.module.css ├── sponsor-section.tsx ├── sponsors-grid.module.css ├── sponsors-grid.tsx ├── stage-container.module.css ├── stage-container.tsx ├── talk-card.module.css ├── talk-card.tsx ├── ticket-actions.module.css ├── ticket-actions.tsx ├── ticket-colored-mobile.tsx ├── ticket-colored.tsx ├── ticket-copy.module.css ├── ticket-copy.tsx ├── ticket-form.module.css ├── ticket-form.tsx ├── ticket-image.module.css ├── ticket-image.tsx ├── ticket-info.module.css ├── ticket-info.tsx ├── ticket-mono-mobile.tsx ├── ticket-mono.tsx ├── ticket-number.tsx ├── ticket-profile.module.css ├── ticket-profile.tsx ├── ticket-visual.module.css ├── ticket-visual.tsx ├── ticket.module.css ├── ticket.tsx ├── utils.module.css ├── view-source.module.css └── view-source.tsx ├── datocms.json ├── lib ├── cms-api.ts ├── cms-providers │ ├── agility.ts │ ├── contentful.ts │ ├── dato.ts │ ├── prismic │ │ ├── README.md │ │ ├── custom_types │ │ │ ├── company.json │ │ │ ├── index.json │ │ │ ├── job.json │ │ │ ├── speaker.json │ │ │ ├── stage.json │ │ │ └── talk.json │ │ ├── documents │ │ │ ├── en-us │ │ │ │ ├── X9i-DBIAACgA5eEx=#=X9jpRBIAACkA5qfq=#=speaker=#=X9i-DBIAACgA5eEz=#=en-us=#=y.json │ │ │ │ ├── X9i-mRIAACcA5ePU=#=X9uHQxIAACgA8pQy=#=speaker=#=X9i-mRIAACcA5ePW=#=en-us=#=y.json │ │ │ │ ├── X9i-rhIAACgA5eQ0=#=X9j3-hIAACkA5uxv=#=speaker=#=X9i-rhIAACgA5eQ2=#=en-us=#=y.json │ │ │ │ ├── X9i0JBIAACgA5bdM=#=X9kEZxIAACYA5yXE=#=speaker=#=X9i0JBIAACgA5bdO=#=en-us=#=y.json │ │ │ │ ├── X9i0lBIAACYA5blV=#=X9kEIhIAACcA5ySF=#=speaker=#=X9i0lBIAACYA5blX=#=en-us=#=y.json │ │ │ │ ├── X9i28BIAACcA5cQW=#=X9jhABIAACkA5oGg=#=speaker=#=X9i28BIAACcA5cQY=#=en-us=#=y.json │ │ │ │ ├── X9i3AxIAACcA5cRx=#=X9kKlRIAACgA50FH=#=speaker=#=X9i3AxIAACcA5cRz=#=en-us=#=y.json │ │ │ │ ├── X9i4gBIAACYA5ctf=#=X9kEQxIAACkA5yUe=#=speaker=#=X9i4gBIAACYA5cth=#=en-us=#=y.json │ │ │ │ ├── X9i51hIAACcA5dFu=#=X9j71RIAACgA5v4S=#=speaker=#=X9i51hIAACcA5dFw=#=en-us=#=y.json │ │ │ │ ├── X9i5nxIAACcA5dBn=#=X9jsZRIAACkA5rZv=#=speaker=#=X9i5nxIAACcA5dBp=#=en-us=#=y.json │ │ │ │ ├── X9i8PxIAACkA5dov=#=X9j2zxIAACYA5ubk=#=speaker=#=X9i8PxIAACkA5dox=#=en-us=#=y.json │ │ │ │ ├── X9i9XhIAACgA5d4P=#=X9jmKRIAACgA5pmP=#=speaker=#=X9i9XhIAACgA5d4R=#=en-us=#=y.json │ │ │ │ ├── X9it0BIAACYA5Zk9=#=X9kkvxIAACkA57PC=#=job=#=X9it0BIAACYA5Zk_=#=en-us=#=y.json │ │ │ │ ├── X9itWRIAACcA5Zcc=#=X9uGPBIAACcA8o9o=#=job=#=X9itWRIAACcA5Zce=#=en-us=#=y.json │ │ │ │ ├── X9itmRIAACkA5ZhF=#=X9kktxIAACkA57Oa=#=job=#=X9itmRIAACkA5ZhH=#=en-us=#=y.json │ │ │ │ ├── X9iuNRIAACgA5ZsV=#=X9kkzBIAACkA57P-=#=job=#=X9iuNRIAACgA5ZsX=#=en-us=#=y.json │ │ │ │ ├── X9iuXxIAACYA5ZvT=#=X9kk1RIAACcA57Qo=#=job=#=X9iuXxIAACYA5ZvV=#=en-us=#=y.json │ │ │ │ ├── X9iu_BIAACcA5Z6e=#=X9kk8RIAACkA57Sm=#=job=#=X9iu_BIAACcA5Z6g=#=en-us=#=y.json │ │ │ │ ├── X9iulxIAACYA5ZzK=#=X9kk3xIAACcA57RS=#=job=#=X9iulxIAACYA5ZzM=#=en-us=#=y.json │ │ │ │ ├── X9iutxIAACcA5Z1h=#=X9kk5xIAACcA57R7=#=job=#=X9iutxIAACcA5Z1j=#=en-us=#=y.json │ │ │ │ ├── X9ivKxIAACgA5Z9t=#=X9kk-hIAACYA57TQ=#=job=#=X9ivKxIAACgA5Z9v=#=en-us=#=y.json │ │ │ │ ├── X9ivYxIAACgA5aBx=#=X9klAhIAACYA57T6=#=job=#=X9ivYxIAACgA5aBz=#=en-us=#=y.json │ │ │ │ ├── X9ivfhIAACYA5aDq=#=X9jiThIAACcA5oe-=#=speaker=#=X9ivfhIAACYA5aDs=#=en-us=#=y.json │ │ │ │ ├── X9izVBIAACcA5bOL=#=X9jg8RIAACYA5oFZ=#=speaker=#=X9izVBIAACcA5bON=#=en-us=#=y.json │ │ │ │ ├── X9j2tRIAACgA5uZq=#=X9j3BhIAACgA5uf2=#=talk=#=X9j2tRIAACgA5uZs=#=en-us=#=y.json │ │ │ │ ├── X9j3OhIAACgA5ujr=#=X9j3hxIAACcA5upQ=#=talk=#=X9j3OhIAACgA5ujt=#=en-us=#=y.json │ │ │ │ ├── X9j3yhIAACgA5uuF=#=X9j4KhIAACgA5u1K=#=talk=#=X9j3yhIAACgA5uuH=#=en-us=#=y.json │ │ │ │ ├── X9j7yxIAACgA5v3j=#=X9j8BRIAACcA5v7z=#=talk=#=X9j7yxIAACgA5v3l=#=en-us=#=y.json │ │ │ │ ├── X9j8WRIAACgA5wB6=#=X9j8kBIAACkA5wFv=#=talk=#=X9j8WRIAACgA5wB8=#=en-us=#=y.json │ │ │ │ ├── X9j8vRIAACgA5wJP=#=X9j87hIAACgA5wM-=#=talk=#=X9j8vRIAACgA5wJR=#=en-us=#=y.json │ │ │ │ ├── X9jBeBIAACgA5e99=#=X9jg2xIAACcA5oDx=#=speaker=#=X9jBeBIAACgA5e9_=#=en-us=#=y.json │ │ │ │ ├── X9jJhRIAACcA5hNe=#=X9j8zhIAACkA5wKa=#=speaker=#=X9jJhRIAACcA5hNg=#=en-us=#=y.json │ │ │ │ ├── X9jK8xIAACkA5hoI=#=X9jrWBIAACkA5rGS=#=speaker=#=X9jK8xIAACkA5hoK=#=en-us=#=y.json │ │ │ │ ├── X9jKoxIAACcA5hiZ=#=X9kJyhIAACgA5z3f=#=speaker=#=X9jKoxIAACcA5hib=#=en-us=#=y.json │ │ │ │ ├── X9jLzxIAACYA5h39=#=X9kJlhIAACgA5zzu=#=speaker=#=X9jLzxIAACYA5h3_=#=en-us=#=y.json │ │ │ │ ├── X9jM4BIAACkA5iLV=#=X9kFhhIAACgA5yrO=#=speaker=#=X9jM4BIAACkA5iLX=#=en-us=#=y.json │ │ │ │ ├── X9jMFBIAACYA5h85=#=X9jxEBIAACgA5sxR=#=speaker=#=X9jMFBIAACYA5h87=#=en-us=#=y.json │ │ │ │ ├── X9jMURIAACYA5iBY=#=X9kFFxIAACkA5yjg=#=speaker=#=X9jMURIAACYA5iBa=#=en-us=#=y.json │ │ │ │ ├── X9jMkBIAACcA5iF1=#=X9j3WBIAACkA5ul6=#=speaker=#=X9jMkBIAACcA5iF3=#=en-us=#=y.json │ │ │ │ ├── X9jOMxIAACgA5ij1=#=X9kGvRIAACkA5zBE=#=speaker=#=X9jOMxIAACgA5ij3=#=en-us=#=y.json │ │ │ │ ├── X9jPLhIAACgA5i14=#=X9kHFRIAACkA5zHX=#=speaker=#=X9jPLhIAACgA5i16=#=en-us=#=y.json │ │ │ │ ├── X9jQ0hIAACYA5jVk=#=X9jw6BIAACkA5suh=#=speaker=#=X9jQ0hIAACYA5jVm=#=en-us=#=y.json │ │ │ │ ├── X9jQlhIAACYA5jQu=#=X9kHjRIAACgA5zP1=#=speaker=#=X9jQlhIAACYA5jQw=#=en-us=#=y.json │ │ │ │ ├── X9jRbBIAACgA5jhp=#=X9j32xIAACYA5uvc=#=speaker=#=X9jRbBIAACgA5jhr=#=en-us=#=y.json │ │ │ │ ├── X9jSWRIAACgA5jyo=#=X9j8ZRIAACcA5wCx=#=speaker=#=X9jSWRIAACgA5jyq=#=en-us=#=y.json │ │ │ │ ├── X9jSfBIAACgA5j1U=#=X9jVTRIAACgA5kpx=#=speaker=#=X9jSfBIAACgA5j1W=#=en-us=#=y.json │ │ │ │ ├── X9jT0hIAACgA5kON=#=X9jpqhIAACkA5qnA=#=speaker=#=X9jT0hIAACgA5kOP=#=en-us=#=y.json │ │ │ │ ├── X9jUfxIAACcA5ka7=#=X9jWpBIAACkA5lCt=#=speaker=#=X9jUfxIAACcA5ka9=#=en-us=#=y.json │ │ │ │ ├── X9jVQxIAACgA5kpB=#=X9jbExIAACcA5mYK=#=talk=#=X9jVQxIAACgA5kpD=#=en-us=#=y.json │ │ │ │ ├── X9jWmRIAACYA5lBt=#=X9jbHhIAACcA5mY9=#=talk=#=X9jWmRIAACYA5lBv=#=en-us=#=y.json │ │ │ │ ├── X9jddRIAACcA5nEu=#=X9jgYhIAACgA5n7J=#=talk=#=X9jddRIAACcA5nEw=#=en-us=#=y.json │ │ │ │ ├── X9jiORIAACgA5odb=#=X9jjBBIAACkA5or2=#=talk=#=X9jiORIAACgA5odd=#=en-us=#=y.json │ │ │ │ ├── X9jmGxIAACkA5plN=#=X9jmexIAACcA5psF=#=talk=#=X9jmGxIAACkA5plP=#=en-us=#=y.json │ │ │ │ ├── X9jmoBIAACcA5pu4=#=X9jnNhIAACYA5p5s=#=talk=#=X9jmoBIAACcA5pu6=#=en-us=#=y.json │ │ │ │ ├── X9joshIAACgA5qVC=#=X9jpexIAACkA5qjg=#=talk=#=X9joshIAACgA5qVE=#=en-us=#=y.json │ │ │ │ ├── X9jpoRIAACcA5qmT=#=X9jqohIAACYA5q5F=#=talk=#=X9jpoRIAACcA5qmV=#=en-us=#=y.json │ │ │ │ ├── X9jrThIAACkA5rFj=#=X9jsEBIAACkA5rTl=#=talk=#=X9jrThIAACkA5rFl=#=en-us=#=y.json │ │ │ │ ├── X9jsWRIAACgA5rYy=#=X9jslBIAACcA5rdM=#=talk=#=X9jsWRIAACgA5rY0=#=en-us=#=y.json │ │ │ │ ├── X9jw3hIAACkA5stx=#=X9jxQRIAACcA5s05=#=talk=#=X9jw3hIAACkA5stz=#=en-us=#=y.json │ │ │ │ ├── X9kEExIAACcA5yQ_=#=X9kEjxIAACcA5yZ4=#=talk=#=X9kEExIAACcA5yRB=#=en-us=#=y.json │ │ │ │ ├── X9kEwBIAACcA5ydY=#=X9kE8BIAACgA5ygr=#=talk=#=X9kEwBIAACcA5yda=#=en-us=#=y.json │ │ │ │ ├── X9kFDxIAACkA5yi4=#=X9kFPhIAACYA5ymR=#=talk=#=X9kFDxIAACkA5yi6=#=en-us=#=y.json │ │ │ │ ├── X9kFeRIAACgA5yqX=#=X9kFuhIAACYA5yu6=#=talk=#=X9kFeRIAACgA5yqZ=#=en-us=#=y.json │ │ │ │ ├── X9kGsxIAACgA5zAR=#=X9kG6BIAACcA5zEM=#=talk=#=X9kGsxIAACgA5zAT=#=en-us=#=y.json │ │ │ │ ├── X9kHDBIAACcA5zGs=#=X9kHTBIAACgA5zLP=#=talk=#=X9kHDBIAACcA5zGu=#=en-us=#=y.json │ │ │ │ ├── X9kHdBIAACcA5zOI=#=X9kHsxIAACgA5zSg=#=talk=#=X9kHdBIAACcA5zOK=#=en-us=#=y.json │ │ │ │ ├── X9kX-BIAACcA53pG=#=X9uAxRIAACgA8nXO=#=stage=#=X9kX-BIAACcA53pI=#=en-us=#=y.json │ │ │ │ ├── X9kZrBIAACcA54Hl=#=X9kZrBIAACcA54Hm=#=stage=#=X9kZrBIAACcA54Hn=#=en-us=#=y.json │ │ │ │ ├── X9kb_xIAACgA54w7=#=X9kb_xIAACgA54w8=#=stage=#=X9kb_xIAACgA54w9=#=en-us=#=y.json │ │ │ │ ├── X9kc1RIAACgA54_x=#=X9kc1RIAACgA54_y=#=stage=#=X9kc1RIAACgA54_z=#=en-us=#=y.json │ │ │ │ ├── X9kdoxIAACgA55OH=#=X9uJFhIAACYA8pzV=#=company=#=X9kdoxIAACgA55OJ=#=en-us=#=y.json │ │ │ │ ├── X9kf3BIAACYA5516=#=X9tnhxIAACYA8f8N=#=company=#=X9kf3BIAACYA5518=#=en-us=#=y.json │ │ │ │ ├── X9kfrxIAACcA55yr=#=X9tndRIAACYA8f65=#=company=#=X9kfrxIAACcA55yt=#=en-us=#=y.json │ │ │ │ ├── X9kgRhIAACkA559X=#=X9tnmBIAACYA8f9f=#=company=#=X9kgRhIAACkA559Z=#=en-us=#=y.json │ │ │ │ ├── X9kgUxIAACcA55-W=#=X9tnqhIAACYA8f-s=#=company=#=X9kgUxIAACcA55-Y=#=en-us=#=y.json │ │ │ │ ├── X9kgYRIAACcA55_d=#=X9tnvhIAACgA8gAL=#=company=#=X9kgYRIAACcA55_f=#=en-us=#=y.json │ │ │ │ ├── X9kgbxIAACkA56Aa=#=X9tn0BIAACcA8gBd=#=company=#=X9kgbxIAACkA56Ac=#=en-us=#=y.json │ │ │ │ ├── X9kgeRIAACcA56BM=#=X9tn4BIAACcA8gCr=#=company=#=X9kgeRIAACcA56BO=#=en-us=#=y.json │ │ │ │ ├── X9kghhIAACYA56CQ=#=X9tn8RIAACcA8gEI=#=company=#=X9kghhIAACYA56CS=#=en-us=#=y.json │ │ │ │ ├── X9kgkBIAACcA56DB=#=X9toAhIAACkA8gFc=#=company=#=X9kgkBIAACcA56DD=#=en-us=#=y.json │ │ │ │ ├── X9kgnBIAACkA56D2=#=X9toExIAACkA8gGt=#=company=#=X9kgnBIAACkA56D4=#=en-us=#=y.json │ │ │ │ ├── X9kgpxIAACgA56Ev=#=X9toIxIAACcA8gH8=#=company=#=X9kgpxIAACgA56Ex=#=en-us=#=y.json │ │ │ │ ├── X9kgtBIAACkA56Fx=#=X9toNhIAACgA8gJV=#=company=#=X9kgtBIAACkA56Fz=#=en-us=#=y.json │ │ │ │ ├── X9kgwBIAACcA56Go=#=X9toRxIAACgA8gKp=#=company=#=X9kgwBIAACcA56Gq=#=en-us=#=y.json │ │ │ │ └── X9khIBIAACgA56Na=#=X9toXBIAACgA8gMI=#=company=#=X9khIBIAACgA56Nc=#=en-us=#=y.json │ │ │ └── index.json │ │ ├── index.ts │ │ └── utils.ts │ ├── storyblok.ts │ └── strapi.ts ├── constants.ts ├── form-error.ts ├── hooks │ ├── use-conf-data.ts │ ├── use-email-query-param.ts │ └── use-login-status.ts ├── is-mobile-or-tablet.ts ├── redis.ts ├── render-github-popup.ts ├── schedule.ts ├── screenshot.ts ├── smooth-scroll.ts ├── to-pixels.ts ├── types.ts └── user-api.ts ├── next-env.d.ts ├── next.config.js ├── package.json ├── pages ├── _app.tsx ├── _document.tsx ├── api │ ├── auth.ts │ ├── github-oauth.ts │ ├── register.ts │ ├── save-github-token.ts │ ├── stages.ts │ ├── status.ts │ └── ticket-images │ │ └── [username].tsx ├── conference.tsx ├── expo.tsx ├── expo │ └── [slug].tsx ├── index.tsx ├── jobs.tsx ├── schedule.tsx ├── speakers.tsx ├── speakers │ └── [slug].tsx ├── stage │ └── [slug].tsx ├── ticket-image.tsx └── tickets │ └── [username].tsx ├── postcss.config.json ├── public ├── OSDSConfCodeofConduct.html ├── apple-touch-icon.png ├── bg.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── icon-192x192.png ├── icon-512x512.png ├── pipeline.png ├── site.webmanifest └── twitter-card.png ├── styles ├── chrome-bug.css ├── global.css └── nprogress.css ├── tsconfig.json └── yarn.lock /.env.local.example: -------------------------------------------------------------------------------- 1 | # Allows you to view CMS seed data 2 | DATOCMS_READ_ONLY_API_TOKEN=a45ce78f9b2053c229bbfe9e3fca7b 3 | 4 | # If you’d like to enable GitHub OAuth, fill these below 5 | NEXT_PUBLIC_GITHUB_OAUTH_CLIENT_ID= 6 | GITHUB_OAUTH_CLIENT_SECRET= 7 | # To test GitHub OAuth locally, set NEXT_PUBLIC_SITE_ORIGIN as http://localhost:3000 8 | NEXT_PUBLIC_SITE_ORIGIN=http://localhost:3000 9 | 10 | # If you’d like to use a Redis database to store user data in the API routes, 11 | # fill in the full url these below. See: lib/redis.ts 12 | REDIS_URL="redis://localhost:6379/6" 13 | REDIS_EMAIL_TO_ID_SECRET= 14 | 15 | # fill out to set up analytics 16 | # GOOGLE_ANALYTICS_TRACKING_ID=G-XYZ 17 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "@typescript-eslint/parser", 3 | "plugins": ["@typescript-eslint", "react-hooks"], 4 | "parserOptions": { 5 | "project": "./tsconfig.json" 6 | }, 7 | "extends": [ 8 | "plugin:@typescript-eslint/eslint-recommended", 9 | "plugin:@typescript-eslint/recommended", 10 | "plugin:@typescript-eslint/recommended-requiring-type-checking", 11 | "prettier", 12 | "prettier/@typescript-eslint", 13 | "prettier/react" 14 | ], 15 | "rules": { 16 | "@typescript-eslint/explicit-module-boundary-types": 0, 17 | "react-hooks/rules-of-hooks": "error", 18 | "react-hooks/exhaustive-deps": "warn", 19 | "@typescript-eslint/no-unsafe-member-access": 0, 20 | "@typescript-eslint/no-non-null-assertion": 0, 21 | "@typescript-eslint/no-explicit-any": 0, 22 | "@typescript-eslint/no-unsafe-assignment": 0, 23 | "@typescript-eslint/restrict-template-expressions": 0, 24 | "@typescript-eslint/no-empty-function": 0 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env.local 29 | .env.development.local 30 | .env.test.local 31 | .env.production.local 32 | 33 | # vercel 34 | .vercel 35 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 12 -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "printWidth": 100, 4 | "trailingComma": "none", 5 | "arrowParens": "avoid", 6 | "endOfLine": "auto" 7 | } 8 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "printWidth": 100, 4 | "trailingComma": "none", 5 | "arrowParens": "avoid", 6 | "endOfLine": "auto" 7 | } 8 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * chibicode leerob 2 | 3 | -------------------------------------------------------------------------------- /assets/Architectural Diagrams.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/Architectural Diagrams.fig -------------------------------------------------------------------------------- /assets/graph-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/graph-background.png -------------------------------------------------------------------------------- /assets/graph-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/graph-dark.png -------------------------------------------------------------------------------- /assets/graph-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/graph-white.png -------------------------------------------------------------------------------- /assets/pipeline.pxd/QuickLook/Icon.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/pipeline.pxd/QuickLook/Icon.tiff -------------------------------------------------------------------------------- /assets/pipeline.pxd/QuickLook/Thumbnail.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/pipeline.pxd/QuickLook/Thumbnail.tiff -------------------------------------------------------------------------------- /assets/pipeline.pxd/data/0100B119-E25C-4A59-8435-AB7E8D376886: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/pipeline.pxd/data/0100B119-E25C-4A59-8435-AB7E8D376886 -------------------------------------------------------------------------------- /assets/pipeline.pxd/metadata.info: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/pipeline.pxd/metadata.info -------------------------------------------------------------------------------- /assets/twitter-card.pxd/QuickLook/Icon.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/twitter-card.pxd/QuickLook/Icon.tiff -------------------------------------------------------------------------------- /assets/twitter-card.pxd/QuickLook/Thumbnail.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/twitter-card.pxd/QuickLook/Thumbnail.tiff -------------------------------------------------------------------------------- /assets/twitter-card.pxd/data/4582745E-1CC3-471E-AB32-9FC4702FCCD2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/twitter-card.pxd/data/4582745E-1CC3-471E-AB32-9FC4702FCCD2 -------------------------------------------------------------------------------- /assets/twitter-card.pxd/data/9BB7E6EF-5C8D-4623-BEA5-D8DEA3079C8F: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/twitter-card.pxd/data/9BB7E6EF-5C8D-4623-BEA5-D8DEA3079C8F -------------------------------------------------------------------------------- /assets/twitter-card.pxd/data/CF7816CD-D1ED-4259-AD0D-1DEA12510266: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/twitter-card.pxd/data/CF7816CD-D1ED-4259-AD0D-1DEA12510266 -------------------------------------------------------------------------------- /assets/twitter-card.pxd/data/originalImportedContentDocumentInfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/twitter-card.pxd/data/originalImportedContentDocumentInfo -------------------------------------------------------------------------------- /assets/twitter-card.pxd/metadata.info: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grouparoo/open_source_data_stack_conference/856ac8eb79c154869f6e5b6d11e48db9107028b9/assets/twitter-card.pxd/metadata.info -------------------------------------------------------------------------------- /components/add-calendars.module.css: -------------------------------------------------------------------------------- 1 | .container { 2 | margin-left: 10px; 3 | } 4 | .cta { 5 | font-size: 18px; 6 | color: #fff; 7 | font-weight: bold; 8 | margin: 0px; 9 | } 10 | .buttons { 11 | margin: 0px; 12 | } 13 | .buttonLink { 14 | display: inline; 15 | } 16 | .buttonImage { 17 | width: 45px; 18 | display: inline; 19 | } 20 | -------------------------------------------------------------------------------- /components/analytics.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-unsafe-call */ 2 | import { SITE_URL } from '@lib/constants'; 3 | 4 | const GoogleAnalyticsTrackingID = process.env.GOOGLE_ANALYTICS_TRACKING_ID; 5 | 6 | export function analyticsPageView(path: string) { 7 | const windowobj: any = globalThis; 8 | if (GoogleAnalyticsTrackingID && windowobj?.gtag) { 9 | windowobj.gtag('config', GoogleAnalyticsTrackingID, { 10 | page_path: path, 11 | page_location: `${SITE_URL}${path}`, 12 | page_title: window?.document?.title 13 | }); 14 | } 15 | } 16 | 17 | export function analyticsRegistration(): void { 18 | const windowobj: any = globalThis; 19 | if (GoogleAnalyticsTrackingID && windowobj?.gtag) { 20 | windowobj.gtag('event', 'registration', { 21 | event_callback: () => {} 22 | }); 23 | } 24 | } 25 | 26 | export function AnalyticsHead() { 27 | if (!GoogleAnalyticsTrackingID) { 28 | return null; 29 | } 30 | 31 | return ( 32 | <> 33 |