Skip to content
Public template
forked from roicort/summit
 
 

Latest commit

 

History

36 Commits

Folders and files

Repository files navigation

Hackathon

An Astro starter for a single conference event. Publish Programa, speaker profiles, and a chronological schedule from typed content collections.

Deploy on Railway Deploy to Netlify Deploy with Vercel

Features

  • Lighthouse Score: 100
  • Conference program with Markdown/MDX detail pages and localized listings
  • Speaker profiles sourced from YAML
  • Schedule generated by ordering the conferences by their starting time
  • Typed collections for conferences, speakers, and socials in src/content.config.ts
  • Site-wide search via Pagefind with an accessible modal
  • SEO-ready: OpenGraph/Twitter, canonical links, and preloaded fonts in src/components/BaseHead.astro
  • Themes light/dark/blue with persistent toggle; debug toggle for layout borders
  • RSS (/rss.xml) and sitemap (/sitemap-index.xml) generated automatically

Requirements

  • Bun
  • Astro @latest
  • Tailwdind CSS

Install & run

# install dependencies
bun install

# start dev server
bun run dev

# production build
bun run build

# preview the build
bun run preview

Content

  • Conferences: add localized .md or .mdx files under src/content/conferences/<lang>/. The schema validates title, description, date, day, startsAt, endsAt?, heroImage?, tags[], and speaker references. Program and schedule are ordered by day, then startsAt.
  • Speakers: add localized YAML files under src/content/speakers/<lang>/. Each profile has id, name, bio, avatar?, role?, company?, and location?.
  • Socials: src/content/socials.yml.

Frontmatter example:

---
title: "Opening keynote"
description: "A practical start to Hackathon."
date: 2027-10-14
day: 1
startsAt: "09:30"
endsAt: "10:15"
speakers: [marina-li]
---

Each speakers value references a speaker YAML id. The program is available at /conferences, speaker profiles at /speakers, and the full agenda at /schedule.

Quick customization

  • Site name and description in src/site-config.yml.
  • Navigation and hero actions in src/pages/index.astro.
  • The hero layers Plasma.vue, adapted from Vue Bits Plasma, over the wallpaper, gradient, text, and buttons without intercepting clicks. It uses --accent-color, runs at 30 fps only while visible, and renders a still frame for reduced motion. Without WebGL2, the image and gradient remain. Its MIT + Commons Clause notice is preserved in the component.
  • mouseInteractive={true} in the hero enables mouse response without intercepting button clicks. Pointer coordinates account for the canvas resolution; mouse response is disabled for reduced motion.
  • Colors, type, and utilities in src/styles/global.css.
  • Key components: header with search and toggles (src/components/Header.astro), base layout (src/layouts/BaseLayout.astro).

Available scripts

  • npm run dev: server on localhost:4321 (Astro default).
  • npm run build: outputs dist/ ready to deploy.
  • npm run preview: serves the built site locally.

Deploy

Output is static HTML. Upload dist/ to your platform of choice (Netlify, Vercel, Cloudflare Pages, S3+CDN). Set BASE_URL if you publish under a subpath.

Releases

Packages

Contributors

Languages