Group website built with Next.js (App Router) and Tailwind CSS.
- Node.js 20 or newer
- npm (comes with Node.js)
- Git (needed only if you want to clone the repository)
- Install
nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash- Restart your terminal, then install Node.js LTS (includes
npm):
nvm install --lts
nvm use --lts- Verify installation:
node -v
npm -v- Install Node.js LTS (includes
npm) usingwinget:
winget install OpenJS.NodeJS.LTS- Restart terminal and verify:
node -v
npm -v- Linux (Ubuntu/Debian):
sudo apt install git - macOS (Homebrew):
brew install git - Windows:
winget install Git.Git
- Install dependencies:
npm install- Start the development server:
npm run dev- Open the site at:
http://localhost:3000
- Stop the server with
Ctrl + C.
- Run dev server:
npm run dev - Run lint checks:
npm run lint - Create static export build:
npm run build(output goes toout/)
Team members are defined in app/page.tsx in the teamMembers array near the top of the file.
Each member has this structure:
{
name: "Full Name",
role: "Role",
focus: "Short research description.",
image: "/team/file-name.webp",
links: [
{ label: "Website", href: "https://..." },
{ label: "GitHub", href: "https://..." }
]
}Edit these keys inside the member object:
namerolefocuslinks(labels and URLs)
- (Recommended) Convert the image to the WebP format to reduce the file size. There are many online converters available.
- Add the new image file to
public/team/(for example:public/team/jane-doe.webp). - Update that person’s
imagefield inapp/page.tsx:
image: "/team/jane-doe.jpg".jpg,.jpeg,.png,.webpare shown as full photos (object-cover)..svgis treated as a placeholder-style portrait (object-containwith padding and muted styling).
If you want a normal full-color photo card, use a raster format (.jpg/.png/.webp) instead of .svg.
- Add: copy an existing object in
teamMembers, paste it, and edit values. - Remove: delete the corresponding object.
- Reorder: move objects up/down in the
teamMembersarray.