diff --git a/public/favicon.svg b/public/favicon.svg index ef1b803..77d9d30 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,8 +1,5 @@ - - - - - - - + + + + diff --git a/public/og-image.png b/public/og-image.png new file mode 100644 index 0000000..25051f7 Binary files /dev/null and b/public/og-image.png differ diff --git a/scripts/og-template.svg b/scripts/og-template.svg new file mode 100644 index 0000000..fbaf74f --- /dev/null +++ b/scripts/og-template.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + NIAID · BRC AI CODEATHON 2.0 + + + + + AI Codeathon + + 2.0 + + + + + + + Accelerating FAIR data and tools + for infectious disease research. + + + + + SEPT 16 — 18, 2026 + ARGONNE NATIONAL LABORATORY + + + + + + + + diff --git a/scripts/render-og.mjs b/scripts/render-og.mjs new file mode 100644 index 0000000..aeeedb2 --- /dev/null +++ b/scripts/render-og.mjs @@ -0,0 +1,21 @@ +#!/usr/bin/env node +// Render the OG card SVG to a static PNG using sharp. +// Run via: node scripts/render-og.mjs +import { readFile, writeFile } from "node:fs/promises"; +import { fileURLToPath } from "node:url"; +import { dirname, resolve } from "node:path"; +import sharp from "sharp"; + +const here = dirname(fileURLToPath(import.meta.url)); +const svgPath = resolve(here, "og-template.svg"); +const outPath = resolve(here, "..", "public", "og-image.png"); + +const svg = await readFile(svgPath); + +const png = await sharp(svg, { density: 144 }) + .resize(1200, 630, { fit: "cover" }) + .png({ compressionLevel: 9, palette: false }) + .toBuffer(); + +await writeFile(outPath, png); +console.log(`Wrote ${outPath} (${png.length} bytes)`); diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro index d91b7c4..3c0e13b 100644 --- a/src/components/BaseHead.astro +++ b/src/components/BaseHead.astro @@ -2,19 +2,18 @@ // Import the global.css file here so that it is included on // all pages through the use of the component. import "../styles/global.css"; -import type { ImageMetadata } from "astro"; -import FallbackImage from "../assets/blog-placeholder-1.jpg"; import { SITE_TITLE } from "../consts"; interface Props { title: string; description: string; - image?: ImageMetadata; + image?: string; } const canonicalURL = new URL(Astro.url.pathname, Astro.site); -const { title, description, image = FallbackImage } = Astro.props; +const { title, description, image = "/og-image.png" } = Astro.props; +const ogImageUrl = new URL(image, Astro.url).toString(); --- @@ -29,21 +28,14 @@ const { title, description, image = FallbackImage } = Astro.props; href={new URL("rss.xml", Astro.site)} /> + - + + + - @@ -59,11 +51,13 @@ const { title, description, image = FallbackImage } = Astro.props; - + + + - + diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 1ab43da..9554bad 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -1,50 +1,163 @@ --- -import { EVENT_YEAR } from "../consts"; +import { + APPLICATION_DEADLINE, + EVENT_DATE, + EVENT_LOCATION, + EVENT_YEAR, +} from "../consts"; +import Mark from "./Mark.astro"; --- + diff --git a/src/components/Header.astro b/src/components/Header.astro index d2511c0..6563a8d 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -1,77 +1,149 @@ --- -import { SITE_TITLE } from "../consts"; import HeaderLink from "./HeaderLink.astro"; ---
- + - + +
+ diff --git a/src/components/HeaderLink.astro b/src/components/HeaderLink.astro index 3091a69..c832a73 100644 --- a/src/components/HeaderLink.astro +++ b/src/components/HeaderLink.astro @@ -12,13 +12,3 @@ const isActive = href === pathname || href === "/" + (subpath?.[0] || ""); - diff --git a/src/components/Mark.astro b/src/components/Mark.astro new file mode 100644 index 0000000..4b9628a --- /dev/null +++ b/src/components/Mark.astro @@ -0,0 +1,62 @@ +--- +interface Props { + size?: number; + color?: string; + variant?: "solid" | "node" | "pair"; + class?: string; +} + +const { + size = 14, + color = "currentColor", + variant = "node", + class: className, +} = Astro.props; +--- + +{ + variant === "node" && ( + + ) +} +{ + variant === "solid" && ( + + ) +} +{ + variant === "pair" && ( + + ) +} diff --git a/src/consts.ts b/src/consts.ts index 55c50d2..2b94661 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -1,10 +1,11 @@ // Place any global data in this file. // You can import this data from anywhere in your site by using the `import` keyword. -export const SITE_TITLE = "NIAID BRC AI Codeathon 2025"; +export const SITE_TITLE = "NIAID BRC AI Codeathon 2026"; export const SITE_DESCRIPTION = - "NIAID-BRC AI Codeathon for Infectious Disease Research - November 12-14, 2025 at Argonne National Laboratory"; + "NIAID-BRC AI Codeathon 2.0 for Infectious Disease Research - September 16-18, 2026 at Argonne National Laboratory"; -export const EVENT_DATE = "November 12-14, 2025"; +export const EVENT_DATE = "September 16-18, 2026"; export const EVENT_LOCATION = "Argonne National Laboratory, Lemont, IL"; -export const EVENT_YEAR = "2025"; +export const EVENT_YEAR = "2026"; +export const APPLICATION_DEADLINE = "August 15, 2026"; diff --git a/src/layouts/ProjectPost.astro b/src/layouts/ProjectPost.astro index 5fc41ac..ebd7aa8 100644 --- a/src/layouts/ProjectPost.astro +++ b/src/layouts/ProjectPost.astro @@ -17,55 +17,144 @@ const editUrl = `https://github.com/NIAID-BRC-Codeathons/NIAID-BRC-Codeathons.gi @@ -74,87 +163,79 @@ const editUrl = `https://github.com/NIAID-BRC-Codeathons/NIAID-BRC-Codeathons.gi
+ + { + heroImage && ( +
+ +
+ ) + } + +
diff --git a/src/pages/index.astro b/src/pages/index.astro index eadb8e3..2f7f68e 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -2,89 +2,651 @@ import BaseHead from "../components/BaseHead.astro"; import Footer from "../components/Footer.astro"; import Header from "../components/Header.astro"; -import { SITE_DESCRIPTION, SITE_TITLE } from "../consts"; +import Mark from "../components/Mark.astro"; +import { + APPLICATION_DEADLINE, + EVENT_DATE, + EVENT_LOCATION, + SITE_DESCRIPTION, + SITE_TITLE, +} from "../consts"; --- +
-

NIAID BRC AI Codeathon 2025

-

Accelerating FAIR Data and Tools with AI

- -

- November 12–14, 2025
- Argonne National Laboratory, Lemont, IL -

- -

- The NIAID Bioinformatics Resource Centers (BRCs) invite researchers, - data scientists, and developers to a three-day AI Codeathon focused on - improving Findability, Accessibility, Interoperability, and Reusability - (FAIR-ness) of BRC data and tools using artificial intelligence (AI) and large language - models (LLMs). -

- -

Event Goals

-
    -
  • - Apply AI and LLMs to improve accessibility and usability of BRC data - and tools -
  • -
  • Enhance interoperability and reuse of BRC resources
  • -
  • - Foster collaboration between infectious disease researchers, AI - developers, and bioinformaticians -
  • -
  • - Deliver openly available prototypes that can serve as seeds for - long-term community solutions -
  • -
- -

Project Topics

-

Participants will form teams around proposed themes:

-
    -
  • - Virtual BRC Helpdesk - AI-powered helpdesk to guide users - through bioinformatics tasks -
  • -
  • - Automated Workflow Generation - Generate and run workflows - from user descriptions -
  • -
  • - Knowledge Extraction and Curation - Extract biological - insights from literature -
  • -
  • - Function Assignment - Predict functions for uncharacterized - genes -
  • -
  • - Outbreak Monitoring - Track and process outbreak data - for real-time monitoring -
  • -
  • - Virtual AI Co-scientist - Multi-agent system for hypothesis - generation and ranking -
  • -
- -

- - View Projects - -

+
+
+ + Sept 16 — 18, 2026 · Argonne National Lab + +
+ +
+

+ AI Codeathon + 2.0 +

+

+ Accelerating FAIR data and tools for infectious disease research. +

+
+ +
+
+ Dates +
{EVENT_DATE}
+
3 days · in person · Wed → Fri
+
+
+ Venue +
{EVENT_LOCATION}
+
Bldg 240 · Room 1416
+
+
+ Applications close +
{APPLICATION_DEADLINE}
+
Form coming soon
+
+
+ +
+ View Schedule → + 2025 Project Archive + Applications open soon +
+
+ +
+
+ About the event +
+
+

+ The NIAID Bioinformatics Resource Centers (BRCs) invite researchers, + data scientists, developers, bioinformaticians, and students to a + three-day in-person codeathon focused on advancing infectious + disease research through AI, large language models, and agentic + frameworks. +

+

+ Building on the success of the previous codeathon, participants + will collaborate in small teams to develop prototype tools and + workflows that improve the + Findability, Accessibility, Interoperability, and Reusability + of BRC data, resources, and analysis tools. +

+
+
+ + + +
+
+ Focus Areas, 2026 +

+ Two directions.
One common goal. +

+
+ +
    +
  1. +
    01
    +
    +
    RAG · LLM
    +

    + Automated knowledge extraction & curation from literature +

    +
    +

    + AI-driven systems that automatically extract, structure, and + integrate biological and epidemiological knowledge from the + scientific literature using Retrieval-Augmented Generation and + large language models — linked back to BRC schemas with + provenance. +

    +
  2. + +
  3. +
    02
    +
    +
    MCP · Agentic AI
    +

    + Bioinformatics workflow automation +

    +
    +

    + Agent-based systems that translate research questions into + executable bioinformatics workflows by leveraging Model Context + Protocol (MCP)-enabled tools and services — adaptive, multi-step, + and reproducible. +

    +
  4. +
+
+ + + +
+
+ Goals +

What we hope to ship.

+
    +
  • + Apply AI and LLMs to enable scalable knowledge extraction from + scientific literature +
  • +
  • + Develop intelligent systems for automated workflow design & + execution +
  • +
  • + Enhance interoperability and reuse of BRC data, tools, and + services +
  • +
  • + Foster collaboration across infectious disease, AI, and + bioinformatics communities +
  • +
  • + Deliver openly available prototypes that seed long-term community + solutions +
  • +
+
+ +
+ Who should apply +

Bring your discipline.

+
    +
  • Infectious disease researchers and domain experts
  • +
  • Data scientists and AI/ML researchers
  • +
  • Bioinformaticians and computational biologists
  • +
  • Software developers and research engineers
  • +
  • Students, postdocs, and trainees
  • +
+
+
+ +
+
+ Apply +

+ Three days at Argonne.
Free to attend. +

+

+ Participation is free, but space is limited. Application form and + additional details on registration, project themes, and logistics + will be announced soon. +

+ View Full Schedule → +
+
+ Application Deadline +
{APPLICATION_DEADLINE}
+

+ Notifications shortly after. Confirmed teams begin bi-weekly + preparatory calls. +

+
+