From 9676667138ceed36f026f98174a599343be5eda6 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 14 Apr 2025 08:54:00 -0400 Subject: [PATCH 1/6] feat: add /faqs page --- .astro/types.d.ts | 1 - package.json | 1 + pnpm-lock.yaml | 12 + src/assets/glyphs/dropdown.svg | 13 + src/components/Header.astro | 4 +- src/layouts/base.css | 2 + .../how-to-attend-squiggleconf-for-free.astro | 12 +- src/pages/cfp.astro | 8 + src/pages/faqs.astro | 255 ++++++++++++++++++ 9 files changed, 298 insertions(+), 10 deletions(-) create mode 100644 src/assets/glyphs/dropdown.svg create mode 100644 src/pages/faqs.astro diff --git a/.astro/types.d.ts b/.astro/types.d.ts index 03d7cc4..f964fe0 100644 --- a/.astro/types.d.ts +++ b/.astro/types.d.ts @@ -1,2 +1 @@ /// -/// \ No newline at end of file diff --git a/package.json b/package.json index 2000ec8..87a56fd 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "dependencies": { "@astrojs/check": "0.9.4", "@astrojs/vercel": "^8.0.7", + "@astropub/md": "^1.0.0", "@fontsource-variable/inter": "^5.1.1", "@fontsource-variable/josefin-sans": "^5.1.1", "@fontsource-variable/urbanist": "^5.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e6732bf..7bca966 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@astrojs/vercel': specifier: ^8.0.7 version: 8.0.7(astro@5.3.0(@types/node@22.13.4)(jiti@2.4.2)(rollup@4.34.8)(typescript@5.7.3)(yaml@2.7.0))(rollup@4.34.8) + '@astropub/md': + specifier: ^1.0.0 + version: 1.0.0(@astrojs/markdown-remark@6.1.0) '@fontsource-variable/inter': specifier: ^5.1.1 version: 5.1.1 @@ -169,6 +172,11 @@ packages: '@astrojs/yaml2ts@0.2.2': resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} + '@astropub/md@1.0.0': + resolution: {integrity: sha512-++urcyulQogbLAF0VC2rEp6qLUfnRX9iaDREAkN1su9fF8V84DVaMHbQXn7qqQ27wYT5AVVeoK+4+vggYYVbQg==} + peerDependencies: + '@astrojs/markdown-remark': ^5 + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -3671,6 +3679,10 @@ snapshots: dependencies: yaml: 2.7.0 + '@astropub/md@1.0.0(@astrojs/markdown-remark@6.1.0)': + dependencies: + '@astrojs/markdown-remark': 6.1.0 + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 diff --git a/src/assets/glyphs/dropdown.svg b/src/assets/glyphs/dropdown.svg new file mode 100644 index 0000000..54a81f8 --- /dev/null +++ b/src/assets/glyphs/dropdown.svg @@ -0,0 +1,13 @@ + + + diff --git a/src/components/Header.astro b/src/components/Header.astro index 75364c9..73b75aa 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -23,6 +23,7 @@ function hrefProps(pathname: string) { About Articles CFP + FAQs Shop Travel + + + See FAQs > CFP for answers to common questions. + @@ -259,4 +263,8 @@ const topicAreas = [ .apply-button-bottom { margin: 3.5rem auto 0; } + + .faq-link { + margin-top: 3.5rem; + } diff --git a/src/pages/faqs.astro b/src/pages/faqs.astro new file mode 100644 index 0000000..22edc8d --- /dev/null +++ b/src/pages/faqs.astro @@ -0,0 +1,255 @@ +--- +import { markdown } from "@astropub/md"; +import { Image } from "astro:assets"; + +import dropdown from "~/assets/glyphs/dropdown.svg"; +import BodyText from "~/components/BodyText.astro"; +import ContentArea from "~/components/ContentArea.astro"; +import Heading from "~/components/Heading.astro"; +import Hero from "~/components/hero/Hero.astro"; +import HeroContentsStandard from "~/components/hero/HeroContentsStandard.astro"; +import { links } from "~/data/links"; +import PageLayout from "~/layouts/PageLayout.astro"; + +const description = + "Common questions and answers around attending, speaking at, and sponsoring SquiggleConf 2025."; + +const title = "Frequently Asked Questions"; + +type FAQSection = [string, [string, string][]]; + +const faqs: FAQSection[] = [ + [ + "General", + [ + ["How big is SquiggleConf?", "We're targeting 200 total attendees."], + [ + "What is the dress code for SquiggleConf?", + "Casual. T-shirt and jeans, optionally with a hoodie, is fine for all genders.", + ], + [ + "Will there be alcohol at SquiggleConf?", + "There will be no alcohol provided during any SquiggleConf events, including talks, workshops, and the hang-out event.", + ], + ], + ], + [ + "Schedule", + [ + [ + "What events are you planning?", + await markdown(` +We will let you know soon! This is partially dependent on corporate sponsorships. Subscribe to the newsletter to be the first to know! + +
+ +At the very least, SquiggleConf will include: + +- Social events for all attendees around the conference +- Breaks and breakout sessions during the conference +- Spaces to ask speakers questions and network with other attendees + `), + ], + ], + ], + [ + "Sessions", + [ + [ + "How can I ask speakers questions?", + await markdown(`Talks have time reserved for live Q&A. Additionally, each session has a channel in Discord where you can ask questions. +
+ We'd also encourage you to find them in-person between sessions and start conversations. They're friendly people.`), + ], + [ + "Will talks be recorded?", + "Yes! Talks will be made available online for free after the conference.", + ], + [ + "Will workshops be recorded?", + "No, if we hold workshops this year, they will be intended as a live in-person experience.", + ], + ], + ], + [ + "Tickets", + [ + [ + "Do you have bulk purchasing and/or group options?", + await markdown( + `Yes! See the [tickets purchase link](${links.tickets}) for the options.`, + ), + ], + [ + "If I can't afford a full ticket, is there a way for me to come?", + await markdown( + `Yes! See [How to Attend SquiggleConf for Free](/articles/how-to-attend-squiggleconf-for-free)`, + ), + ], + [ + "What does or doesn't a ticket include?", + await markdown( + ` +Your ticket gets you: + +- Access to all attendee social events before, during, and after the conference +- Complete access to all talks +- Light beverages and snacks through the conference days +- One "swag bag" with branded apparel and items + +Note that talk tickets _do not_ include: + +- Meals, including lunch at Faneuil Hall Marketplace +- Travel to or from the conference + `, + ), + ], + [ + "What is your refund policy?", + await markdown( + "Full refunds. If you can't make it, please let us know - we can work with you.
Do not come to SquiggleConf if you have any COVID symptoms.", + ), + ], + [ + "Will there be ticket sales at the door?", + await markdown( + "No. All tickets will be sold online. We also cannot guarantee tickets will be available day-of.", + ), + ], + ], + ], +] as const; +--- + + + + + {description} + + + + + + Got questions not covered here? Reach out, we'd be happy to talk! + questions@squiggleconf.com + + +
+ { + faqs.map(([title, section]) => ( +
+ + {title} + + {section.map(([question, answer]) => ( +
+ + {question} + + +
{answer}
+
+ ))} +
+ )) + } +
+
+
+ + + + + + + + From fb124ab5319e475b0527f0394f2ec13478712848 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 14 Apr 2025 08:56:00 -0400 Subject: [PATCH 2/6] lint:spelling astropub --- cspell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/cspell.json b/cspell.json index 5fdb8ae..96a6cb7 100644 --- a/cspell.json +++ b/cspell.json @@ -12,6 +12,7 @@ "pnpm-lock.yaml" ], "words": [ + "astropub", "astrojs", "Bluesky", "Devries", From a2691c17d48fb2a3fcbbd449cce7890ed35cd84e Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 14 Apr 2025 08:56:52 -0400 Subject: [PATCH 3/6] specificity fix for faq-area/faqs --- src/pages/faqs.astro | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/pages/faqs.astro b/src/pages/faqs.astro index 22edc8d..76f6f83 100644 --- a/src/pages/faqs.astro +++ b/src/pages/faqs.astro @@ -128,7 +128,7 @@ Note that talk tickets _do not_ include: - + Got questions not covered here? Reach out, we'd be happy to talk! questions@squiggleconf.com @@ -181,14 +181,11 @@ Note that talk tickets _do not_ include: margin: 2rem; } - .faq-area { - padding-bottom: 3.5rem; - } - .faqs { display: flex; flex-direction: column; gap: 3rem; + padding-bottom: 3.5rem; width: 100%; } From d946dc09db78e7065f55618e8de00d2406494050 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 14 Apr 2025 08:57:32 -0400 Subject: [PATCH 4/6] Corrected alcohol note on events --- src/pages/faqs.astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/faqs.astro b/src/pages/faqs.astro index 76f6f83..b68b2f3 100644 --- a/src/pages/faqs.astro +++ b/src/pages/faqs.astro @@ -29,7 +29,7 @@ const faqs: FAQSection[] = [ ], [ "Will there be alcohol at SquiggleConf?", - "There will be no alcohol provided during any SquiggleConf events, including talks, workshops, and the hang-out event.", + "There will be no alcohol provided during any SquiggleConf events, including talks, workshops, and social events.", ], ], ], From eb0812cf6a5e22e765189ee1a5147a2a88dce7e6 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 14 Apr 2025 08:57:43 -0400 Subject: [PATCH 5/6] Missing period --- src/pages/faqs.astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/faqs.astro b/src/pages/faqs.astro index b68b2f3..112731d 100644 --- a/src/pages/faqs.astro +++ b/src/pages/faqs.astro @@ -83,7 +83,7 @@ At the very least, SquiggleConf will include: [ "If I can't afford a full ticket, is there a way for me to come?", await markdown( - `Yes! See [How to Attend SquiggleConf for Free](/articles/how-to-attend-squiggleconf-for-free)`, + `Yes! See [How to Attend SquiggleConf for Free](/articles/how-to-attend-squiggleconf-for-free).`, ), ], [ From d5872818a0bdacbb78723bcbfe8a7fc3c2df71bd Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Thu, 17 Apr 2025 13:53:25 -0400 Subject: [PATCH 6/6] fix: add newsletter id --- src/components/Newsletter.astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Newsletter.astro b/src/components/Newsletter.astro index c237d4c..85da574 100644 --- a/src/components/Newsletter.astro +++ b/src/components/Newsletter.astro @@ -8,7 +8,7 @@ import ContentArea from "./ContentArea.astro"; import Heading from "./Heading.astro"; --- -