Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .changeset/brown-owls-bake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
'@proofkit/cli': patch
'@proofkit/better-auth': patch
'@proofkit/fmdapi': patch
'@proofkit/typegen': patch
'@proofkit/webviewer': patch
'create-proofkit': patch
---

swap docs domain to proofkit.proof.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ This phase makes the ProofKit documentation site discoverable and consumable by
## Tasks

- [x] Add SEO fundamentals to the Fumadocs site (`apps/docs/`):
- Create `apps/docs/src/app/sitemap.ts` using Next.js App Router's built-in sitemap generation. Import `source` from `@/lib/source` and iterate `source.getPages()` to produce URLs rooted at `https://proofkit.dev/docs/`. Include the llms.txt routes as well.
- Create `apps/docs/src/app/sitemap.ts` using Next.js App Router's built-in sitemap generation. Import `source` from `@/lib/source` and iterate `source.getPages()` to produce URLs rooted at `https://proofkit.proof.sh/docs/`. Include the llms.txt routes as well.
- Create `apps/docs/src/app/robots.ts` using Next.js App Router's built-in robots generation. Allow all crawlers, point to the sitemap URL, and explicitly allow `/llms.txt`, `/llms-full.txt`, and `/llms/` paths.
- Update `generateMetadata` in `apps/docs/src/app/docs/(docs)/[[...slug]]/page.tsx` to include OpenGraph metadata (`og:title`, `og:description`, `og:type: article`, `og:url`) using the page's title, description, and constructed URL. Use Next.js `Metadata` type's built-in `openGraph` field.
- Add a root-level `metadata` export in `apps/docs/src/app/layout.tsx` with `metadataBase` set to `https://proofkit.dev` so all relative OG URLs resolve correctly.
- Add a root-level `metadata` export in `apps/docs/src/app/layout.tsx` with `metadataBase` set to `https://proofkit.proof.sh` so all relative OG URLs resolve correctly.

- [ ] Improve the llms.txt endpoints for better agent consumption:
- In `apps/docs/src/app/llms.txt/route.ts`: fix the `"package"` field in `notify-intent.yml` — it still says `"with-changesets"` (template placeholder) instead of identifying the actual package. Note: this is in `.github/workflows/notify-intent.yml` line 59. Update the payload to dynamically determine the package name from the changed files, or use a static value like `"proofkit"`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ This phase builds the automated doc-staleness detection system that runs during

- [ ] Improve cross-linking between docs, skills, and CLI output:
- In each package's main doc page (`apps/docs/content/docs/{package}/index.mdx`), add a "For AI Agents" callout or section at the bottom that points to the package's SKILL.md file location and the llms.txt per-package endpoint. Use a Fumadocs `Callout` component if available, or a simple blockquote.
- In each SKILL.md file's `sources` frontmatter field, verify the doc URLs point to the correct pages on proofkit.dev. Update any that are wrong or missing.
- In the CLI's help output (check `packages/cli/src/` for the main command definitions), ensure the `--help` text mentions `https://proofkit.dev/docs/cli` for full documentation.
- In each SKILL.md file's `sources` frontmatter field, verify the doc URLs point to the correct pages on proofkit.proof.sh. Update any that are wrong or missing.
- In the CLI's help output (check `packages/cli/src/` for the main command definitions), ensure the `--help` text mentions `https://proofkit.proof.sh/docs/cli` for full documentation.
Comment on lines 30 to +33
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clarify SKILL.md sources format expectation.

Line 32 instructs verifying that SKILL.md sources frontmatter URLs "point to the correct pages on proofkit.proof.sh." However, the actual SKILL.md files (e.g., packages/fmdapi/skills/typegen-fmdapi/SKILL.md) use repository path references like "proofsh/proofkit:packages/typegen/src/cli.ts" rather than direct proofkit.proof.sh URLs. This task requirement may need clarification about whether sources should contain repo paths or documentation URLs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Auto` Run
Docs/Initiation/2026-03-19-ProofKit-Release-Readiness/RELEASE-READINESS-02.md
around lines 30 - 33, The instruction is ambiguous about whether SKILL.md
`sources` should be repository path references or public doc URLs; update
RELEASE-READINESS-02.md to state a single canonical expectation (either
repo-style references like "proofsh/proofkit:packages/typegen/src/cli.ts" or
full proofkit.proof.sh URLs), then update examples and guidance accordingly:
reference the SKILL.md `sources` frontmatter (e.g.,
packages/fmdapi/skills/typegen-fmdapi/SKILL.md) to show the preferred format,
add a note for maintainers on how to convert repo paths to public URLs (or vice
versa), and ensure the cross-linking checklist items for
apps/docs/content/docs/{package}/index.mdx and CLI help text in
packages/cli/src/ reflect that chosen format.


- [ ] Write tests for the doc-staleness script:
- Create `scripts/__tests__/check-doc-staleness.test.ts` (or co-locate with the script).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ This phase speeds up the `proofkit init` test suite, prepares the test infrastru
- Refactor existing template tests to use this helper where it reduces duplication. Don't force it if the existing tests are already clean.

- [ ] Make CLI output more AI-agent-friendly:
- In the post-init success message (find in `packages/cli/src/` — likely in the init command handler or executor), add a line pointing to docs: "Full documentation: https://proofkit.dev/docs"
- In the post-init success message (find in `packages/cli/src/` — likely in the init command handler or executor), add a line pointing to docs: "Full documentation: https://proofkit.proof.sh/docs"
- If there's a `--help` flag handler for the main `proofkit` command, ensure it includes the docs URL.
- In error messages from the CLI, ensure they include enough context for an AI agent to diagnose the issue (e.g., "Missing required field X. See https://proofkit.dev/docs/cli/reference for options.").
- In error messages from the CLI, ensure they include enough context for an AI agent to diagnose the issue (e.g., "Missing required field X. See https://proofkit.proof.sh/docs/cli/reference for options.").
- Review the AGENTS.md at the repo root — ensure it mentions the CLI and how to use it for project scaffolding.

- [ ] Run all tests and verify improvements:
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

ProofKit is a collection of TypeScript tools and libraries for building modern web applications, with a focus on seamless integration with Claris FileMaker. It includes CLI utilities, API clients, type generators, and other resources to help scaffold and develop TypeScript projects. ProofKit aims to make web development easier for beginners and more efficient for experienced developers by providing an opinionated project structure, code-mod scripts, and a suite of libraries to help you build, extend, and maintain your apps over time. This monorepo is where the ProofKit tools are developed and maintained.

- **Documentation:** [proofkit.dev](https://proofkit.dev)
- **Documentation:** [proofkit.proof.sh](https://proofkit.proof.sh)
- **Community Forum:** [Ottomatic Community – ProofKit Category](https://community.ottomatic.cloud/c/proofkit/13)

---
Expand All @@ -12,14 +12,14 @@ ProofKit is a collection of TypeScript tools and libraries for building modern w
This monorepo includes the following core packages:

- [`@proofkit/cli`](./packages/cli): Interactive CLI to scaffold and manage TypeScript projects that connect with FileMaker.
- [`@proofkit/fmdapi`](./packages/fmdapi): TypeScript client for the FileMaker Data API. [Docs](https://proofkit.dev/docs/fmdapi)
- [`@proofkit/webviewer`](./packages/webviewer): Utility for interacting with the FileMaker WebViewer. [Docs](https://proofkit.dev/docs/webviewer)
- [`@proofkit/fmdapi`](./packages/fmdapi): TypeScript client for the FileMaker Data API. [Docs](https://proofkit.proof.sh/docs/fmdapi)
- [`@proofkit/webviewer`](./packages/webviewer): Utility for interacting with the FileMaker WebViewer. [Docs](https://proofkit.proof.sh/docs/webviewer)
- [`@proofkit/typegen`](./packages/typegen): Generate TypeScript types and validation schemas from FileMaker layouts.
- [`@proofkit/create-proofkit`](./packages/create-proofkit): Alias package for quickly starting new ProofKit projects.

## Documentation & Community

For all setup, usage, and advanced guides, please visit the [official documentation site](https://proofkit.dev).
For all setup, usage, and advanced guides, please visit the [official documentation site](https://proofkit.proof.sh).

For questions, support, and discussion, join the [Ottomatic Community](https://community.ottomatic.cloud/c/proofkit/13) in the **ProofKit** category.

Expand Down
2 changes: 1 addition & 1 deletion apps/docs/content/docs/fmdapi/quick-start.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ The typegen tool is the best way to interact with this library, as it will autom
Add the layouts you want to generate clients for to the `layouts` array in the config file.
```jsonc title='proofkit-typegen.config.jsonc'
{
"$schema": "https://proofkit.dev/typegen-config-schema.json",
"$schema": "https://proofkit.proof.sh/typegen-config-schema.json",
"config": {
"clientSuffix": "Layout",
"layouts": [
Expand Down
6 changes: 3 additions & 3 deletions apps/docs/content/docs/typegen/config-odata.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ The config key can also be an array of configs, which is useful if you need to c

```jsonc title="proofkit-typegen-config.jsonc" tab="Single OData config"
{
"$schema": "https://proofkit.dev/typegen-config-schema.json",
"$schema": "https://proofkit.proof.sh/typegen-config-schema.json",
"config": {
"type": "fmodata",
// ... your OData config here
Expand All @@ -25,7 +25,7 @@ The config key can also be an array of configs, which is useful if you need to c

```jsonc title="proofkit-typegen-config.jsonc" tab="Multiple configs"
{
"$schema": "https://proofkit.dev/typegen-config-schema.json",
"$schema": "https://proofkit.proof.sh/typegen-config-schema.json",
"config": [
{
"type": "fmodata",
Expand Down Expand Up @@ -247,7 +247,7 @@ Here's a complete example of an OData configuration:

```jsonc title="proofkit-typegen-config.jsonc"
{
"$schema": "https://proofkit.dev/typegen-config-schema.json",
"$schema": "https://proofkit.proof.sh/typegen-config-schema.json",
"config": {
"type": "fmodata",
"configName": "Production OData",
Expand Down
4 changes: 2 additions & 2 deletions apps/docs/content/docs/typegen/config.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ The typegen tool is configured using the `proofkit-typegen-config.jsonc` file at

```jsonc title="proofkit-typegen-config.jsonc" tab="Single config"
{
"$schema": "https://proofkit.dev/typegen-config-schema.json",
"$schema": "https://proofkit.proof.sh/typegen-config-schema.json",
"config": {
// ... your config here
},
Expand All @@ -27,7 +27,7 @@ The typegen tool is configured using the `proofkit-typegen-config.jsonc` file at

```jsonc title="proofkit-typegen-config.jsonc" tab="Multiple configs"
{
"$schema": "https://proofkit.dev/typegen-config-schema.json",
"$schema": "https://proofkit.proof.sh/typegen-config-schema.json",
"config": [
{
// ... your config here
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/app/docs/(docs)/[[...slug]]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export async function generateMetadata(props: { params: Promise<{ slug?: string[
notFound();
}

const url = `https://proofkit.dev${page.url}`;
const url = `https://proofkit.proof.sh${page.url}`;

return {
title: page.data.title,
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const inter = Inter({
});

export const metadata: Metadata = {
metadataBase: new URL("https://proofkit.dev"),
metadataBase: new URL("https://proofkit.proof.sh"),
};

export default function Layout({ children }: { children: ReactNode }) {
Expand Down
6 changes: 3 additions & 3 deletions apps/docs/src/app/llms.txt/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,18 @@ export function GET() {
];

for (const pkg of PACKAGES) {
lines.push(`- [${pkg.name}](https://proofkit.dev/llms/${pkg.name}): ${pkg.desc}`);
lines.push(`- [${pkg.name}](https://proofkit.proof.sh/llms/${pkg.name}): ${pkg.desc}`);
}

lines.push("");
lines.push("## Full Documentation");
lines.push("");
lines.push("- [/llms-full.txt](https://proofkit.dev/llms-full.txt): Complete documentation (all packages)");
lines.push("- [/llms-full.txt](https://proofkit.proof.sh/llms-full.txt): Complete documentation (all packages)");
lines.push("");
lines.push("## Per-Package Documentation");
lines.push("");
for (const pkg of PACKAGES) {
lines.push(`- [/llms/${pkg.name}](https://proofkit.dev/llms/${pkg.name})`);
lines.push(`- [/llms/${pkg.name}](https://proofkit.proof.sh/llms/${pkg.name})`);
}

return new Response(lines.join("\n"), {
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/app/robots.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ export default function robots(): MetadataRoute.Robots {
userAgent: "*",
allow: ["/", "/llms.txt", "/llms-full.txt", "/llms/"],
},
sitemap: "https://proofkit.dev/sitemap.xml",
sitemap: "https://proofkit.proof.sh/sitemap.xml",
};
}
2 changes: 1 addition & 1 deletion apps/docs/src/app/sitemap.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { MetadataRoute } from "next";
import { source } from "@/lib/source";

const BASE_URL = "https://proofkit.dev";
const BASE_URL = "https://proofkit.proof.sh";

export default function sitemap(): MetadataRoute.Sitemap {
const pages = source.getPages().map((page) => ({
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/lib/get-llm-text.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export async function getLLMText(page: InferPageType<typeof source>): Promise<st
}

return `# ${page.data.title}
URL: https://proofkit.dev${page.url}
URL: https://proofkit.proof.sh${page.url}

${page.data.description ?? ""}

Expand Down
2 changes: 1 addition & 1 deletion packages/better-auth/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ Run the tool directly from the command line:
npx @proofkit/better-auth@latest
```

Check out the full documentation at [proofkit.dev](https://proofkit.dev/docs/better-auth).
Check out the full documentation at [proofkit.proof.sh](https://proofkit.proof.sh/docs/better-auth).
2 changes: 1 addition & 1 deletion packages/better-auth/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
],
"author": "",
"license": "ISC",
"homepage": "https://proofkit.dev",
"homepage": "https://proofkit.proof.sh",
"repository": {
"type": "git",
"url": "git+https://github.com/proofsh/proofkit.git"
Expand Down
2 changes: 1 addition & 1 deletion packages/cli-old/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
Get started with a new ProofKit project by running <code>pnpm create proofkit</code>
</p>

View full documentation at [proofkit.dev](https://proofkit.dev)
View full documentation at [proofkit.proof.sh](https://proofkit.proof.sh)
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export async function deployDemoFile({
name: "Install ProofKit Demo",
source: {
type: "url",
url: "https://proofkit.dev/proofkit-demo/manifest.json",
url: "https://proofkit.proof.sh/proofkit-demo/manifest.json",
},
fileOperations: [
{
Expand Down
4 changes: 2 additions & 2 deletions packages/cli-old/src/consts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const distPath = path.dirname(__filename);
export const PKG_ROOT = path.join(distPath, "../");
export const cliName = "proofkit";
export const npmName = "@proofkit/cli";
export const DOCS_URL = "https://proofkit.dev";
export const DOCS_URL = "https://proofkit.proof.sh";

const version = getVersion();
const versionCharLength = version.length;
Expand All @@ -32,4 +32,4 @@ declare const __REGISTRY_URL__: string;
// Provide a safe fallback when running from source (not built)
export const DEFAULT_REGISTRY_URL =
// typeof check avoids ReferenceError if not defined at runtime
typeof __REGISTRY_URL__ !== "undefined" && __REGISTRY_URL__ ? __REGISTRY_URL__ : "https://proofkit.dev";
typeof __REGISTRY_URL__ !== "undefined" && __REGISTRY_URL__ ? __REGISTRY_URL__ : "https://proofkit.proof.sh";
10 changes: 5 additions & 5 deletions packages/cli-old/src/generators/fmdapi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ async function readJsonConfigFile(configPath: string): Promise<FullProofkitTypeg
console.error(`Error reading or parsing JSONC config at ${configPath}:`, error);
// Return a default structure for the *file* if parsing fails but file exists
return {
$schema: "https://proofkit.dev/typegen-config-schema.json",
$schema: "https://proofkit.proof.sh/typegen-config-schema.json",
config: [],
};
}
Expand Down Expand Up @@ -114,7 +114,7 @@ export async function addLayout({

if (!fileContent) {
fileContent = {
$schema: "https://proofkit.dev/typegen-config-schema.json",
$schema: "https://proofkit.proof.sh/typegen-config-schema.json",
config: [],
};
}
Expand Down Expand Up @@ -189,7 +189,7 @@ export async function addConfig({
}
} else {
fileContent = {
$schema: "https://proofkit.dev/typegen-config-schema.json",
$schema: "https://proofkit.proof.sh/typegen-config-schema.json",
config: configsToAdd,
};
}
Expand Down Expand Up @@ -232,7 +232,7 @@ export async function ensureWebviewerFmMcpConfig({

if (!fileContent) {
fileContent = {
$schema: "https://proofkit.dev/typegen-config-schema.json",
$schema: "https://proofkit.proof.sh/typegen-config-schema.json",
config: [newConfig],
};
await writeJsonConfigFile(jsonConfigPath, fileContent);
Expand Down Expand Up @@ -402,7 +402,7 @@ export async function addToFmschemaConfig({
}
} else {
fileContent = {
$schema: "https://proofkit.dev/typegen-config-schema.json",
$schema: "https://proofkit.proof.sh/typegen-config-schema.json",
config: [newDataSource],
};
}
Expand Down
4 changes: 2 additions & 2 deletions packages/cli-old/src/installers/install-fm-addon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ export async function installFmAddon({ addonName }: { addonName: "auth" | "wv" }
console.log(
`${chalk.yellowBright(
"You must install the FM Auth addon in your FileMaker file to continue.",
)} ${chalk.dim("(Learn more: https://proofkit.dev/auth/fm-addon)")}`,
)} ${chalk.dim("(Learn more: https://proofkit.proof.sh/auth/fm-addon)")}`,
);
} else {
console.log(
`${chalk.yellowBright(
"You must install the ProofKit WebViewer addon in your FileMaker file to continue.",
)} ${chalk.dim("(Learn more: https://proofkit.dev/webviewer)")}`,
)} ${chalk.dim("(Learn more: https://proofkit.proof.sh/webviewer)")}`,
);
}
const steps = [
Expand Down
2 changes: 1 addition & 1 deletion packages/cli-old/src/installers/nextAuth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,6 @@ async function checkForNextAuthLayouts(projectDir: string) {
console.log(chalk.bgYellow(" ACTION REQUIRED: "));
console.log(
`${chalk.yellowBright("You must now install the NextAuth addon in your FileMaker file.")}
Learn more: https://proofkit.dev/auth/next-auth\n`,
Learn more: https://proofkit.proof.sh/auth/next-auth\n`,
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export async function sendEmail({
type === "verification" ? "Verify Your Email" : "Reset Your Password";

// TODO: Customize this function to actually send the email to your users
// Learn more: https://proofkit.dev/auth/fm-addon
// Learn more: https://proofkit.proof.sh/auth/fm-addon
console.warn("TODO: Customize this function to actually send to your users");
console.log(`To ${to}: Your ${type} code is ${code}`);
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const AuthCodeEmail = ({ validationCode, type }: AuthCodeEmailProps) => (
// TODO: Replace with your logo
alt="ProofKit"
height="175"
src="https://proofkit.dev/_astro/proofkit.DNcFg0_B_1JN3Dz.webp"
src="https://proofkit.proof.sh/proofkit.png"
style={logo}
width="238"
/>
Expand Down
4 changes: 2 additions & 2 deletions packages/cli-old/template/extras/emailTemplates/generic.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const GenericEmail = ({ title, description, ctaText, ctaHref, footer }: G
<Img
alt="ProofKit"
height="175"
src="https://proofkit.dev/_astro/proofkit.DNcFg0_B_1JN3Dz.webp"
src="https://proofkit.proof.sh/proofkit.png"
style={styles.logo}
width="238"
/>
Expand Down Expand Up @@ -45,7 +45,7 @@ GenericEmail.PreviewProps = {
title: "Welcome to ProofKit",
description: "Thanks for trying ProofKit. This is a sample email template you can customize.",
ctaText: "Get Started",
ctaHref: "https://proofkit.dev",
ctaHref: "https://proofkit.proof.sh",
footer: "You received this email because you signed up for updates.",
} as GenericEmailProps;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export default function ForgotForm() {
<TextInput
autoFocus
label="Email"
placeholder="you@proofkit.dev"
placeholder="you@proofkit.proof.sh"
required
withAsterisk={false}
{...form.register("email")}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export default function LoginForm() {
<TextInput
autoFocus
label="Email"
placeholder="you@proofkit.dev"
placeholder="you@proofkit.proof.sh"
required
withAsterisk={false}
{...form.register("email")}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export default function SignupForm() {
<Stack>
<TextInput
label="Email"
placeholder="you@proofkit.dev"
placeholder="you@proofkit.proof.sh"
required
withAsterisk={false}
{...form.register("email")}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const AuthCodeEmail = ({ validationCode, type }: AuthCodeEmailProps) => (
// TODO: Replace with your logo
alt="ProofKit"
height="175"
src="https://proofkit.dev/_astro/proofkit.DNcFg0_B_1JN3Dz.webp"
src="https://proofkit.proof.sh/proofkit.png"
style={logo}
width="238"
/>
Expand Down
Loading
Loading