Skip to content

Releases: ignromanov/voidpay

v1.1.3 — /create redesign + SEO indexability + landing perf

06 Jun 19:50
d835a43

Choose a tag to compare

Patch release. Landing & /create surface only — no changes to schema v1, the invoice codec, or the payment flow.

✨ Features

  • /create redesign + SEO indexability — the creation page moved out of the no-index route group and gained a fresh hero / FAQ / how-it-works, plus a mobile scale fix. (#274)
  • Demo video on landing — responsive 16:9 / 9:16 walkthrough of create → pay. (#272)

⚡ Performance (landing Tranches 1–3)

  • No more eager 2.7 MB video fetch on the mobile critical path. (#299)
  • Demo hashes precomputed at build time; codec removed from the client bundle. (#300)
  • inlineCss + tuned browserslist + accessibility 84 → 100. (#302)
  • Below-fold rendering + LCP / CLS / compositing hardening. (#271)

🛠 Fixes & docs

  • Dropped the "no tracking" overclaim and aligned analytics copy with cookie-free Umami, surfaced Base, README demo video now plays inline. (#273, #270)

🔧 Maintenance

  • Dependency sweep: Next.js 16.2.7, viem 2.52, TanStack Query 5.101, Zustand 5.0.14, react-hook-form 7.77, Framer Motion 12.40, and dev-deps.

Full changelog: v1.1.2...v1.1.3

v1.1.2 — Mobile UX hardening + Next.js 16 + dependency sweep

19 May 03:17
c658fff

Choose a tag to compare

Release v1.1.2

51 commits on top of master (since v1.1.0) — 171 files, +12 036 / −3 127.

Maintenance + reliability release. Focus: mobile in-app browser gate (P0 fix), Next.js 16 internal upgrade, broad dependency sweep. URL schema v1 untouched — old links unchanged.

Versioning note: v1.2.0 remains reserved for the @void-layer codec rewrite (specs 055-066, target ~Jun 1). This is a PATCH release per Constitution IV — no new product capability, no schema bit shifted.


Highlights

Bug fixes (critical paths)

  • fix(mobile): unified in-app browser gate — Telegram + Meta (FB / Instagram / Messenger) + X (Twitter) + 7 other hostile IABs. Closes GH#214 P0. Spec 073, PR #236.
  • fix(payment): suppress payment-progress toast on mobile. Closes GH#215. PR #216.
  • fix(landing): remove pixi.js + footer rewrite (landing cluster #53). PR #193.

Features (small)

  • feat(video): Remotion demo v2 — Path C scenes, 9-quadrant caption matrix, hook variants. (Dev / marketing content — not user-facing in app.)

Refactor

  • refactor(creator-store): extract CREATOR_INITIAL_STATE as single source of truth.

Docs / Compliance

  • docs(privacy): disclose Vercel access-log retention for ?og= query string.
  • docs(terms): align Terms of Service with Umami analytics disclosure.

Infrastructure

  • chore(deps): Next.js 15 → 16 upgrade (spec 054, PR #213). Major framework bump, no product-API change. Follow-ups GH#211 (OG-param hashing) and GH#212 (React Compiler global adoption) remain P2.
  • chore(deps): React + @types/react → latest 19.2.x (PR #208).

Dependencies (41 dependabot PRs auto-merged)

  • Web3 / payment: viem 2.47.16 → 2.48.11, @rainbow-me/rainbowkit 2.2.10 → 2.2.11
  • State / data: @tanstack/react-query 5.99.0 → 5.100.10, zustand 5.0.12 → 5.0.13, react-hook-form 7.72.1 → 7.75.0, zod 4.3.6 → 4.4.3
  • Infra: @upstash/redis 1.37.0 → 1.38.0, hono security group
  • UI: tailwind-merge 3.5.0 → 3.6.0, @tailwindcss/postcss 4.2.2 → 4.3.0, framer-motion no change
  • Validation / forms: pdfmake 0.3.7 → 0.3.8, uuid 13 → 14
  • Dev / tooling: typescript-eslint 8.58.2 → 8.59.3, prettier 3.8.2 → 3.8.3, happy-dom 20.8.9 → 20.9.0, vite-tsconfig-paths 5 → 6, lint-staged 16 → 17, pnpm/action-setup 5 → 6

Breaking changes

None for URL schema (v1 still LOCKED per Constitution IV — perpetual contract). Old links continue to decode and pay correctly.

Internal Next.js 16 surface: no app-router or middleware behaviour change observed; review noted in spec 054. Two P2 follow-ups deferred:

  • GH#211 — OG-param hashing for access-log opacity
  • GH#212 — global React Compiler adoption (currently per-component opt-in; 12 stale eslint-disable react-hooks/refs directives remain as lint warnings — non-blocking)

Risk assessment

Risk Mitigation
Next.js 16 regression on /pay hot paths Spec 054 already shipped to develop weeks ago; Vercel preview deploys + UmamI baseline clean on develop
In-app browser gate false positives 10 IAB UAs covered (TG + Meta family + X + 7 others); rollback = revert PR #236 only
Web3 dep stack drift (viem / wagmi / rainbowkit) Patch-tier only, no major bumps; multi-network smoke required post-deploy
LocalStorage shape Unchanged from v1.1.0

Test plan

  • CI green on develop (per-PR merge)
  • Type-check + lint clean (0 errors, 12 stale eslint-disable warnings tracked in GH#212)
  • Full pnpm test:coverage re-run on this PR's HEAD
  • Smoke /pay on Ethereum, Base, Arbitrum, Optimism, Polygon after deploy
  • Smoke in-app browser gate from Telegram + Instagram + X
  • Verify Umami events post-deploy (no PII, no wallet addresses)
  • Verify Speed Insights LCP / INP baseline within ±10 %
  • Tag v1.1.2 after merge

Closed issues / PRs

  • Closes GH#214 (in-app browser P0)
  • Closes GH#215 (mobile payment toast)
  • Squashes 41 dependabot PRs (see commit list)

Post-merge

  1. Tag v1.1.2 on master
  2. Cut GitHub Release with this body
  3. Verify Vercel production deploy + Umami 24 h baseline
  4. Coordinate launch copy with Spark (CMO)
  5. Confirm Next 16 P2 follow-ups (GH#211, GH#212) stay on roadmap

🤖 Generated with Claude Code

v1.1.0 — Base Network + Payment Reliability

14 Apr 04:40
9e77e98

Choose a tag to compare

v1.1.0 — Base Network + Payment Reliability

Released: 2026-04-13

Base mainnet is live — VoidPay now runs on 5 chains (Ethereum, Base, Arbitrum, Optimism, Polygon). The payment flow moved to typed viem errors, survives sped-up and replaced transactions, and wallet rehydration no longer flashes disconnect on /pay.

Added

  • Base network (8453) — full support alongside Ethereum, Arbitrum, Optimism, Polygon PoS. Refactored the network visual system to scale to N chains (#79)
  • Typed wagmi error handling — replaced string matching with typed viem errors; added onReplaced callback so the payment flow survives sped-up / replaced transactions (#115)
  • /compare/request-finance — new comparison page with April 2026 research data, added to sitemap with priority
  • PWA 512×512 icon for install prompts and social sharing
  • TalentApp domain verification meta tag

Changed

  • History page — redesigned cards in the payment-panel visual language
  • TrackedInvoice store — now keyed by SHA-256 contentHash instead of array index (migration included for existing LocalStorage entries)

Fixed

  • Wallet — rehydration race and cross-tab connection sync in scoped Web3Providers (prevents brief disconnect flash on /pay)
  • History — batch unpaid-check now covers both created and received invoices
  • Payment — CSS keyframe rotate prevents SmartPay spinner freeze on the Reown modal
  • Invoice generation — mount flash, source immutability, cross-tab sync
  • Demo — native-token template loading
  • SECURITY.md — corrected styled-components reference (we inject via inline styles)

Security

  • hono bumped via the npm_and_yarn security group
  • @noble/hashes 2.0.1 → 2.2.0

Infrastructure

  • project-sync workflow — auto-syncs GH issues across both repos into the VoidPay Roadmap project board (GraphQL-based)
  • Dependabot auto-merge workflow + PR-template hygiene

Dependencies

  • viem 2.47.6 → 2.47.16
  • @tanstack/react-query 5.90.16 → 5.99.0
  • framer-motion 12.23.26 → 12.38.0
  • pixi.js 8.14.3 → 8.17.1
  • react-hook-form 7.70.0 → 7.72.1
  • use-debounce 10.0.6 → 10.1.1
  • Dev: prettier 3.8.2, typescript-eslint 8.58.2, vite 7.3.2, vitest 4.1.2, tailwindcss 4.2.2, postcss 8.5.8

Breaking Changes

None for URL schema (v1 remains LOCKED — existing links keep working).

LocalStorage: the TrackedInvoice store was re-keyed from array index to SHA-256 contentHash. Migration is in place; existing history is preserved.

Full Changelog: v1.0.1...v1.1.0

v1.0.1 — Hotfixes

31 Mar 22:18
553ea92

Choose a tag to compare

Same-day fixes for a privacy leak and OG preview issues discovered post-launch.

Security

  • Umami analytics was receiving URL hash fragments containing full invoice data via browser referrer context — added data-exclude-hash attribute to prevent leakage (PR #46)

Fixed

  • BigInt guard against non-integer values in total field during conversion (PR #46)
  • OG preview truncated invoice IDs to 8 characters — now preserves dashes, up to 20 chars (PR #49)
  • Twitter link pointed to wrong handle — corrected to @voidpay_xyz (PR #49)
  • /og-image, /coming-soon, /pay, /invoice excluded from sitemap and robots.txt (PR #50)

Full Changelog: v1.0.0...v1.0.1

v1.0.0 — Production Launch

31 Mar 21:31
553ea92

Choose a tag to compare

VoidPay v1.0.0 — the first production release of zero-backend crypto invoicing. All invoice data lives in the URL hash fragment — no database, no signup, no server-side state. The link IS the invoice.

Core Architecture

  • TLV v1 codec with Brotli WASM compression — invoices encode to URL-safe strings under 2KB
  • Schema v1 is locked — links created today work forever
  • Domain separator + salt for anti-replay protection
  • 29-address token dictionary for compact encoding

Networks

  • Ethereum (1), Arbitrum (42161), Optimism (10), Polygon PoS (137)
  • Native tokens (ETH, MATIC) + any ERC-20 with Uniswap Token List verification
  • RPC proxy (/api/rpc) — API keys server-side, multi-provider failover (Alchemy → Infura → public)

Invoice Creation

  • Form-based editor with live InvoicePaper preview
  • Line items, due dates, notes (280 char limit), recipient address
  • Magic Dust — random micro-amount for exact payment matching
  • OG preview opt-in (?og=) — server sees minimal metadata, hash stays private
  • ShareModal with link copy, QR code, and social sharing

Payment Flow

  • SmartPayButton: 9-state machine (connect → switch network → send → confirm)
  • Auto-chain switching — one click from disconnected wallet to submitted transaction
  • EIP-681 QR codes for mobile wallet scanning
  • Native and ERC-20 transfer support (send-native.ts, send-erc20.ts)

Verification

  • Payment verification to finalized block status — reorg protection
  • /invoice page for creators to track payment status
  • /pay page decodes hash fragment client-side with 4 error states

History & Export

  • LocalStorage-based history (created + paid invoices, no financial data leaves device)
  • Client-side PDF generation via pdfmake — QR for pending, "PAID" watermark with tx hash
  • Export/import history for backup

Privacy & Security

  • No Clarity, no Sentry, no client-side analytics collecting invoice data
  • URL hash fragment never sent to server (HTTP spec)
  • Umami analytics with data-exclude-hash — pageviews only, no invoice content
  • No cookies, no session tokens, no accounts

UI

  • Hybrid theme: dark UI (zinc-950) + light invoice document — "paper on desk" metaphor
  • Network-colored ambient glows (Ethereum indigo, Arbitrum blue, Optimism red, Polygon purple)
  • Pixi.js animated backgrounds on landing
  • Mobile-first: 44px touch targets, safe areas, 100dvh, iOS zoom prevention
  • Glassmorphism design system built on Radix UI + shadcn/ui + Framer Motion

Landing Page

  • 9 sections: Hero, Demo, WhyVoidPay, Audience, FAQ, SocialProof, Comparison, Nav, Footer
  • JSON-LD schemas: FAQPage, Organization, SoftwareApplication
  • Interactive demo invoice

Developer Experience

  • Next.js 15 + React 19 + TypeScript strict
  • Feature-Sliced Design architecture
  • 2,550+ tests, 80%+ coverage (Vitest + Istanbul)
  • TypeScript Project References (~1.5s incremental builds)
  • ESLint 9 flat config, pre-commit hooks (lint + typecheck + coverage)

Links