Skip to content
GenerateNUPublic

About

Generate's website

Resources

Stars

9 stars

Watchers

2 watching

Forks

Latest commit

 

History

1,364 Commits

Folders and files

Repository files navigation

Generate Website

CI

The website for Generate, Northeastern's student-led product development studio.

Built with React, TypeScript and Vite. Content such as directors, teams, showcases and copy comes from Sanity.

Getting started

Prerequisites

  • Bun 1.4.2 or newer
  • Node.js 22.18 or newer (used by the lint and test tools). With nvm, run nvm install in the repo to install and switch to the right version.
  • just (optional, for the shortcuts below): brew install just

Setup

git clone https://github.com/GenerateNU/website.git
cd website
nvm install            # install and switch to the Node version in .nvmrc
cp .env.example .env   # then fill in the values
just install
just dev

The site runs at http://localhost:5173.

Environment variables

Variable Used by Description
VITE_SANITY_PROJECT_ID Website Sanity project the site reads from
VITE_SANITY_DATASET Website Sanity dataset the site reads from
VITE_API_URI Website Not currently used
SANITY_STUDIO_PROJECT_ID Sanity Studio Sanity project the Studio edits
SANITY_STUDIO_DATASET Sanity Studio Sanity dataset the Studio edits

Ask the infra team for the values.

Commands

Run just to list every command. Each one is a shortcut for a bun run script, so you can use either.

Command What it does
just dev Start the dev server
just build Build the site for production into build/
just preview Serve the production build locally
just check Type-check, lint and check formatting
just ci Run everything CI runs: checks, build and smoke tests
just typecheck Type-check with TypeScript
just lint Lint with oxlint
just lint-fix Lint and apply safe auto-fixes
just format Format all files with oxfmt
just format-check Check formatting without changing files
just knip Find unused files, exports and dependencies
just test-e2e Run the Playwright smoke tests
just install-browsers Install the browser the smoke tests use

Sanity Studio

The content editor lives in sanity/ and has its own dependencies.

Command What it does
just studio Start the Studio locally
just studio-typecheck Type-check the Studio
just studio-build Build the Studio
just studio-deploy Deploy the Studio to Sanity

Project structure

src/
  component/   Shared components (NavBar, Footer, buttons) and some pages
  pages/       Page components (landing, apply, teams)
  data/        Static content and types
  services/    Data fetching (useSanity)
  shared/      Small hooks and helpers
  assets/      Images, icons and SVG components
sanity/        Sanity Studio and content schemas
e2e/           Playwright smoke tests

Conventions

  • Imports: use the @/ alias for anything outside the current folder (@/shared/useWebsite), and ./ for files in the same folder.
  • Components: one exported component per file. Small private helper components can live in the same file.
  • Before you push: run just check. A pre-commit hook formats staged files automatically.

CI and deployment

Every pull request runs type checking, lint, a format check, a production build and the Playwright smoke tests (workflow). All of them must pass before merging.

The site is deployed on Netlify. Every pull request also gets a deploy preview, so you can check your changes on a live URL before merging:

https://deploy-preview-<PR number>--sprightly-manatee-243873.netlify.app

Replace <PR number> with your pull request's number. For example, PR #268's preview is at https://deploy-preview-268--sprightly-manatee-243873.netlify.app.

About

Generate's website

Resources

Stars

9 stars

Watchers

2 watching

Forks

Used by

Contributors

Languages