Files
hanzo.ai/app/(marketing)/sign/sign-client.tsx

93 lines
5.8 KiB
TypeScript

'use client'
import { Book, Building2, Code, ExternalLink, Eye, FileText, Fingerprint, Globe, Layers, Mail, PenLine, Shield, Users, Webhook } from "lucide-react"
import { Github } from "@/components/brand"
import Pricing from "@/components/sign/Pricing"
import { Cards } from "@/components/product/ProductLanding"
import { Text } from "@hanzo/ui"
import { Aside, LINK } from "@/components/products/Aside"
import { Lede } from "@/components/products/Lede"
import { ProductFooter } from "@/components/products/ProductFooter"
import { Start } from "@/components/products/Start"
const DOCS = "https://docs.hanzo.ai/docs/projects/hanzoai/esign"
const REPO = "https://github.com/hanzoai/esign"
export default function SignClient() {
return (
<>
<Lede
badge="Document signing"
badgeIcon={PenLine}
title="Hanzo Sign"
actions={[
{ label: 'Try Hanzo', href: '/login', icon: ExternalLink },
{ label: 'Documentation', href: DOCS },
]}
>
Upload a PDF, drop the fields where people need to sign, and send it. Each signer gets a link, signs in
their browser, and the finished document comes back with a record of who signed it, when, and from
where. Nobody installs anything and nobody prints anything.
</Lede>
<Cards
grid={{
title: 'What is in it',
sub: 'The parts of signing that are actually work: placing the fields, chasing the signers, and proving afterwards that it happened.',
items: [
{ icon: PenLine, title: 'Signatures', body: 'Fields for a signature, initials, a date, a name, a checkbox or free text, placed where you want them on the page. The completed document carries a certificate recording each signer, the time, and the address they signed from.' },
{ icon: FileText, title: 'Templates', body: 'The contract you send fifty times a month gets its fields placed once. After that, sending it is choosing a recipient.' },
{ icon: Users, title: 'Teams', body: 'Documents belong to a team rather than to whoever uploaded them, so a person leaving does not take the paperwork with them. Roles decide who can send, who can only see.' },
{ icon: Webhook, title: 'Webhooks and an API', body: 'Your system creates the document, adds the recipients and sends it. A webhook fires when somebody opens, signs or declines, so your side of the workflow moves without anybody watching an inbox.' },
{ icon: Shield, title: 'Security & Compliance', body: 'End-to-end encryption, a signed trail on every document, and data that stays in the region you choose.' },
{ icon: Layers, title: 'Your name on it', body: 'The signing page carries your logo and your colours on your own domain, so the person signing sees the company they are doing business with rather than the company we are.' },
{ icon: Mail, title: 'The chasing, done for you', body: 'The invitation, the reminder for the one person who has not got to it yet, and the copy of the finished document to everybody who signed.' },
{ icon: Fingerprint, title: 'Signing in', body: 'A passkey, or a password kept as a bcrypt digest. A document can also demand that a recipient authenticate before it will open, so the link alone is not enough to read it.' },
{ icon: Eye, title: 'Where it is right now', body: 'Sent, opened, signed, declined — per recipient, as it happens. You know which of five people is holding up a deal without asking any of them.' },
{ icon: Globe, title: 'Twelve languages', body: 'German, English, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, Albanian and Chinese. The signer reads the page in theirs, not yours.' },
],
}}
/>
<Pricing />
<Aside
title="Built on Open Source"
links={[
{ label: 'hanzoai/esign', href: REPO, icon: Github },
{ label: 'Upstream: documenso/documenso', href: 'https://github.com/documenso/documenso', icon: ExternalLink },
]}
>
Hanzo Sign is built on{' '}
<Text render="a" {...{ href: 'https://documenso.com', target: '_blank', rel: 'noopener noreferrer' }} color={LINK.color}>
Documenso
</Text>
, an open-source document signing platform, under the AGPL. The upstream project is named here and in the
licence, because naming what you forked is required and is a different act from branding yourself with
it. Run our build, or run your own — the whole thing is a TypeScript application over Postgres, and you
can read every line that touches a document before you trust it with one.
</Aside>
<Cards
grid={{
title: 'Send the first one',
sub: 'Upload a PDF and place a signature field. You will know inside five minutes whether this fits.',
items: [
{ icon: PenLine, title: 'Start signing', body: 'Open the hosted app and send a document', link: { label: 'Try Hanzo', href: '/login' } },
{ icon: Book, title: 'Documentation', body: 'Setup, self-hosting, and the API reference', link: { label: 'View Docs', href: DOCS } },
{ icon: Code, title: 'The source', body: 'Read it before you trust a contract to it', link: { label: 'View on GitHub', href: REPO } },
],
}}
/>
<Aside title="Something more specific" links={[{ label: 'Contact Sales', href: '/contact-sales', icon: Building2 }]}>
Signing inside your own product, a flow with approvals before the send, or running it on your
infrastructure. Tell us the shape and we will tell you whether it fits.
</Aside>
<Start title="Get started with Sign" docs={DOCS} repo={REPO} />
<ProductFooter slug="sign" name="Sign" />
</>
)
}