Etch Express
Orders with hundreds of custom variants. Manual processing taking 45 minutes each.
Executive Summary
Etch Express began when a friend of Candlefish - a trophy shop owner - came to us with a problem he couldn't solve alone. Typesetting engraving orders was tedious, repetitive, and profitless. Large orders were painful. He considered the entire process a loss leader, and he knew AI could help but needed a partner to make it real. What started as a conversation between friends became Candlefish's first commodity SaaS product - a full-stack platform that replaced 45-minute manual engraving order processing with a one-minute automated workflow. We co-authored the product together, and along the way discovered something critical: keeping the human in the loop and building technology that was valuable even without AI was the key to a refined, trustworthy product. The AI doesn't replace the operator - it elevates them. The result is a proven 10x leverage on time that turned typesetting from a loss leader into a profitable operation, freeing shop workers to focus on higher-margin areas of the business. Now in active beta with incredible early feedback, Etch Express is Candlefish's first step toward reimagining what running a trophy, engraving, and personalization store looks like day to day. The platform spans 142 React components, 20 data models, 97 endpoint files across 15+ API route modules, 138 test files, and over 134,000 lines of code across a React 19 frontend and FastAPI backend - built over 289 commits in 7.5 months of development.
Architecture
Full-stack SaaS platform with React 19 frontend, FastAPI backend, MongoDB, dual-AI pipeline, Datadog APM observability, and CI/CD via Google Cloud Build and Firebase Hosting
Full-stack SaaS platform with React 19 frontend, FastAPI backend, MongoDB, du...
The Problem
A trophy shop owner and friend of Candlefish came to us with a problem that was costing his business. Bulk engraving orders - school awards, corporate events, sports leagues - arrived as spreadsheets with hundreds of line items, each with unique text, fonts, and layout constraints. One person would read each line, set up the engraving file by hand, and queue it for the machine. Forty-five minutes per order, minimum. He considered the entire typesetting process a loss leader. The large orders were the worst - high effort, low margin, and no way to scale. He knew AI had the potential to change this, but he needed a partner who could build the technology to make it real.
Data Complexity
Hundreds of line items per order, each with unique text, fonts, sizes, and layout constraints that must be validated against physical machine capabilities and material dimensions.
Edge Case Detection
Names too long for plates, unsupported fonts, contradictory line items, Arabic characters requiring right-to-left shaping - the manual process caught these because the operator noticed them. Any automation that missed what humans catch would be a downgrade, not an upgrade.
Multi-tenant Scale
Trophy and engraving shops operate as franchise networks with multiple organizations and stores, each with their own materials, plate defaults, color schemes, font preferences, and billing arrangements.
File Format Variety
Orders arrive as Excel spreadsheets in wildly inconsistent formats - hidden sheets, merged cells, varying column names - requiring intelligent parsing that adapts to each source.
Profitability Gap
Typesetting was fundamentally unprofitable at manual speed. The shop needed more than incremental improvement - it needed an order-of-magnitude shift to turn a loss leader into a viable revenue stream.
The system had to notice edge cases too, or it was worse than the manual version. But more than that - it had to be valuable even without AI turned on. The tool itself had to make the human operator faster and more capable, with AI as an accelerant rather than a crutch.
What We Built
We co-authored the platform with our customer, building iteratively and keeping the human operator in the loop at every step. The key insight was that the technology had to be a valuable tool on its own - a refined, controlled product that boosted the existing workflow into profitability. AI then pushed it even further. This philosophy shaped every design decision: the canvas editor is powerful without AI, the workflow is faster without AI, and when AI is engaged, the operator reviews the output instead of building it from scratch.
Canvas Design Editor
- Konva-based plate and bed design editor with real-time rendering
- Smart alignment guides and auto-arrange for plate layouts
- Crystal and custom shape support with material dimension awareness
- SVG export, PDF generation, and keyboard shortcuts for power users
- Dark mode and customizable color schemes per store
- Variable parsing for dynamic content rendering across plate batches
AI Document Pipeline
- Gemini for fast first-pass document parsing - speed where it matters
- Claude for verification and error correction - precision where it counts
- Automated plate design generation from parsed order data
- AI-powered inventory and material parsing
- Excel parsing that handles hidden sheets, merged cells, and inconsistent formats
- Arabic character support with proper right-to-left text shaping
Multi-tenant Platform
- Organization and store hierarchy with granular role-based permissions
- Store-level defaults for plates, beds, fonts, colors, and status workflows
- Per-store Stripe subscription billing and customer management
- Admin panel for user management across the franchise network
- Membership management with invitation and approval workflows
Production Workflow
- Bulk order import from Excel with intelligent column mapping
- Constraint validation against machine capabilities and material dimensions
- Batch bed editor for processing multiple plates in production runs
- Design history, versioning, and analytics dashboards
- Ornament library for reusable design elements
Operations and Observability
- Datadog APM with distributed tracing across frontend and backend
- User tracking and performance monitoring in production
- Maintenance mode with customer notification system
- CI/CD pipelines with automated linting (Ruff), testing, and deployment
- Pilot and production environments on Google Cloud Run with Firebase Hosting
The operator reviews the output instead of building it. Processing time dropped from 45 minutes to under 1 minute per order - a proven 10x leverage on time. Typesetting went from loss leader to profitable operation, and shop workers gained time to focus on higher-margin areas of the business.
Execution
Foundation
Months 1-2 (Aug - Sep 2025)Built the FastAPI backend with MongoDB, authentication system with session management, and the organization/store multi-tenant data model. Established the API route architecture, design management CRUD, and data table infrastructure. Deployed to Google Cloud Run with Firebase Hosting for the React 19 frontend.
Multi-tenant data isolation was the hardest early decision - store-level defaults mean every configuration query needs tenant context. Getting this right in the foundation saved us from painful refactors later.
Canvas Editor and Design Tools
Months 3-4 (Oct - Nov 2025)Implemented the Konva canvas editor for plate and bed design, including shape rendering, text layout with variable parsing, smart alignment guides, and the SVG/PDF export pipeline. Added Google Fonts integration, font upload validation, and the ornament library.
Font handling across canvas rendering and machine output required fonttools integration and custom shaping logic. The auto-arrange and alignment guides turned out to be one of the most valued features - even without AI, the editor made operators significantly faster.
AI Integration and Billing
Months 5-6 (Dec 2025 - Jan 2026)Built the dual-AI pipeline: Gemini for speed on first-pass document parsing, Claude for quality verification. Added AI-powered plate generation, inventory parsing, and Stripe subscription billing with per-store customer management. Refactored the UI with organization and store settings pages.
The hybrid AI approach - fast model for throughput, precise model for verification - gave better results than either model alone. Co-authoring with our customer meant we caught UX issues early: the AI wizard modal went through several iterations based on real operator feedback.
Production Hardening
Month 7 (Feb 2026)Added comprehensive test suites (85 backend, 53 frontend test files), centralized Stripe client management, dark mode support, analytics dashboards, and Excel parsing improvements for hidden sheets and complex formats. Built the batch bed editor for production-scale processing.
Testing infrastructure was a deliberate investment - with 20 data models and 15+ API route modules, automated testing became essential for maintaining confidence during rapid iteration. Arabic character export support opened up an entirely new market segment.
Scale and Observability
Month 8 (Mar 2026)Integrated Datadog APM with distributed tracing across frontend and backend, added maintenance mode with customer notifications, implemented CI/CD linting with Ruff, built store-level color and status settings, and refactored bed designs to use material dimensions. Deployed pilot and production environments with staging workflow automation.
Observability was the missing piece for beta confidence - Datadog tracing let us see exactly how the platform performed under real customer load. The maintenance mode system proved its value immediately during beta deployments, keeping customers informed during updates.
Interested in this kind of work?
Start a conversation →