This repo includes a .envrc for direnv.
It is only used for repo-local shell helpers. Right now it adds the repo bin/ directory to your PATH, which makes commands like ghruns and ghdeploy available anywhere inside this repository.
It does not load .env.local and it does not set NODE_ENV.
- Install
direnvon your machine. - Enable the
direnvshell hook.
For zsh, add this to ~/.zshrc:
eval "$(direnv hook zsh)"For bash, add this to ~/.bashrc:
eval "$(direnv hook bash)"Then reload your shell config, for example:
source ~/.zshrcFrom the repo root, run:
direnv allowIf .envrc changes later, run:
direnv allowagain to approve the updated file.
From the repo root, you should be able to run:
which 6529
which ghruns
6529 run dev --help
ghrunsghruns is a shortcut for:
gh run list -R "6529-Collections/6529seize-frontend"In an interactive terminal, ghruns opens a live dashboard instead of printing a one-time snapshot. It refreshes automatically every 5 seconds, keeps the same repo scope, and still accepts the usual gh run list filters like --branch, --workflow, --status, and -L.
ghruns controls:
Up/Downmoves through the recent runsEnteropensgh run watchfor the highlighted runrrefreshes immediatelyqquits
The dashboard falls back to plain gh run list output in non-interactive shells and when you use output-formatting flags like --json, --jq, or --template.
ghdeploy only works from the repo root.
From the repo root, run:
ghdeployBefore it triggers the production deploy workflow, it checks that:
- the current branch is not detached
- the working tree is fully clean, including no untracked files
- the current branch has an upstream
- the current branch is exactly in sync with its upstream after a fetch
If those checks pass, it asks:
Are you sure you want to deploy <branch-name> to production?
If you confirm, it triggers the production workflow from .github/workflows/build-upload-deploy-prod.yml against your current branch.
Default app port: 3001.
User-facing documentation lives in docs/README.md.
Developer package-management guidance lives in docs/developer/pnpm-and-socket-firewall.md.
Bootstrap the repo command shim, ensure Socket Firewall is installed, and activate the pinned pnpm version:
./bin/6529 bootstrapThen open a new shell, or activate the current shell immediately:
source <(./bin/6529 bootstrap --print-export)Then install project dependencies through the secure path:
6529 installTo add a new package:
6529 add <package>
6529 add -D <package>To apply audit fixes:
6529 update6529 install and 6529 i only reinstall the existing dependency set. They do
not accept package names. To add a dependency, use 6529 add <package>.
6529 add and 6529 update go through the same Socket Firewall-protected path
as secure installs.
For an intentional broader pnpm update, use 6529 update:all.
Plain pnpm install, pnpm dev, and npm run ... repo script execution are intentionally blocked. Use the 6529 wrapper only.
After bootstrap, 6529 resolves only while you are inside this repository tree.
Outside the repo, the default experience is still command not found.
If direnv is enabled for the repo, you can also use the repo-local wrapper:
6529 install
6529 update
6529 run dev
6529 run build
6529 approve-builds
6529 stagingOtherwise, open a new shell after running ./bin/6529 bootstrap.
6529 run buildTo run the project you need a .env file.
The chat now renders cards for pepe.wtf assets, collections, artists and sets. Environment variables (with defaults) allow you to tune caching and IPFS gateway usage:
PEPE_CACHE_TTL_MINUTES(default10)PEPE_CACHE_MAX_ITEMS(default500)IPFS_GATEWAY(defaulthttps://ipfs.io/ipfs/)
To test end-to-end:
- Run
6529 run dev. - Paste any pepe.wtf link in chat, for example
https://pepe.wtf/asset/GOXPEPEorhttps://pepe.wtf/artists/Easy-B, and confirm the preview renders with imagery and stats. - Re-run the same link and confirm the network response for
/api/pepe/resolveincludes the headerX-Cache: HIT.
- Locally
6529 run dev- Staging update / rebuild
./bin/6529 stagingThis rebuilds the app and restarts PM2 on the standalone runtime path
(6529 run start:standalone).
- One-time server bootstrap for repo-scoped
6529 ...
./bin/6529 bootstrapThen open a new shell, or source the rc file that matches your shell.
The bootstrap step also removes the old managed global shim at
~/.local/bin/6529 when it finds one.
- After
direnv allow, the shorthand also works
6529 staging- Production
6529 run startThis is the repo-local production-style start path.
Elastic Beanstalk production deploys do not use 6529 run start; they package
Next standalone output and start server.js through Procfile.
pm2 start bash --name=6529seize -- -lc 'cd /path/to/repo && ./bin/6529 run start:standalone'All application routes now live under Next.js’s app/ router.
The legacy pages/ directory has been fully migrated, so create any new routes
inside app/.
Pages inside app/ must define a generateMetadata function that returns the
result of getAppMetadata:
import { getAppMetadata } from "@/components/providers/metadata";
import type { Metadata } from "next";
export async function generateMetadata(): Promise<Metadata> {
return getAppMetadata({ title: "My Page" });
}This ensures consistent SEO metadata across routes.