Role
Solo builder for Akuntabel, a goal accountability app on Ethereum. Owned the Next.js / TypeScript frontend, wallet connection UX, and Solidity contracts for staking, milestones, and judge approval.
What I built
- Goal creation with stakes, descriptions, and invited judges
- Milestone tracking and completion flows
- Judge approval path before funds release
- Wallet connect via RainbowKit with Wagmi / Viem for chain reads/writes
- Responsive UI for dashboard, goal detail, and creation forms
- Deployed contracts on Sepolia with a public demo
Tech Stack
- App: React, Next.js, TypeScript, Tailwind CSS, DaisyUI
- Web3: RainbowKit, Wagmi, Viem
- Contracts: Solidity, Hardhat
- Network: Ethereum Sepolia
Context
Archive piece for self-directed product work: typed React/Next UI, hard state synchronization (chain vs client), and UX for irreversible actions. Featured builds live on SimplyVest, FlowStep, and KlikHoreca.
Smart Contract Architecture
- Goal struct: user, description, stake, judges, milestones, approval state
- Milestone tracking: mark achieved; roll up completion
- Judge approval: gates release after milestones complete
- Funds management: stake on create; release on approved completion
Frontend Architecture
- Home dashboard for active goals and create entry points
- Goal creation form for stakes, judges, and milestones
- Goal detail for progress, approvals, and transaction feedback
- Explicit pending / confirmed / failed transaction states
Lessons Learned
- Wallet connection, confirmations, and failure copy are the core product work for irreversible money flows.
- Access control and edge cases matter immediately when UI moves user funds.
- Keeping React state honest with on-chain confirmation timing is most of the frontend complexity.
Screenshots




