GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - airscripts/lgtm: Because code review deserves more vocabulary.

BranchesTags
Open more actions menu

Latest commit

 

History

38 Commits
38 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
.vscode
.vscode
 
 
data
data
 
 
public
public
 
 
skill
skill
 
 
src
src
 
 
.gitignore
.gitignore
 
 
.npmrc
.npmrc
 
 
.prettierrc
.prettierrc
 
 
AGENTS.md
AGENTS.md
 
 
README.md
README.md
 
 
Triggerfile
Triggerfile
 
 
astro.config.mjs
astro.config.mjs
 
 
eslint.config.mjs
eslint.config.mjs
 
 
package.json
package.json
 
 
pnpm-lock.yaml
pnpm-lock.yaml
 
 
tsconfig.json
tsconfig.json
 
 
vercel.json
vercel.json
 
 
vitest.config.ts
vitest.config.ts
 
 

Repository files navigation

LGTM

A fully static web application that catalogs alternative meanings for the acronym LGTM. Generate a random interpretation, browse the full collection, filter by category and rarity, and share individual entries via permanent URLs.

Live at: https://lgtm.airscript.it


Overview

LGTM collects hundreds alternative meanings for "LGTM" (Looks Good To Me), organized by:

  • Rarity — common, regular, rare, legendary (weighted random generation)
  • Category — funny, sarcastic, wholesome, dev, existential, corporate, chaotic

The site is fully static (no server-side rendering, no database). All data lives in data/lgtm.json.


Installation

Requires Node.js >= 24 and pnpm >= 10.

pnpm install

Development

pnpm dev        # Start local dev server at http://localhost:4321
pnpm build      # Build static output to ./dist
pnpm preview    # Serve the built output locally

Routes

Route Description
/ Homepage with weighted-random generator island
/random Static redirect page — picks a random entry client-side and immediately navigates
/browse Full catalog with keyword search, category/rarity filter, and sort
/lgtm/[id] Detail page for a single entry, shareable URL
/categories Grid of all categories with sample entries
/categories/[category] All entries within a single category

Theme Switcher

The navbar includes a 3-state theme toggle: system (default) → light → dark → system.

  • Default follows the OS prefers-color-scheme media query
  • The selected mode is persisted to localStorage under the key lgtm-theme
  • A no-flash inline script in <head> reads the stored value and sets data-theme on <html> before CSS paints, preventing a flash of the wrong theme on reload

Testing

Uses Vitest with React Testing Library and jsdom.

pnpm test          # Run tests once
pnpm test:watch    # Run tests in watch mode

Test files live in src/test/ and cover:

  • lgtm.test.ts — data loader functions and constants
  • random.test.ts — weighted random selection logic
  • ThemeSwitcher.test.tsx — 3-state cycle, localStorage persistence, aria labels
  • RandomGenerator.test.tsx — rendering, navigation calls, generate interaction
  • LegendaryEffect.test.tsx — particle component rendering and accessibility attributes

CI

GitHub Actions runs on every push and pull request to main:

  1. Checkout
  2. Set up pnpm
  3. Set up Node.js 24
  4. pnpm install --frozen-lockfile
  5. pnpm build
  6. pnpm test

See .github/workflows/ci.yml.


Deployment

Deployed as a static site on Vercel via the @astrojs/vercel adapter (static output mode). No server functions are used.

To deploy your own fork, connect the repository to a Vercel project. No environment variables are required.


Contributing

  1. Fork the repository
  2. Add new entries to data/lgtm.json following the existing schema (numeric id, acronym: "LGTM", meaning, category, rarity, optional description and tags)
  3. Keep IDs contiguous — the next ID is max(existing ids) + 1
  4. Run pnpm build and pnpm test before opening a pull request

About

Because code review deserves more vocabulary.

lgtm.airscript.it

Topics

astrofunnylgtmprvite

Resources

Readme
Activity

Stars

10 stars

Watchers

0 watching

Forks

3 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.