diff --git a/src/components/layout/Footer.astro b/src/components/layout/Footer.astro index c097f26..1cb2e53 100644 --- a/src/components/layout/Footer.astro +++ b/src/components/layout/Footer.astro @@ -63,6 +63,7 @@ const marginalia = [
  • Bluesky
  • GitHub
  • Contact
  • +
  • FAQ
  • Pipeline
  • Pricing
  • Quote
  • diff --git a/src/pages/faq.astro b/src/pages/faq.astro new file mode 100644 index 0000000..ed08259 --- /dev/null +++ b/src/pages/faq.astro @@ -0,0 +1,185 @@ +--- +import BaseLayout from '@/layouts/BaseLayout.astro'; +import Eyebrow from '@/components/ui/Eyebrow.astro'; +import PageNav from '@/components/ui/PageNav.astro'; +import CtaBand from '@/components/sections/CtaBand.astro'; +import { stringifyJsonLd } from '@/lib/json-ld'; + +// Inline "talk to us" mentions link to the human contact path, matching +// the "Talk to us →" links on the services and pricing heroes. +const talk = (label: string) => + `${label}`; + +interface Faq { + q: string; + a: string; // answer as inline HTML — stripped to plain text for JSON-LD +} + +interface FaqGroup { + id: string; + tag: string; + heading: string; + faqs: Faq[]; +} + +const faqGroups: FaqGroup[] = [ + { + id: 'samples', + tag: 'SAMPLES & SUBMISSION', + heading: 'Samples & submission', + faqs: [ + { + q: 'What kinds of samples can I send?', + a: `For eDNA work we accept already-collected water, soil, sediment, and air samples or filters. For specimen barcoding we accept physical specimens — sorted or bulk-collected — each of which is preserved and imaged as a voucher. Not sure whether your material qualifies? ${talk('Talk to us')} and we'll figure it out together.`, + }, + { + q: 'How do I ship my samples, and how should they be preserved?', + a: `Once a project is initiated we send full shipping instructions, a chain-of-custody manifest, and packaging guidance, so you're never guessing. Preservation requirements depend on sample type and assay — we'll cover them during scoping. ${talk('Talk to us')} before you collect if you want preservation advice up front.`, + }, + { + q: 'Is there a minimum sample volume or batch size?', + a: 'Per-assay minimums vary. For eDNA water samples we typically accept 1–2 L filtered samples; for bulk specimens, 96-well-plate-compatible batches are most efficient; single-specimen barcoding has no batch minimum.', + }, + { + q: 'Do you accept international samples?', + a: 'Yes, with appropriate import permits and CITES documentation where required. We help first-time importers walk through the paperwork.', + }, + ], + }, + { + id: 'sequencing', + tag: 'SEQUENCING & TECHNOLOGY', + heading: 'Sequencing & technology', + faqs: [ + { + q: 'Do I have other options for what technology is used for sequencing my samples?', + a: `Yes — in addition to our Oxford Nanopore PromethION 2 Solo, we have an Illumina MiSeq i100 available for our use. For any other technologies, we would be happy to process your samples and facilitate sequencing at the appropriate outside vendor. Click "${talk('talk to us')}" to discuss what you have in mind.`, + }, + { + q: 'What markers and primers are available for amplicon work?', + a: 'Standard primers stocked: COI, 16S, 18S, ITS, rbcL, matK. Custom primer design is part of our eDNA / qPCR assay design service, including primer/probe optimization and specificity validation.', + }, + { + q: 'Can you handle custom or unusual projects?', + a: `Yes. Beyond barcoding and eDNA metabarcoding, we take on shotgun metagenomics, hybrid assemblies, custom assay design and validation, and bespoke pipeline integration. Every engagement starts with a free 30-minute scoping call — ${talk('talk to us')} about what you're planning.`, + }, + ], + }, + { + id: 'data', + tag: 'DATA & RESULTS', + heading: 'Data & results', + faqs: [ + { + q: 'What deliverables do I get back?', + a: 'A FAIR-compliant data package by default: a Darwin Core Archive (DwC-A), a GBIF record, an NCBI SRA submission for raw reads, a Zenodo DOI for the final package, and a written analysis report with methods, results, and provenance trail. Raw FASTQ plus metadata are available on request.', + }, + { + q: 'Can my results stay private, and who owns the data?', + a: `GBIF, SRA, and Zenodo deposits are part of the standard deliverable, but you can request a hold or embargo where institutional or publication considerations require it. If your project has specific confidentiality or data-ownership needs, ${talk('talk to us')} and we'll scope them into the quote.`, + }, + { + q: 'Can I run my own bioinformatic pipeline instead?', + a: 'Yes. We can deliver raw FASTQ plus full metadata for downstream pipelines run by you or your collaborators. We also run our in-house BioInfoOS pipeline on request.', + }, + ], + }, + { + id: 'pricing', + tag: 'PRICING & LOGISTICS', + heading: 'Pricing & logistics', + faqs: [ + { + q: 'How is pricing structured?', + a: 'Specimen barcoding and eDNA metabarcoding have published, volume-tiered per-unit rates — with separate academic/nonprofit and commercial pricing — on our pricing page, and a quote builder if you already know your sample count. Everything else is project-rate, scoped per request; we typically return a written quote within a few days.', + }, + { + q: "What's the typical turnaround time?", + a: 'Typical projects complete in 4–8 weeks from sample receipt; custom assay design can extend timelines. We provide a project-specific timeline at quote.', + }, + { + q: 'How do we get started?', + a: `With a free 30-minute scoping call — we help shape sampling design, primer choice, replication, and analysis goals, then send a written quote. ${talk('Talk to us')} to book one.`, + }, + ], + }, +]; + +const pageNavSections = faqGroups.map((g) => ({ id: g.id, label: g.heading })); + +const stripTags = (html: string) => html.replace(/<[^>]*>/g, ''); + +const faqJsonLd = { + '@context': 'https://schema.org', + '@type': 'FAQPage', + '@id': 'https://biokea.ai/faq#faq', + mainEntity: faqGroups.flatMap((g) => + g.faqs.map((f) => ({ + '@type': 'Question', + name: f.q, + acceptedAnswer: { '@type': 'Answer', text: stripTags(f.a) }, + })), + ), +}; +--- + + + + +
    + SERVICES · FAQ +

    + Frequently asked questions +

    +

    + Answers to the questions we hear most from sequencing customers — and how to reach us when + your project doesn't fit a template. +

    + +
    + + { + faqGroups.map((group) => ( +
    + {group.tag} +

    + {group.heading} +

    +
    + {group.faqs.map((f) => ( +
    +
    {f.q}
    +
    +
    + ))} +
    +
    + )) + } + + + +