Multi-service platform

Crewa

Print-on-demand 3D printing platform: upload a model, get an automated quote, get it printed. Built end-to-end by AI agents under owner review.

  • FastAPI
  • Python
  • Next.js
  • TypeScript
  • PostgreSQL
  • Redis
  • Celery
  • CuraEngine
  • MinIO
  • SuperTokens
  • Traefik
  • Docker
  • Langfuse
  • Grafana
  • Loki
Crewa print-on-demand platform Two Next.js apps behind a proxy, FastAPI services for quoting, slicing and print orchestration, with all production code written by AI agents. FRONTENDS · NEXT.JS PWAS FASTAPI SERVICES ROUTE ORDERS G-CODE crewa.store customer app makers.crewa.store maker + admin EDGE Traefik maker tenancy headers Commerce Costeo cost floor Auth · printing SuperTokens · Moonraker Slicer trimesh + CuraEngine DB PostgreSQL expand/contract S3 MinIO models + toolpaths Differentiated pipeline State Customer surface
Two apps behind one proxy, then services split by job. Quoting and slicing are highlighted because they are the differentiated part: a price computed against a real cost floor, and a model turned into machine instructions without a human in the loop.

Overview

Crewa is a print-on-demand platform for 3D printing: a customer uploads a model, the system analyses the geometry, orients and slices it, prices it against a real cost floor, and routes it to a printer. Colombia-first, designed to expand across LATAM. The original scope was a broader artisan marketplace; that storefront layer is deliberately deferred so the print-on-demand pipeline, the hardest and most differentiated part, ships and proves itself first. Its defining trait is how it is built: Daniel defines requirements, reviews, and approves: a fleet of specialized AI agents writes all production code.

Problem

Quoting a 3D print by hand is slow and inconsistent: someone has to open the model, eyeball material and machine time, and hope the number covers cost. Customers wait days for a price, and makers either underprice the job or lose it. Separately, building a multi-service platform of this scope solo is normally out of reach: it is the workload of a whole team, not one operator.

Solution

A microservice platform, auth, commerce with the Costeo cost engine, slicing, print orchestration, and notifications, behind Traefik, fronted by two Next.js PWAs sharing a @crewa/ui component library. The pipeline runs upload → geometry analysis and flagging → orientation → slice → priced quote → print queue, with no human in the loop for a clean model. It is delivered through an agentic development loop: specialized agent profiles (planner, per-domain builders, QA, infra, reviewer), one profile per session, with QA writing failing tests before any feature exists and builders implementing until they pass.

Architecture

FastAPI services split by domain: auth (self-hosted SuperTokens, email/password + Google OAuth), commerce (orders and the Costeo BOM cost engine with multi-currency USD/COP supplier sources and volume tiers), slicer (STL/OBJ/PLY/3MF → G-code via trimesh conversion and CuraEngine, with print orientation and geometry flagging), printing (orchestrator + Moonraker), and notifications (Brevo). PostgreSQL for state, Redis + Celery for queues and workers, MinIO for object storage served through a media proxy. GitHub is source of truth; a webhook syncs a Gitea mirror whose Actions run the test gate and a change-detecting blue/green deploy on the homelab. Observability is first-class: Langfuse traces every agent and LLM call end-to-end, while Grafana dashboards over Loki logs and service metrics make the running system, and the agents building it, auditable.

Key decisions

All production code is agent-authored under one-profile-per-session discipline to prevent architectural drift. Tests are written before features and QA owns the test suite: builders never touch it. Migrations must be expand/contract-safe so the deploy gate can auto-apply additive changes while blue still serves traffic; destructive changes are coordinated by hand. Self-hosted Gitea Actions over cloud runners for zero cloud minutes and full control. A costeo-first flow so every quote is priced against a real cost floor rather than a guess. And the marketplace was descoped from V1: shipping the print pipeline that actually differentiates the product beats shipping a storefront that does not.

Challenges

Directing a fleet of specialized agents without letting the architecture drift; keeping every migration expand/contract-safe under blue/green so live traffic never breaks; modeling multi-currency cost with volume tiers; threading 3D model orientation from the viewer through to the slicer; making geometry problems legible to non-technical customers (non-manifold meshes, thin walls, unsupported overhangs) instead of failing silently; and resolving maker tenancy from JWT proxy headers rather than a global identity.

Outcome

A running print-on-demand platform, upload to priced, sliced, queued print, delivered solo by orchestrating AI agents like a team rather than writing code by hand. It is the clearest evidence of engineering leadership on this site: owning architecture, process, and quality gates while directing agents, and sequencing scope deliberately so the hard pipeline shipped before the storefront.

Wondering if Daniel is a fit? Ask his assistant, hiring, contracts, or collaboration.