The anti-scores scores app, live at attie.app.
This repo is a small monorepo:
apps/webcontains the Next.js app and Attie API facade.apps/applecontains the native SwiftUI app sources andAttieCoreSwift package.packages/contractscontains shared fixture contracts and catalogue defaults.packages/design-tokenscontains platform-neutral design tokens.
This project uses npm and is pinned to Node 24 LTS. If you use a Node version
manager, it should pick up .node-version automatically.
The web app lives in apps/web. It is built with Next.js
and includes the Attie API facade used by the native app.
npm install
npm run devOpen http://localhost:3000 with your browser to see the result.
Useful web checks from the repo root:
npm run lint
npm run typecheck
npm run test:web
npm run buildThe native iOS, macOS, and watchOS sources live in apps/apple. See
apps/apple/README.md for Xcode setup and device
installation notes.
swift test --package-path apps/apple/Packages/AttieCoreOpen apps/apple/Attie.xcworkspace in Xcode to work with the Swift package and
native app targets.
Use npm audit; package-lock.json is the source of truth for installed
dependency versions.
Useful full-repo checks:
npm run lint
npm run typecheck
npm run test
npm run build
npm run auditBefore updating dependencies, run:
npm outdated
npm update
npm run check
npm run auditThe only package-manager override should be a small, documented security fix for a transitive dependency that has not yet been refreshed upstream.
The comic book illustration used on interstitials is public domain imagery. Specifically, it is from page 36 of Sport Thrills issue 15, November 1951, uploaded by Mark Bowen to the Digital Comic Museum.