Skip to content

nonissue/academics

Repository files navigation

Oscar Ballot

TypeScript + React + Tailwind app for collecting Oscar picks and sharing a ballot link.

Local dev

pnpm install
pnpm dev

Build

pnpm typecheck
pnpm build
pnpm preview

Data source

Ballot data is loaded from src/data/oscars-2026.json through src/data/oscars.ts.

Expected shape:

type Nominee = { id: string; title: string; subtitle?: string };
type Category = {
  id: string;
  title: string;
  nominees: Nominee[];
};
type OscarEvent = { editionLabel: string; ceremonyDate: string; location: string };
type OscarsData = { event: OscarEvent; categories: Category[] };

To publish live results for everyone, edit src/data/oscars-results.json so each entry maps a category ID to a nominee ID, or to an array of nominee IDs for ties, then redeploy.

Cloudflare Pages deployment

  1. In Cloudflare Pages, set environment variables:
    • VITE_APP_BASE_URL=https://oscars.andy.ws
    • NODE_VERSION=22
  2. Deploy from CLI (recommended for this project):
    • pnpm deploy:pages:main
  3. Or use Git-integrated Pages build:
    • Build command: pnpm build
    • Build output directory: dist
  4. For preview deploys:
    • pnpm deploy:pages:preview
  5. Run smoke checks:
    • pnpm smoke:pages https://oscars.andy.ws

Share links are path-based (/<code>), and PDF routes are /<code>/pdf.

If you want reproducible installs, keep pnpm-lock.yaml committed and avoid enabling Ignore build cache unless debugging.

About

TypeScript + React + Tailwind app for collecting Oscar picks and sharing a ballot link.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages