Skip to main content
Personal SaaS
LIVE
Featured

ZniForm

Forms that get paid. Build and publish a form, launch secure PayPal checkout from the same link, and let reconciliation, receipts, and notifications run automatically. Built and operated solo, end to end.

ZniForm

Overview

ZniForm, formerly Lyra, is a self-owned SaaS for creating forms that can collect information and launch secure PayPal checkout from the same public link. PayPal confirmation drives payment status, while the product handles reconciliation, receipts, notifications, and the creator balance. I designed, built, deployed, and operate the product and its Cloudflare-native stack myself.

Problem

Creators and small organizations often stitch together a form tool, a separate payment link, and a spreadsheet. That fragments the respondent journey and leaves the creator manually matching submissions to payments, producing receipts, and following up on status changes.

Solution

One product owns the workflow from form creation to settlement: publish a form or commerce flow, accept payment through PayPal, confirm the authoritative capture, update the submission automatically, generate a receipt, notify the right people, and record the creator's balance. The same platform also supports event tickets and check-in, workspaces, analytics, and integrations.

Architecture

A Next.js frontend runs on Cloudflare through OpenNext, backed by a Hono API on Cloudflare Workers. D1 and Drizzle store product and ledger data; KV provides caching, locks, and rate limits; R2 stores generated files; Queues and Cron handle asynchronous notifications and scheduled work. Better Auth provides authentication, while PayPal Orders v2 is the active gateway for payments and subscriptions.

Lessons learned

Financial products are mostly boundary work: provider currency rules, authoritative capture data, idempotency, fee transparency, and recovery after partial failure. ZniForm reinforced that every money movement needs one source of truth, a durable retry strategy, and copy that says exactly what the active provider can do.

Challenges

  • Keep PayPal's USD charge authoritative while presenting a useful IDR estimate and preserving the exchange-rate snapshot used for each transaction
  • Reconcile captures, provider fees, platform fees, creator balances, and payouts without double-crediting or double-paying when retries occur
  • Keep payment credentials inside PayPal-hosted surfaces while maintaining a cohesive checkout experience from the public form
  • Enforce workspace roles and plan entitlements across forms, money, team operations, and connected surfaces without deleting data on downgrade

Results

Live at zniform.com with English and Indonesian product surfaces

Form, payment-link, event-ticket, catalog, booking, and digital-product flows share one submission and payment foundation

PayPal-confirmed status updates feed automatic reconciliation, server-generated PDF receipts, and email or WhatsApp notifications

Runs on Cloudflare Workers, D1, KV, R2, Queues, and Cron as a product I operate end to end

Live Demo

https://zniform.com
โ–ถ

Try it live

Run the app directly in your browser