diff --git a/static-site/app/contact/page.tsx b/static-site/app/contact/page.tsx new file mode 100644 index 000000000..803bd60a0 --- /dev/null +++ b/static-site/app/contact/page.tsx @@ -0,0 +1,57 @@ +import type { Metadata } from "next"; +import React from "react"; + +import { BigSpacer } from "../../components/spacers"; +import FlexCenter from "../../components/flex-center"; +import { FocusParagraphNarrow } from "../../components/focus-paragraph"; + +export const metadata: Metadata = { + title: "Contact", +}; + +export default function ContactPage(): React.ReactElement { + return ( + <> + + +

Contact Us

+ + + + We are a small team, but connecting with users is important to us. +
+
+ If you have a general question about Nextstrain, we encourage you to + post on our{" "} + + discussion forum + + , where both Nextstrain team members and other community members can + assist you. +
+
+ To send a bug report or feature request, please open an issue in one + of our{" "} + + GitHub repositories + + . +
+
+ For private inquiries, you can reach us at hello + obfuscate@nextstrain.org. +
+
+ We also host office hours via Zoom every week on Thursdays at 10AM US + Pacific time. Email us for the meeting link. +
+
+ + + + ); +} diff --git a/static-site/app/layout.tsx b/static-site/app/layout.tsx new file mode 100644 index 000000000..645b8cd9e --- /dev/null +++ b/static-site/app/layout.tsx @@ -0,0 +1,88 @@ +import { Metadata } from "next"; +import { Lato } from "next/font/google"; +import React from "react"; + +import { BigSpacer } from "../components/spacers"; +import Footer from "../components/footer"; +import Line from "../components/line"; +import Nav from "../components/nav"; +import PlausibleAnalytics from "../components/plausible-analytics/"; +import { + blogFeedUrls, + groupsApp, + siteTitle, + siteTitleAlt, +} from "../data/BaseConfig"; +import UserDataWrapper from "../components/user-data-wrapper"; + +import "./styles/browserCompatability.css"; +import "./styles/bootstrap.css"; +import "./styles/globals.css"; + +// Custom fonts bundled (i.e. no external requests), see +// +const lato = Lato({ + style: ["normal", "italic"], + subsets: ["latin"], + variable: "--lato", + weight: ["300", "400", "700"], +}); + +export const metadata: Metadata = { + title: { + absolute: siteTitle, + template: `%s - ${siteTitle}`, + }, + description: siteTitleAlt, +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}): React.ReactElement { + return ( + + + {!groupsApp && ( + <> + + + + + + )} + + + +