AutomatedWorx Austin

EventLay

Visual event layout builder with real-time pricing. The simple alternative to CAD for event professionals.
MVP Product Blueprint · v1.0 · March 2026
Section 01

Product Definition

One-Sentence Definition

EventLay is a visual drag-and-drop event layout tool that lets event professionals place production elements on a venue photo and see real-time pricing — no CAD skills required.

Core Problem

Event planners and production teams currently use one of three broken workflows to plan event layouts:

None of these work in a live client conversation where you need to show a layout, adjust it in real time, and produce a budget — all in the same screen.

Value Proposition

EventLay collapses layout design, visualization, and pricing into a single fast interface. Upload a photo of the venue, drag in your stage, LED walls, seating, and production gear — and watch the budget calculate itself. Close deals faster. Look professional instantly.

Why This Should Exist

Section 02

User Personas

🎤 Event Production Company Owner

Goal: Close deals faster by showing clients a visual layout with pricing during the initial meeting.

Pain: Currently bounces between Vectorworks (slow), spreadsheets (ugly), and verbal descriptions (imprecise). Loses deals because clients can't visualize the setup.

Fit: Opens EventLay on a laptop during a client call. Drops in a stage, LED wall, and seating. Client sees it live. Budget appears instantly. Proposal sent before they leave the room.

📋 Corporate Event Planner

Goal: Plan internal events (town halls, galas, conferences) without needing a production team for the layout phase.

Pain: No technical training. Can't use CAD. Relies on vendors to mock up layouts — adds days to the cycle.

Fit: Picks a template ballroom, drags in chairs and a stage, exports a visual + budget to send to leadership for approval — all in 15 minutes.

🎬 Freelance AV / Production Tech

Goal: Quickly spec out and price a gig for a client who asked "how much for a stage and sound in this room?"

Pain: Uses mental math and a text message to quote. Looks unprofessional. Underquotes regularly.

Fit: Snaps a photo of the venue, uploads to EventLay, places gear, sends a branded visual quote in 10 minutes.

💼 Event Sales Rep

Goal: Build and iterate on layouts live during a sales call to maximize upsell.

Pain: Currently says "I'll send you a proposal next week." By then, the client has 3 other quotes. Speed wins.

Fit: Screen-shares EventLay during a Zoom call. Builds the layout live. Client says "add another LED panel." Price updates. Deal closes on the call.

Section 03

MVP Scope

Ruthlessly scoped. If it doesn't help close a deal or build a layout in under 10 minutes, it's cut.

Must Have — MVP

Nice to Have

V2 / Later

Section 04

Core User Flows

Flow A: Create New Project

1
User clicks "New Project" from dashboard
2
Enter project name (e.g., "Smith Wedding — Grand Ballroom")
3
Choose venue source: Upload Photo or Pick Template
4
Canvas loads with venue image as background → editor opens

Flow B: Upload Venue Image

1
Click "Upload Photo" → file picker opens (accept JPG, PNG, WebP)
2
Image uploads, auto-fits to canvas (user can adjust zoom/pan)
3
Canvas is ready — asset library panel appears on the left

Flow C: Use Template Venue

1
Gallery of 6–8 venue templates shown as thumbnail cards
2
Click to select → template loads as canvas background
3
Proceed to layout editor

Flow D: Build Layout (Core Loop)

1
Browse asset library (left panel, categorized: Stage, AV, Seating, Production)
2
Drag element onto canvas → item snaps to cursor, drops on release
3
Select placed element → handles appear for move, resize, rotate
4
Adjust quantity via sidebar (e.g., "Chairs: 200") or duplicate on canvas
5
Pricing panel (right sidebar) updates in real time with each change
6
Auto-save triggers every 5 seconds of inactivity

Flow E: Share with Client

1
Click "Share" button in top toolbar
2
Generates a unique view-only link (no login required for viewer)
3
Client sees: layout image + itemized pricing list + total
4
Optionally download as PNG from share view
Section 05

UX / UI System Design

Layout Structure

┌──────────────────────────────────────────────────────────────┐
│  TOP BAR: Logo | Project Name | Save | Undo/Redo | Share    │
├──────────┬────────────────────────────────┬─────────────────┤
│          │                                │                 │
│  ASSET   │                                │   PRICING       │
│  LIBRARY │         CANVAS                 │   PANEL         │
│          │    (venue photo +              │                 │
│  Stage   │     placed elements)           │  Line items     │
│  AV      │                                │  Quantities     │
│  Seating │                                │  Unit prices    │
│  Prod    │                                │  Subtotals      │
│          │                                │                 │
│          │                                │  ───────────    │
│          │                                │  TOTAL: $XX,XXX │
│          │                                │                 │
├──────────┴────────────────────────────────┴─────────────────┤
│  STATUS BAR: Zoom % | Grid toggle | Canvas dimensions      │
└──────────────────────────────────────────────────────────────┘

Panel Details

Left Panel — Asset Library (240px)

  • Collapsible category accordion: Stage, Audio/Visual, Seating, Production, Decor
  • Each item: thumbnail icon + name + base price
  • Drag source — grab and drop onto canvas
  • Search/filter bar at top

Center — Canvas (flex)

  • Venue photo as background layer (locked, not draggable)
  • Placed elements rendered as semi-transparent 2D shapes with icons
  • Click to select → 8-point resize handles + rotation handle
  • Pan: click-drag on empty space or scroll
  • Zoom: scroll wheel or pinch (trackpad)
  • Delete: select → press Delete key or click trash icon

Right Panel — Pricing (280px)

  • Auto-populated as items are placed
  • Each row: item name, quantity (editable input), unit price, line total
  • Quantity changes here update canvas (e.g., chair count)
  • Sticky total at bottom with tax toggle
  • Collapsible for more canvas space

Drag & Drop Interactions

Responsiveness

BreakpointBehavior
Desktop (≥1024px)Three-panel layout. Full experience.
Tablet (768–1023px)Left panel collapses to icon-only. Pricing panel becomes bottom drawer.
Mobile (<768px)View-only share links work. Editing disabled with prompt: "Open on desktop to edit."
Section 06

Functional Requirements

Object Manipulation

FeatureMVPDetails
MoveFree-position on canvas via drag
Resize8-point handles, shift for aspect lock
RotateFree rotation via handle, snap at 0°/90°/180°/270°
DeleteKeyboard (Del/Backspace) + context menu
Layer orderNice-to-have. Default: newest on top.
GroupV2
Undo / RedoNice-to-have. Command stack with Ctrl+Z/Y

Saving & Loading

Asset Catalog

Pricing Engine

Export & Share

Authentication & Permissions

Section 07

Technical Architecture

Optimized for: ship fast, stay cheap, scale later. No premature infrastructure.

LayerChoiceRationale
Frontend Next.js 14 (App Router) + TypeScript SSR for share pages, file-based routing, massive ecosystem, Vercel-native
Canvas / Rendering Konva.js (via react-konva) Purpose-built for 2D canvas apps. Handles drag/drop, resize, rotate, layering, hit detection out of the box. Used by Canva, Crello. Far simpler than raw Canvas/WebGL.
State Management Zustand Lightweight, no boilerplate. Perfect for canvas state + pricing state sync.
Styling Tailwind CSS Rapid UI development. Consistent design tokens. No CSS overhead.
Backend / API Supabase (Postgres + Auth + Storage + Edge Functions) Eliminates need for custom backend. Auth, DB, file storage, and serverless functions in one platform. Generous free tier.
Database Supabase Postgres Relational. Projects → LayoutItems. Clean joins for pricing. Row-level security for permissions.
File Storage Supabase Storage Venue photo uploads. Signed URLs for access control. CDN-backed.
Image Export Konva .toDataURL() (client-side) No server needed. Canvas rendered to PNG in-browser.
Hosting Vercel Zero-config Next.js hosting. Edge network. Free tier sufficient for MVP. Auto-deploys from Git.
Domain eventlay.automatedworx.com (subdomain) Lives under AutomatedWorx brand. Easy DNS setup.

Architecture Diagram


  Browser (Next.js SPA)
    │
    ├── react-konva → 2D Canvas rendering
    ├── Zustand → Local state (layout + pricing)
    │
    ├── Supabase Client SDK
    │     ├── Auth (email/Google)
    │     ├── Postgres (projects, items, catalog)
    │     ├── Storage (venue photos)
    │     └── Edge Functions (share link generation)
    │
    └── Vercel (hosting + SSR for share pages)
    

Why NOT These Alternatives

Section 08

Data Model

Entity: User

{
  id: uuid (PK, from Supabase Auth)
  email: string
  full_name: string
  company_name: string | null
  avatar_url: string | null
  tax_rate: decimal (default: 0)  // user's default tax %
  created_at: timestamp
}

Entity: Project

{
  id: uuid (PK)
  user_id: uuid (FK → User)
  name: string
  venue_image_url: string | null  // uploaded photo
  venue_template_id: string | null  // or template key
  canvas_width: int
  canvas_height: int
  share_token: string (unique, for view-only link)
  is_shared: boolean (default: false)
  created_at: timestamp
  updated_at: timestamp
}

Entity: LayoutItem

{
  id: uuid (PK)
  project_id: uuid (FK → Project)
  catalog_item_id: uuid (FK → CatalogItem)
  x: float  // position on canvas
  y: float
  width: float
  height: float
  rotation: float (degrees)
  quantity: int (default: 1)
  z_index: int
  created_at: timestamp
  updated_at: timestamp
}

Entity: CatalogItem

{
  id: uuid (PK)
  name: string  // "LED Wall 10x8"
  category: enum [stage, av, seating, production, decor]
  icon_url: string  // SVG or PNG thumbnail
  default_width: float
  default_height: float
  base_price: decimal  // e.g., 1500.00
  price_unit: string  // "per unit", "per linear ft", "per day"
  description: string | null
  sort_order: int
  is_active: boolean
}

Entity: VenueTemplate

{
  id: uuid (PK)
  name: string  // "Grand Ballroom"
  image_url: string
  category: string  // "indoor", "outdoor"
  canvas_width: int
  canvas_height: int
  sort_order: int
}

Relationships

User 1──∞ Project
Project 1──∞ LayoutItem
LayoutItem ∞──1 CatalogItem
Project ∞──0..1 VenueTemplate
Section 09

Pricing Engine Logic

Core Formula

For each LayoutItem in project:
  line_total = catalog_item.base_price × layout_item.quantity

subtotal = SUM(all line_totals)
tax = subtotal × (user.tax_rate / 100)
grand_total = subtotal + tax

Example Calculation

ItemQtyUnit PriceLine Total
Stage 16×241$3,500$3,500
LED Wall 10×82$2,200$4,400
Line Array Speaker4$800$3,200
Round Table (60")20$45$900
Chiavari Chair200$8$1,600
Lighting Truss 10ft6$350$2,100
Podium1$250$250
Subtotal:    $15,950.00
Tax (8.25%): $1,315.88
─────────────────────────
Grand Total: $17,265.88

Pricing Rules

Computation Location

Client-side only. All pricing is computed in the Zustand store from layout items + catalog data. No server round-trip needed. This keeps the UI instant and eliminates latency, which is critical for the live-meeting use case.

Section 10

Collaboration Strategy

MVP: Async Share (Included)

  • Creator builds layout → clicks "Share" → gets a unique URL
  • Anyone with the link can view the layout + pricing (no login required)
  • View is read-only. No editing. No commenting.
  • Share page is server-rendered (Next.js SSR) for fast load + social preview meta tags
  • Use case: "Let me send you the layout we discussed" — after the meeting

Real-World "Live Collaboration" without Engineering Complexity

For the live-meeting scenario, the MVP does NOT need real-time sync. Here's why:

  • The user screen-shares EventLay during a Zoom/Teams/Google Meet call
  • Client watches the layout being built live on the shared screen
  • Client gives verbal feedback → user drags/drops → client sees changes instantly
  • This is 90% of the value of "live collaboration" with 0% of the engineering cost

Screen share IS the collaboration layer for MVP.

Deferred: Real-Time Sync (V2)

Deferred: Built-In Video (V3+)

Section 11

Product Decisions

Decision

2D top-down view — not 3D.

Reasoning: 3D requires WebGL, complex camera controls, 3D model assets, and dramatically increases engineering time (3–6 months). 2D top-down using Konva.js ships in weeks, is intuitive for non-technical users, and matches how event planners already think (floor plans). 3D is a V3 "wow factor" feature, not an MVP need.

Tradeoff: Less visual "wow" in demos. Mitigated by polished 2D icons + venue photo backgrounds that add depth.

Decision

No video upload in MVP.

Reasoning: Video frames as backgrounds add storage cost, transcoding complexity (ffmpeg), and minimal UX value over a photo. A user can screenshot a video and upload the JPEG.

Tradeoff: Slightly more manual step for users with video-only venue content. Acceptable.

Decision

No built-in video calls.

Reasoning: WebRTC is a product unto itself. Users already have Zoom/Teams. Building video into EventLay adds months of work for marginal value. Screen-sharing EventLay inside an existing call achieves the same outcome.

Tradeoff: Less "all-in-one" feel. Acceptable at MVP — users won't miss it.

Decision

No real-time collaboration in MVP.

Reasoning: Real-time sync (multiplayer cursors, live edits) requires WebSocket infrastructure, conflict resolution, and extensive testing. The screen-share workflow covers the live-meeting use case. Real-time collab is a V2 feature gated on user demand.

Tradeoff: Two people can't edit the same layout simultaneously. Not a real blocker — one person drives the layout in meetings.

Decision

Yes — template venues included.

Reasoning: Critical for onboarding and zero-friction first experience. A new user with no venue photo can still start immediately. Templates also serve as demo content for marketing. 6–8 high-quality venue images sourced from royalty-free stock (Unsplash).

Tradeoff: Minimal — just curated stock images + seed data.

Decision

Desktop-first, not mobile-first.

Reasoning: Canvas-based drag-and-drop editing is fundamentally a desktop/laptop interaction. Precision placement requires a mouse or trackpad. Mobile gets view-only share links. Tablet gets a functional but compressed editor.

Tradeoff: Mobile users can view but not edit. Acceptable — no one builds event layouts on a phone.

Section 12

Risks & Complexity

⚠️ Technical Risk: Canvas Performance

Risk: Large venue photos + many elements (200+ chairs) could cause lag on lower-end machines.

Mitigation: Konva.js supports layer caching and viewport culling. Represent bulk items (200 chairs) as a single block with a count label, not 200 individual objects. Limit canvas to 4000×3000px max.

⚠️ Technical Risk: Image Upload Size

Risk: Users upload 50MB raw DSLR photos, causing slow loads.

Mitigation: Client-side image compression before upload (browser-image-compression library). Max 5MB after compression. Resize to max 3000px on longest edge.

⚠️ UX Risk: "Is this to scale?"

Risk: Users expect spatial accuracy. A photo-based layout is not dimensionally accurate.

Mitigation: Explicit disclaimer: "Layouts are for visualization and pricing — not to scale." Position this as a feature, not a bug: "Skip the CAD. Focus on the vision." Scale tools are a V2 feature.

⚠️ UX Risk: Pricing Accuracy

Risk: Catalog prices don't match user's actual costs. Users lose trust.

Mitigation: Allow admin to customize catalog prices. In V2, allow per-user custom pricing. Frame MVP prices as "estimates" with a disclaimer. Users will still find directional pricing valuable.

⚠️ Adoption Risk: "I already use Vectorworks"

Risk: Power users dismiss EventLay as too simple.

Mitigation: Don't target Vectorworks power users. Target the 80% who DON'T use Vectorworks because it's too complex. Position as "the tool for client conversations" not "a replacement for CAD."

⚠️ Adoption Risk: Catalog Coverage

Risk: Users need items not in the catalog → product feels incomplete.

Mitigation: Launch with 25–30 common items covering 80% of use cases. Add a "Request an item" feedback button. V2: custom item uploads.

Section 13

Build Plan

Phase 1

Design & Setup — Week 1–2

  • Finalize UI mockups (Figma) — editor layout, dashboard, share page
  • Design asset icon set (25–30 items as clean SVGs)
  • Set up Next.js project + Tailwind + TypeScript
  • Set up Supabase project (Auth, DB schema, Storage bucket)
  • Source 6–8 royalty-free venue template images
  • Seed CatalogItem table with 25–30 items + pricing

Deliverables: Figma file, initialized repo, seeded database, asset icons

Phase 2

Core Build — Week 3–6

  • Auth flow (sign up, login, logout, protected routes)
  • Dashboard: project list, create/delete project
  • Venue selection: upload photo + template picker
  • Canvas editor: Konva.js setup, venue background rendering
  • Asset library panel with drag-and-drop to canvas
  • Object manipulation: move, resize, rotate, delete
  • Pricing panel: real-time calculation from canvas state
  • Auto-save: debounced writes to Supabase
  • Zustand store: unified state for layout + pricing

Deliverables: Functional editor with pricing. End-to-end flow works.

Phase 3

Polish & Share — Week 7–8

  • Share link generation + view-only share page (SSR)
  • PNG export (client-side via Konva toDataURL)
  • Responsive adjustments (tablet layout, mobile view-only)
  • Loading states, error handling, empty states
  • Onboarding: first-time tooltip walkthrough (3 steps)
  • Performance optimization: image compression, canvas caching
  • Visual polish: transitions, hover states, typography cleanup

Deliverables: Shareable, exportable, polished product.

Phase 4

Launch-Ready — Week 9–10

  • Landing page (marketing site) with hero, features, CTA
  • SEO meta tags + Open Graph images
  • Analytics integration (PostHog or Mixpanel free tier)
  • Error monitoring (Sentry free tier)
  • DNS setup: eventlay.automatedworx.com
  • Deploy to Vercel production
  • Smoke test all flows end-to-end
  • Seed 5 demo projects for marketing
  • Write 3 demo walkthrough GIFs for landing page

Deliverables: Live, public, launch-ready MVP.

Section 14

Lean MVP Definition

The Smallest Version Worth Building

A user can:

  1. Sign up
  2. Create a project with a venue photo or template
  3. Drag event elements onto the venue
  4. See a live-updating price total
  5. Save the layout
  6. Share it via link

That's it. This is the atomic unit of value. Everything else is additive.

What Makes It Still Feel High-Quality

What Must Be Excluded (Even If It Hurts)

Section 15

Final Output Pack

Product Summary

Product Summary

EventLay is a browser-based visual layout tool for event professionals. Users upload a venue photo (or pick a template), drag-and-drop production elements (stages, LED walls, seating, AV gear), and see real-time pricing as they build. Layouts can be saved, exported as images, and shared via link. Built for speed in live client conversations — not as a CAD replacement, but as the tool that makes CAD unnecessary for 80% of events.

Founder Pitch

Founder Pitch

We're building the Canva of event production. Right now, event planners choose between expensive CAD software they can't use, or hacky PowerPoint mockups that look unprofessional. EventLay lets you upload a photo of any venue, drag in stages, LED walls, and seating, and see the budget calculate in real time. It's designed to be used during a client meeting — build the layout live, share a professional visual quote, and close the deal before you leave the room. No training. No CAD license. No waiting for a production team to send back a render.

Investor-Style Pitch

Investor Pitch

The global events industry is $800B+ and growing, yet event production teams still plan layouts in Vectorworks ($3K/seat), PowerPoint, or on paper. EventLay is a vertical SaaS tool that collapses visual layout, pricing, and client presentation into one fast browser-based editor. Our wedge: real-time visual quoting during client meetings — a workflow no existing tool supports. The product is lightweight (Next.js + Supabase), the market is massive and underserved, and the pricing model (per-seat subscription) scales with team adoption. We're starting with independent event production companies and expanding to venues, planners, and rental houses.

Landing Page Copy

Headline

Design event layouts. Price them instantly. Close deals faster.

Subtext

Upload a venue photo, drag in your stage and production elements, and watch the budget build itself. EventLay is the visual layout builder made for event professionals — not CAD engineers.

Feature Bullets for Homepage

Engineer Build Brief

Stack: Next.js 14 (App Router) + TypeScript + Tailwind + react-konva + Zustand + Supabase (Auth, Postgres, Storage)

Core deliverable: A canvas editor where users place 2D elements (from a fixed catalog) onto a venue photo background, with a live-updating pricing sidebar. Projects save to Supabase. Share via unique URL (SSR page).

Key libraries: react-konva (canvas), zustand (state), browser-image-compression (upload), @supabase/supabase-js (backend)

Critical path: Canvas drag/drop + pricing sync. Get this right first. Everything else is standard CRUD.

Deploy: Vercel. Subdomain: eventlay.automatedworx.com

Timeline: 8–10 weeks to launch-ready MVP with one full-stack developer.

Designer Brief

Aesthetic: Dark theme. Professional. Clean. Think Linear meets Figma — minimal chrome, maximum canvas.

Key screens:

  1. Dashboard — project cards with venue thumbnails, create button, minimal nav
  2. Editor — three-panel layout (asset library | canvas | pricing). Canvas dominates. Panels collapsible.
  3. Share view — read-only. Hero image of layout + pricing table below. Clean, branded, client-facing.
  4. New project modal — name input + venue source selection (upload or template grid)

Asset icons: 25–30 clean, monoline SVG icons for event elements: stage, LED wall, speaker, truss, table (round/rect), chair, podium, DJ booth, barricade, camera riser, projector, screen, pipe & drape, dance floor, generator, tent.

Typography: Inter or Geist. Two weights: 400 (body), 700 (headings).

Interactions: Smooth drag/drop, subtle scale on hover, pulse on drop, slide-in panels. No heavy animations.