Problem
Equity vesting for early teams usually lives in spreadsheets or custodial dashboards that founders do not trust. Crypto-native vesting tools push wallet extensions and seed phrases onto people who just want a schedule they can claim from. SimplyVest needed a Web2 login path with on-chain custody underneath.
Decisions
- Web2-first auth with Privy (email / Google) and embedded Solana wallets so operators never touch a browser extension
- Anchor program for linear, cliff, and milestone schedules with PDA-custodied vaults
- Hono API on Cloudflare Workers + D1 (Drizzle) with a cron reconciler that syncs on-chain stream state every 15 minutes
- pnpm monorepo with separate apps for dapp, API, Anchor program, marketing, docs, and Storybook, plus shared TypeScript SDK and UI packages
- Sixteen GitHub Actions workflows covering build, test, lint, typecheck, E2E, and deploy
What I built
- React 19 dapp (Vite, TanStack Router / Query, Tailwind CSS 4) for issuing, managing, and claiming schedules
- TypeScript SDK wrapping the Anchor IDL for PDA derivation, vesting math, event parsing, and account fetches
- Off-chain API and reconciler for durable reads without hammering RPC
- CI/CD to Cloudflare Pages and Workers
Tech Stack
- Product UI: React 19, Vite, TanStack Router, TanStack Query, Tailwind CSS 4
- API: Hono on Cloudflare Workers, Drizzle ORM, Cloudflare D1
- Chain: Solana, Anchor (Rust), TypeScript SDK
- Auth: Privy
- Delivery: pnpm monorepo, GitHub Actions, Playwright, Sentry
Outcomes
- Public marketing site and live app: simplyvest.xyz, app.simplyvest.xyz
- Open monorepo: github.com/simplyvest/simplyvest
- Sole / end-to-end ownership across program, API, and product UI
Context
Newest full-stack build I can point at: React product UI, Workers APIs, CI across the monorepo, and a real fintech-shaped Web3 product.
Screenshots



