the statusphere demo reworked into a vite/react app in a monorepo

build lexicon package in build pipeline

Changed files
+17 -13
packages
lexicon
+13 -11
README.md
··· 43 43 44 44 ```bash 45 45 # Build commands 46 - pnpm build # Build frontend first, then backend 47 - pnpm build:appview # Build only the backend 48 - pnpm build:client # Build only the frontend 46 + pnpm build # Build in correct order: lexicon → client → appview 47 + pnpm build:lexicon # Build only the lexicon package (type definitions) 48 + pnpm build:client # Build only the frontend 49 + pnpm build:appview # Build only the backend 49 50 50 51 # Start commands 51 - pnpm start # Start the server (serves API and frontend) 52 - pnpm start:client # Start frontend development server only 53 - pnpm start:dev # Start both backend and frontend separately (development only) 52 + pnpm start # Start the server (serves API and frontend) 53 + pnpm start:client # Start frontend development server only 54 + pnpm start:dev # Start both backend and frontend separately (development only) 54 55 55 56 # Other utilities 56 - pnpm typecheck # Run type checking 57 - pnpm format # Format all code 57 + pnpm typecheck # Run type checking 58 + pnpm format # Format all code 58 59 ``` 59 60 60 61 ## Deployment 61 62 62 63 For production deployment: 63 64 64 - 1. Build both packages: 65 + 1. Build all packages in the correct order: 65 66 ```bash 66 67 pnpm build 67 68 ``` 68 69 69 70 This will: 70 - - Build the frontend (`packages/client`) first 71 - - Then build the backend (`packages/appview`) 71 + - Build the lexicon package first (shared type definitions) 72 + - Build the frontend (`packages/client`) next 73 + - Finally build the backend (`packages/appview`) 72 74 73 75 2. Start the server: 74 76 ```bash
+2 -1
package.json
··· 12 12 "dev:oauth": "node scripts/setup-ngrok.js", 13 13 "lexgen": "pnpm --filter @statusphere/lexicon build", 14 14 15 - "build": "pnpm build:client && pnpm build:appview", 15 + "build": "pnpm build:lexicon && pnpm build:client && pnpm build:appview", 16 + "build:lexicon": "pnpm --filter @statusphere/lexicon build", 16 17 "build:appview": "pnpm --filter @statusphere/appview build", 17 18 "build:client": "pnpm --filter @statusphere/client build", 18 19
+2 -1
packages/lexicon/package.json
··· 12 12 "dev": "tsup --watch", 13 13 "clean": "rimraf dist", 14 14 "typecheck": "tsc --noEmit", 15 - "lexgen": "lex gen-api ./src ../../lexicons/xyz/statusphere/* ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* --yes" 15 + "lexgen": "lex gen-api ./src ../../lexicons/xyz/statusphere/* ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* --yes", 16 + "postinstall": "pnpm run build" 16 17 }, 17 18 "dependencies": { 18 19 "@atproto/api": "^0.14.7",