This is the public site for p-to-q.
[p → q] We're interested in the arrow.
Experimental craft and research over scale.
pwhat can be said
→how it becomes something
qwhat actually happens
This site is a public surface for that work.
Our first proof is wittgenstein, a modality harness for text-first LLMs.
See more at our organization README.
Craft over scale.
www.
ptoq.io [click]
p-to-q.com [click]
Install dependencies:
npm cinpm ci (not npm install) also keeps node_modules identical to CI and the
deployment: a stale local install silently verifies a different framework
version than the one that ships. npm run check starts with
scripts/check-install.mjs, which fails (naming the package and telling you to
run npm ci) when node_modules, package-lock.json and package.json
disagree, so drift cannot reach a commit.
Run locally:
npm run devBefore opening a pull request, run the same checks used by CI:
npm run audit:production
npm run checknpm ci installs a pre-push hook that runs npm run check before every push
(skip once with git push --no-verify). After a push to main, confirm the
deploy with npm run verify:live -- --wait (see docs/caching.md).
Production builds derive the public last-updated timestamp from Git without
rewriting tracked source files. Set SITE_LAST_UPDATED_ISO only when a release
needs an explicit ISO-8601 override.
Trusted release automation should call node scripts/indexnow-submit.mjs directly.
The optional POST /api/indexnow endpoint fails closed until the server-only
INDEXNOW_SUBMIT_TOKEN is configured; it accepts authenticated JSON requests
containing at most 100 same-origin URLs. See .env.example for the variable.
Work-page hover previews are bound to individual links rather than project rows. Asset naming and replacement checks are documented in docs/work-previews.md.
Unless otherwise noted, site code, writing, images, and other assets are © p-to-q. All rights reserved.
Clone it to the cloud with Vercel:
See the Next.js deployment documentation for more details.