Release notes

What's new

Every change to canusign, transparently documented: what we built, when, and why. Feedback welcome via feedback.

v0.26.0

New editor, saved signature, calmer design

Since 12 September almost every page has changed. The editor now knows people and places a signature, initials and a date for each of them. Signatures can be saved in the account, the status page shows progress per person, and deleting an account no longer takes the finished contracts away from the other parties.

  • One calm design across every pageDesign

    White surfaces, one typeface, fine lines and a single coral accent. The home page, the editor, signing, the dashboard, the settings and the e-mails now follow the same design. Moving effects and emoji are gone.

  • Editor with people, signature, initials and dateNew

    Under “Who signs” you add the people and place a signature, initials and a date for each of them. The date fills in with the day of signing. Under “Fill in” you add your own text, today’s date or a named field. The document scrolls continuously across all pages.

  • Keyboard and undo in the editorImprovement

    The arrow keys move a selected field, in large steps with Shift, and Delete removes it. Nothing asks for confirmation: “Undo” in the notice line or Cmd+Z (Windows: Ctrl+Z) brings the field or person back.

  • Personal links by e-mail from the editorNew

    Add a person’s e-mail address in the editor and they receive their own signing link when you finish. The shared link stays available alongside it.

  • Status page with progress per personImprovement

    The status page first shows who has signed and who is still missing, person by person.

  • Save your signature in your accountNew

    A signature can be stored in the settings or while signing. The dialog then offers it as the first choice. It is only applied with a sign-in no older than 15 minutes. Saving it is optional and it can be deleted at any time; contracts already signed stay unchanged.

  • Signing with “What it’s about”Improvement

    The signing page has been rebuilt. “What it’s about” in the header opens a short summary, created automatically from the document. It does not replace reading it and is not legal advice.

  • Every document starts with an uploadImprovement

    You upload one or more PDFs, canusign proposes signature fields, and you check them in the editor. Templates and the blank document have been removed from the app.

  • Packs of 5, 15 and 50 documentsImprovement

    The former bonus is now part of the pack contents, at unchanged prices. Billing is per document. The buy button leads straight to payment, and the payment page shows the contents next to the price.

  • Stamp and certificateImprovement

    The stamp beside a signature can carry a role or title. The audit certificate lists the e-mail address a person enters when signing. The verify page has a new layout and still needs no account.

  • Deleting an account keeps finished contracts for the other partiesSecurity

    Before deleting, canusign shows what goes and what stays. Fully signed contracts involving other people remain reachable for them through their links and the verify page, tied to no account, and are deleted ten years after the last signature. A Pro subscription ends with the deletion.

  • Privacy: no more device fingerprintSecurity

    The protection against multiple accounts for the free document now checks only the IP address and the e-mail. The device fingerprint cookie is no longer set and is removed for existing accounts. The IP address is deleted after seven days.

  • Help rewrittenImprovement

    The guides describe how things work today, from uploading through people and fields to signing, in all four languages.

  • Servers in Frankfurt, four languagesInfra

    Functions, database and file storage run in Frankfurt. canusign is available in German, English, Spanish and French. Italian, Dutch and Portuguese have been switched off; their addresses redirect to English.

  • API: cancel, personal links, request logNew

    Running contracts can be cancelled over the API. Personal links per person are also available for contracts from templates and through the MCP server. The settings list every API request with method, path, status and duration, without payloads.

  • Long documents in the signed PDFFix

    Documents with more than 20 pages failed when the signed PDF was built. They are now merged in parts, and the pages are rendered side by side instead of one after another.

v0.25.0

Proof anyone can check: signature, seal, certificate, verify page

A user wrote that our signature looked like a pasted image, that the audit certificate could have been written in Word, and that nobody gets a decent signature out of a mouse. He was right on all three. Signing now offers typing, drawing and uploading; every signature carries a stamp with the name, the time and the document ID; the finished PDF is built once, timestamped by DigiCert and kept, so Adobe Acrobat reports it as signed and unchanged; and the new audit certificate carries a QR code to a public page where anyone can drop the PDF in and see whether it matches the copy we hold. The document ID is printed on every page, so the proof survives printing.

  • Type, draw or upload a signatureNew

    The signing dialog asks for the name first, then offers three tabs. Typed signatures are set in one of four handwriting fonts and rendered in the browser, so the PDF service never needs the font. Drawing runs on a smoothed pen with pressure-like line width on a retina canvas, and the export is cropped to the ink. An uploaded photo or scan of a signature is re-encoded, which strips EXIF and GPS data along the way. On a desktop, typing is the honest recommendation: a mouse produces a scrawl, and that was the complaint.

  • A stamp beside every signatureNew

    Each signature sits on a line with a faint guilloche seal behind it and a small table underneath: who signed, the time with its zone, the document ID in groups, and where the proof lives. No IP address, because a forwarded PDF would otherwise carry the address of every signer next to their name. The seal survives a laser printer: a print test showed the first version dissolving into toner dots, so the lines got thicker and the tint stronger.

  • Audit certificate rebuilt, with a QR codeNew

    The certificate now looks like a document instead of a memo, and it carries what a third party needs: per signer the signature image, the name they typed, how they signed (typed with the font name, drawn with mouse, finger or pen, or uploaded), the time in UTC and Berlin time, IP address, device, and the SHA-256 of the signature image. Below that the full history with IPs, the SHA-256 of every uploaded original, and a QR code that leads to the verify page. Available in every interface language.

  • A public verify page for any signed PDFNew

    canusign.com/verify takes the document ID from the certificate or from the footer of a printout and answers three questions: does the document exist, is it fully signed, and who signed it (initials only). Drop the PDF onto the page and the browser computes its fingerprint locally and compares it with the copy we hold. The file never leaves the computer, and no account is needed.

  • One signed PDF, timestamped and keptImprovement

    The signed PDF used to be rebuilt on every download, which meant a fingerprint of it was worthless: every copy differed. It is now built once when the last signature arrives, timestamped against DigiCert per RFC 3161 with the validation data Acrobat needs for the long term, and stored. Every download returns exactly those bytes, and Adobe Acrobat and the free Reader report "signed and all signatures are valid". If the timestamp service is unreachable the download still works, just without the timestamp, and the next one tries again.

  • The API hands out the proof as wellImprovement

    Contract responses and the contract.completed webhook now carry publicId and verifyUrl, and GET /contracts/:id also returns finalPdf.sha256, the fingerprint of the stored PDF. An integration can put the verify link into its own interface and check the file it downloaded without trusting the download.

  • A signing link no longer exposes IP addressesSecurity

    Anyone holding the link could read the IP address and user agent of every signer, plus the internal payment data of the contract. Those fields now reach the owner only; everyone else sees the contract, the signatures and a reduced history.

v0.24.0

Checkout rebuilt on Stripe Checkout Sessions

The whole payment path now runs on a single Stripe Checkout Session, and prices live in Stripe rather than in the code. That sounds like plumbing, and mostly it is, but it fixes things customers could feel: a visitor in Britain used to read pounds on the pricing page and be charged euros, because the currency was guessed from their country while the charge came from a separate table. Stripe decides the currency now, from where the customer actually is, and offers the payment methods that go with it. Every purchase gets a confirmation mail that doubles as the way into the account, so paying as a guest no longer ends in a dead end. Buying credits, buying Pro and cancelling Pro all run through one flow instead of five separate routes with their own price lists.

  • Every purchase gets a confirmation mail with a sign-in linkNew

    One mail, not two: the receipt required for a distance contract and the way into your account are the same message. It states what was bought, what was charged and in which currency, links to the Stripe receipt, and carries a link that signs you in on any device for seven days. For anyone who paid without an account it is the way to the credits they just bought, so the success screen leads with the inbox and shows the address back for checking, instead of burying it under a payment confirmation.

  • The currency comes from Stripe, not from a guessImprovement

    Prices are held in Stripe with their own amounts for the euro, dollar, pound and Singapore dollar markets; everywhere else Stripe converts. The pay button always shows what will actually be charged, including currencies without decimals, where the old code would have been off by a factor of a hundred. Before a checkout is open the pages state the integration currency, because until the payment form loads nobody knows where the customer is.

  • Pro is bought and managed in one placeImprovement

    Buying Pro runs through the same checkout as everything else and lands in Settings, and Billing & payments now opens the account that actually holds the subscription and the invoices. Cancelling keeps Pro until the end of the paid month and then steps the plan back down on its own.

  • Payments reach the account that made themFix

    A signed-in buyer is now recognised as themselves even when the payment carries a different address, which wallets routinely do. Previously a paid credit could land on a second, newly created account while the buyer watched their own balance stay empty.

  • Revenue is recorded per purchase, with its currencyInfra

    Each completed payment writes a row with the amount and the currency it was charged in. Reporting no longer has to ask Stripe, which answers for an account shared with another product, and revenue is never converted at a rate nobody was charged at.

v0.23.0

Pay-per-signature positioning + duplicate-for-new-signer

Sharpened the landing experience around the pay-per-signature wedge (no subscription, no account for signers, eIDAS-compliant) after a competitive audit confirmed that the real competition is free-tier-then-upsell tools like DigiSigner and BoldSign, not enterprise DocuSign. The pricing line on the landing page now anchors to the actual single-signature price (€1.49) instead of the cheapest-per-credit bulk-discount floor, which was misleading first-time visitors. Two new in-product nudges surface the 'your credit covers it' framing exactly where the data showed users abandoning: above the Continue button in the editor, and as a re-engagement banner on the dashboard for users with credits and a finished draft. The new duplicate-for-new-signer action turns a one-time signed contract into the starting point for the next one, which is how the top power users actually use the product (property managers sending the same lease to multiple tenants, B2B onboardings, repeating coaching agreements). Help and contact also got a clear home inside Settings instead of being hidden behind the generic Feedback link.

  • Duplicate a contract for a new signerNew

    Any contract with a document now has a "Duplicate for new signer" action in the dashboard menu. It clones the source contract, including its uploaded PDF/text pages and field placements, as a fresh draft with a new token and "(copy)" appended to the title, ready to send to the next tenant, client, or counterparty without re-uploading and re-placing signature fields. This is the path most of our recurring users were taking manually (re-upload, re-place fields each time); now it is one click.

  • Help & contact section in SettingsNew

    Logged-in users had no obvious path to get in touch from inside the app: the Feedback menu item buried the contact form behind a tab. Settings now has a dedicated Help & contact section with three entries: "Send us a message" (deep-links to /feedback?tab=contact, the contact form opens immediately), a direct mailto:contact@canusign.com fallback for users who prefer their own mail client, and "Request a feature" pointing at the public feature-voting list.

  • Cost preview above the Continue button in the editorNew

    Once a user has placed at least one signature field, the editor now shows a one-line cost preview directly above the Continue button so the price impact is visible before the user clicks through to /payment. Logged-in users with credits see "Free, your credit covers it" (with available balance); logged-in users at zero balance see "€1.49, one credit required"; guests see "First signature free, no subscription". Many users left at this step without realising their credit already covered the cost.

  • Re-engagement banner for stuck drafts on the dashboardNew

    Users with at least one draft contract that already has a document attached and credits in their balance now see a prominent mint/coral banner above the contract list: "You have N drafts ready to send, your credit covers it." Clicking jumps straight into the editor for the first stuck draft. Targets users who got their free signup credit and uploaded a PDF but never finalised.

  • Landing hero rewritten around the no-subscription wedgeImprovement

    New hero copy:"Sign PDFs. No subscription." with subtitle "Need a signature today? Pay €1.49 once, no trial, no account for your signers. eIDAS-compliant, built for the EU." Replaces the previous neutral "Sign PDFs Online / Upload any PDF, add signatures..." framing. The new copy explicitly targets the real competitive set, free-tier tools that pressure users into subscriptions after the trial, rather than enterprise e-signature players that share none of our pay-per-use audience.

  • Landing page price anchor: €1.49 per signature, not a bulk price per creditFix

    The landing page advertised the price per credit of the largest pack, which was the cheapest-per-credit price floor when buying the largest bulk pack, and in the wrong currency. First-time visitors then hit the Single pack at €1.49 at checkout and felt baited. The label now anchors to the actual single-signature price they will see at checkout (€1.49 in EUR; geo-currency adapted), and the wording shifted from "per credit" to "per signature" in every locale so the same noun is used end-to-end from landing, editor and checkout.

v0.22.0

Passkey login and Google OAuth: sign-in rebuilt

Swapped the entire auth stack from NextAuth v5 to Better Auth and put the new capabilities in front of users. /login now offers three sign-in methods: magic link (email), passkey (Touch ID / Face ID / Windows Hello via WebAuthn conditional UI), and Google OAuth. /settings/security is the new home for managing passkeys and listing active sessions, with one-click revoke per device or sign-out-everywhere-else. The post-payment success card no longer bleeds packs and promo banners through; once the credit is purchased, only the magic-link confirmation remains visible.

  • Passkey login with conditional UINew

    Email field on /login carries autocomplete="username webauthn" so browsers surface saved passkeys directly in the autofill dropdown. An explicit "Sign in with Passkey" button handles the fallback. Per-user passkey management at /settings/security (add, rename, delete) lists every credential with the device type and registration date.

  • Google OAuth sign-inNew

    Continue-with-Google button on /login wired to Google Cloud OAuth. Gated by NEXT_PUBLIC_GOOGLE_LOGIN_ENABLED so previews without credentials still build cleanly.

  • Active session list + revokeNew

    /settings/security lists every active session with the browser/OS guess, IP, and sign-in date. "Current" badge on the active session, per-row revoke, plus "Sign out other devices" when more than one session exists.

  • Cleaner post-payment success screenImprovement

    Pack selector, promo banner, trust badges, comparison hint, and Sign-up-free CTA all collapse once payment succeeds. Only the magic-link confirmation card stays visible, so guests see one obvious next step instead of a scroll of unrelated UI.

v0.20.0

Locale-aware blog content

Blog articles outside English now start from the legal framework of their market instead of US law.

  • Blog content now respects local jurisdictionsImprovement

    Articles for non-English locales now reference the actual local legal framework (eIDAS, RGPD, BGB, Codice Civile, KEP, 電子署名法) instead of US-only terms. Geo-locked topics (HIPAA, IRS Form 8879, ABA Model Rules) are blocked from generating in non-US locales.

v0.19.0

Link previews and payment fixes

A tightened Open Graph and manifest setup, so links shared on social platforms render with the proper preview, theme color and Apple web-app metadata, plus small fixes on the payment page.

  • Manifest, theme color & Apple web-app metadataDesign

    Proper PWA manifest, theme color tokens for browser chrome, and Apple-specific metadata so the site behaves like a native install on iOS Safari "Add to Home Screen".

  • Browser-back from payment now lands in editorFix

    Hitting the browser back button after a Stripe redirect used to throw users into a broken state. Now it properly returns to the editor with the document still loaded.

  • Pricing copy reflects credit-pack modelFix

    Removed legacy "€1/document" claims from marketing pages. Pricing now matches the actual credit-pack tiers (Single €1.49, Starter €4.90, Popular €9.90, Business €24.90, Pro €15/mo).

v0.18.0

Credit system, accounts & anti-abuse

The biggest change since launch: moved from per-document Stripe checkout to a credit pack system with user accounts, magic-link login, and a personal dashboard. New users get one free credit on signup, then buy packs with bonus credits stacked on top. Plus a referral program, anti-abuse system, and exit-intent conversion optimization.

  • Credit packs with bonus tiersNew

    Buy credits in bundles: Single (€1.49), Starter (€4.90 with +1 bonus), Popular (€9.90 with +5 bonus), Business (€24.90 with +15 bonus), or Pro at €15/month for unlimited use. Bonus credits highlighted in green throughout the UI.

  • User accounts & dashboardNew

    Magic-link login via email (no passwords). Personal dashboard shows your documents, credit balance, and credit history. Guest documents created before signup get migrated to your account on first login.

  • Inline Stripe paymentNew

    No more redirect to Stripe Checkout. Card form is embedded directly on the payment page so you stay in context. Single pack pre-selected for one-click purchases. Replaced in 0.24.0 by Stripe Checkout Sessions.

  • Referral programNew

    Each account has a 6-character referral code. Invite a friend and you both get a free credit when they sign up. Email notification when someone redeems your link.

  • Anti-abuse systemSecurity

    Disposable email domains blocked at signup (~100 domains covered). IP rate limit: max 3 bonus-credit signups per IP per 24h. Browser fingerprint plus signup-fingerprint persistence prevent bonus farming via account deletion + re-registration. The browser fingerprint was dropped on 23 September 2026; the check now runs on IP address and email only.

  • Avatar dropdown & credit badgeImprovement

    New header with avatar dropdown (Settings / Feedback / Logout) and a credit badge that turns mint when you have credits, gray when at zero. Click the badge to jump straight to your settings.

  • Conversion optimizationImprovement

    Trust badges (SSL, eIDAS, GDPR), social proof on the homepage, exit-intent popup with discount, and a sticky blog CTA bar that follows you while reading articles.

v0.17.0

Better signing flow & mobile polish

The signing experience got a major redesign with an integrated document header, page tabs with status icons, and proper mobile gestures. Loading states feel responsive, navigation is unified across all step types, and pinch-to-zoom works the way users expect.

  • Integrated document header during signingImprovement

    Status, page counter, page tabs and the action button are now combined into one header on top of the document. Page tabs are numbered and show a pen icon for unsigned pages, a check for signed ones, colored to match each signer.

  • Pinch-to-zoom on mobileImprovement

    Native pinch gesture support plus dedicated zoom controls underneath the document. Touch targets for navigation arrows enlarged for fingers.

  • Unified navigation for every step typeImprovement

    Same navigation pattern whether the document is a contract, uploaded PDF, text, or image. Reduces cognitive load and code surface.

  • Signing loader overlayNew

    Visible loading state during the signing API call, so there is no more wondering if the click was registered.

  • "Partially signed" statusNew

    Documents with at least one signature but not all show as "Partially signed" in the dashboard, with a clear count of remaining signers.

Missing a feature or have feedback?

Send feedback