Mari's Gardens — B2B Ordering Portal
This Statement of Work ("SOW") is entered into by and between:
Provider: VtKL ("VtKL", "we", "us")
Los Angeles, California
Client: Brendon Lau Agricultural LLC, d/b/a Mari's Gardens ("Client", "Mari's Gardens")
Mililani, Hawaii
VtKL will design, develop, and deploy a B2B Ordering Portal for Mari's Gardens — a web-based system that replaces manual email-based ordering with a digital platform serving approximately 70 wholesale clients (restaurants, retailers, and distributors).
The system includes:
This is an ordering system, not a payment system. The portal creates orders and generates QuickBooks invoices automatically. Payment continues through Client's existing channels and terms.
Full ordering system with admin and customer portals, delivered in 7 incremental slices:
| Slice | Deliverables | Week |
|---|---|---|
| 1. Foundation & Auth | Database schema, authentication system (admin + customer + guest), role-based access control, application shell | 1-2 |
| 2. Product Catalog | Product CRUD with multi-image upload (up to 10 per product), drag-and-drop image reordering, carousel display, category management, availability tracking | 2-3 |
| 3. Customer Management | Customer CRUD, email invitation flow, pre-populated onboarding, status tracking (Invited → Active → Inactive), tier classification | 3-4 |
| 4. Customer Portal & Ordering | Product catalog with carousel, cart & ordering, guest checkout with form and PDF generation, "Repeat Last Order" functionality | 4-5 |
| 5. Order Management | Admin order dashboard, status flow (New → Confirmed → Packed → Delivered), quantity adjustment with client notification, packing sheet generation (individual and batch), guest-to-customer conversion | 5-6 |
| 6. Standing Orders & QuickBooks | Standing order templates and auto-generation, client confirm/adjust flow, QuickBooks Online OAuth 2.0 integration, automatic Invoice creation on order confirmation, sync status tracking and retry logic | 6-7 |
| 7. Notifications & Launch | Transactional email system (Resend), branded email templates, mobile responsiveness, UAT with Client, production deployment | 7-8 |
| Component | Technology | Purpose |
|---|---|---|
| Frontend | Next.js (App Router) | Server-rendered React application |
| Hosting | Cloudflare Workers | Global CDN, zero cold-start serverless |
| Backend | Supabase | PostgreSQL database, authentication, file storage, edge functions, row-level security |
| Accounting | QuickBooks Online API | Accounting API (OAuth 2.0), automatic Invoice creation |
| Resend | Transactional email delivery with branded templates | |
| Development | Claude Opus 4.7 | AI-accelerated code generation, testing, and iteration |
This project uses AI-accelerated development. Client pays for: (1) human expert hours for architecture decisions, code review, configuration, and UAT support, and (2) AI inference costs for development work. The AI agent's labor is not billed separately.
| Phase | Human Expert Hours | AI Inference Cost (est.) | Timeline |
|---|---|---|---|
| Phase 1 — MVP | 35 hours | ~$2,000 | 6-8 weeks |
| Phase 2 — Self-Service | 12 hours | ~$650 | 3-4 weeks |
| Phase 3 — Email Intake | 10 hours | ~$650 | 2-3 weeks |
| Total (All Phases) | 57 hours | ~$3,300 | 12-16 weeks |
Human expert hours are billed at the agreed hourly rate. AI inference costs are billed at cost with no markup.
Following launch, VtKL will provide ongoing maintenance and support to ensure the system remains healthy, secure, and compatible with evolving technology dependencies.
| Activity | Estimated Hours |
|---|---|
| Dependency updates & security patches (Next.js, Supabase SDK, Resend, node-quickbooks) | 3-4h |
| QuickBooks API compatibility monitoring & adjustments | 1-2h |
| Bug fixes & small enhancements | 2-3h |
| Monitoring, health checks & backup verification | 1-2h |
| Total Monthly Retainer | 10 hours |
Monthly maintenance is billed at the agreed hourly rate plus estimated ~$50-100/month AI inference for implementation of updates and fixes.
Maintenance does not include: new feature development beyond small enhancements, infrastructure scale-up costs if free tiers are exceeded, or emergency after-hours support (available at 1.5x rate if needed).
Client receives a brief monthly maintenance report detailing: updates applied, bugs fixed, health check results, hours used vs. allocated, and recommendations.
All infrastructure services operate within free tiers at the Client's current volume:
| Service | Monthly Cost | Notes |
|---|---|---|
| Supabase (DB, Auth, Storage) | $0 | Free tier: 50K MAU, 500MB DB, 1GB storage |
| Cloudflare Workers (Hosting) | $0 | Free tier: 100K requests/day |
| QuickBooks Online API | $0 | Builder tier: 500K reads/month |
| Resend (Email) | $0 | Free tier: 3,000 emails/month |
| Total | $0/month |
If Client's volume exceeds free tiers, VtKL will notify Client before any paid tier transition. Infrastructure costs are passed through at cost.
Client agrees to provide the following:
Estimated total time commitment from Client: approximately 6-8 hours across the entire project.
Upon full payment, Client owns all custom code, designs, and content developed specifically for the Mari's Gardens Ordering Portal. VtKL retains the right to use general-purpose frameworks, libraries, and methodologies developed independently of this engagement.
Third-party open-source components retain their respective licenses.
VtKL warrants that each delivered Phase will materially conform to the acceptance criteria specified in the accompanying Business Specification (available at maris-gardens-spec.pages.dev) for a period of 30 days following Client acceptance ("Warranty Period"). During the Warranty Period, VtKL will correct any defects at no additional charge.
Client acceptance is deemed granted if Client does not provide written notice of material non-conformance within 10 business days of delivery.
VtKL's total aggregate liability under this SOW shall not exceed the total fees paid by Client under this SOW. Neither party shall be liable for indirect, incidental, consequential, or punitive damages.
This SOW commences on the Effective Date and continues until all Phases are completed or the SOW is terminated. Either party may terminate this SOW with 15 days' written notice. Upon termination, Client shall pay for all work completed through the termination date.
Monthly maintenance may be terminated by either party with 30 days' written notice.
Each party agrees to maintain the confidentiality of the other party's proprietary information disclosed under this SOW. This obligation survives termination for a period of two (2) years.
This SOW shall be governed by the laws of the State of California without regard to conflict of law provisions.
The complete Business Specification, including detailed feature requirements, acceptance criteria, user stories with BDD test scenarios, wireframes, and technical architecture, is available at:
https://maris-gardens-spec.pages.dev
The Business Specification is incorporated by reference into this SOW. In the event of conflict between this SOW and the Business Specification, this SOW shall control.
This SOW, together with the referenced Business Specification, constitutes the entire agreement between the parties with respect to the subject matter hereof and supersedes all prior discussions, representations, and agreements. No modification of this SOW shall be binding unless made in writing and signed by both parties.
Effective Date: _______________