Files
zooqueen 3d97b9b23a build on the platform lane, and finish the rebrand it ships
The repo had no working way to build. .hanzo/workflows/deploy.yml called
buildctl-daemonless.sh, which no runner on this fleet carries — jobs run on
catthehacker/ubuntu:act-24.04 — so its build step failed in zero seconds with
checkout green, which reads as a broken Dockerfile rather than a missing
binary. Its second step patched app/dataroom, a CR kind deleted along with
infra/k8s/operator/crs. Neither half could work, and a push reported both.

hanzo.yml is how every other repo here builds: the forge's system webhook reads
it at the pushed sha and schedules one BuildKit job per images: entry. No
deploy: block — the tag that reaches the cluster is pinned in universe at
charts/app/values/hanzo/dataroom.yaml, and a second writer for one field is the
thing that moves an image off the bytes someone just verified.

Riding along, because both are compiled into the image and this is the build
that ships it:

welcome/next.tsx greeted every new user with "Papermark" as a bare literal, on
both /welcome and /documents/new. It now reads APP_NAME from lib/branding.ts,
which is where the app's name already lives.

public/_static/meta-image.png was the upstream wordmark and tagline. It is the
default og:image for the root layout, _app, and five auth pages, and
lib/utils.ts hardcodes its absolute URL — so every unfurled link to this app,
in Slack or iMessage or anywhere else, showed another product's name. Replaced
with the same mark and type the login page already uses, at 1200x630.

The dynamic /api/og routes were already correct; only the static default was
stale.
2026-08-13 22:49:34 -07:00

98 lines
3.3 KiB
TypeScript

import { useRouter } from "next/router";
import { FileIcon, ServerIcon } from "lucide-react";
import { motion } from "motion/react";
import { APP_NAME } from "@/lib/branding";
import { STAGGER_CHILD_VARIANTS } from "@/lib/constants";
export default function Next() {
const router = useRouter();
return (
<motion.div
className="z-10 mx-5 flex flex-col items-center space-y-10 text-center sm:mx-auto"
variants={{
hidden: { opacity: 0, scale: 0.95 },
show: {
opacity: 1,
scale: 1,
transition: {
staggerChildren: 0.2,
},
},
}}
initial="hidden"
animate="show"
exit="hidden"
transition={{ duration: 0.3, type: "spring" }}
>
<motion.div
variants={STAGGER_CHILD_VARIANTS}
className="flex flex-col items-center space-y-10 text-center"
>
<p className="text-2xl font-bold tracking-tighter text-foreground">
{APP_NAME}
</p>
<h1 className="font-display max-w-md text-3xl font-semibold transition-colors sm:text-4xl">
What do you want to share today?
</h1>
</motion.div>
<motion.div
variants={STAGGER_CHILD_VARIANTS}
className="grid w-full max-w-2xl grid-cols-1 divide-y divide-border rounded-md border border-border text-foreground md:grid-cols-2 md:divide-x"
>
<button
onClick={() =>
router.push({
pathname: "/welcome",
query: {
type: "select",
},
})
}
className="flex min-h-[200px] flex-col items-center justify-center space-y-5 overflow-hidden p-5 transition-colors hover:bg-gray-200 hover:dark:bg-gray-800 md:p-10"
>
<FileIcon className="pointer-events-none h-auto w-12 sm:w-12" />
<p className="text-lg font-medium">Document</p>
<p className="text-sm text-muted-foreground">
Share a single document with page-by-page analytics
</p>
</button>
<button
onClick={() =>
router.push({
pathname: "/welcome",
query: {
type: "dataroom",
},
})
}
className="flex min-h-[200px] flex-col items-center justify-center space-y-5 overflow-hidden p-5 transition-colors hover:bg-gray-200 hover:dark:bg-gray-800 md:p-10"
>
<ServerIcon className="pointer-events-none h-auto w-12 sm:w-12" />
<p className="text-lg font-medium">Data Room</p>
<p className="text-sm text-muted-foreground">
Share multiple documents with folders and page-by-page analytics
</p>
</button>
</motion.div>
{/* <motion.div variants={STAGGER_CHILD_VARIANTS} className="text-center">
<button
className="text-center text-sm text-muted-foreground underline-offset-4 transition-all hover:text-gray-800 hover:underline hover:dark:text-muted-foreground/80"
onClick={() =>
router.push({
pathname: "/welcome",
query: {
type: "dataroom",
},
})
}
>
Sharing Data Room is possible in 7 day free trial
</button>
</motion.div> */}
</motion.div>
);
}