OPENPRINTCOSTS

Build log

What is shipping

A compact delivery log first, then the full product plan. Every entry links back to its source commit. All times are CET.

View full plan

Current deployment

fix: isolate mobile menu from FAQ details styles

Commit 780d88a: fix: isolate mobile menu from FAQ details styles

Commit780d88aDeploying

Last 6 hours

Work completed in this build window

Newest first. Open any commit in Gitea for the exact diff.

  1. 780d88afix: isolate mobile menu from FAQ details styles

    Commit 780d88a: fix: isolate mobile menu from FAQ details styles

  2. 2f6b6a6fix: size landing mobile menu control

    Commit 2f6b6a6: fix: size landing mobile menu control

  3. b8e9e35feat: improve landing mobile menu and Benchy

    Commit b8e9e35: feat: improve landing mobile menu and Benchy

  4. 151f9f2feat: complete sheets and production reprints

    Commit 151f9f2: feat: complete sheets and production reprints

  5. 4bd587dfeat: add workshop production queue

    Commit 4bd587d: feat: add workshop production queue

  6. 10c28f4feat: record actual production in reusable sheet

    Commit 10c28f4: feat: record actual production in reusable sheet

  7. b60175efeat: lead workshop reports with operating KPIs

    Commit b60175e: feat: lead workshop reports with operating KPIs

  8. 48fe412fix: align live calculator margin and price behavior

    Commit 48fe412: fix: align live calculator margin and price behavior

Progress

Completed

  • Multipart products: reusable parts with per-part quantities and immutable calculator snapshots, plus shared assembly and packaging costs that combine into one product total.
  • Calculator live result column: a sticky, itemized cost breakdown updates as inputs change, while invalid submitted forms keep the server error state instead of showing an estimate
  • Workshop setup uses explicit reusable form sheets for adding printers, electricity, filament and extra items; it keeps table-or-empty-state flows, named Prusa/Bambu or custom printer presets and one workshop-wide electricity price
  • Calculator and Setup hide manual wattage whenever a named printer preset is selected, apply the preset’s editable baseline automatically, and reveal watts only for Custom
  • ISO currency selectors show code, official name and symbol where available across Setup, Quotes and Sales; legacy lowercase ISO values remain accepted and normalize safely
  • SEO-oriented global footer with descriptive product/tool link lists and language selector, plus a simplified non-duplicated tools header on public pages
  • Public tools navigation in the landing header, landing footer and shared application shell, with a Prusa and Bambu Lab printer selector for energy estimates
  • Public marketplace-profit mini-tool: calculates marketplace fee, net profit and target-profit list price, then pre-fills calculator sale assumptions
  • Public printer-energy mini-tool: calculates kWh and per-print/month/year electricity cost, then pre-fills the anonymous calculator without persistence
  • Open-source, self-hosted positioning and OpenPrintCosts product identity across the public landing and SSR shell
  • Conversion-focused public landing with an original CSS 3D Benchy print visual
  • Shared responsive OpenPrintCosts design system: shell, tokens, cards, forms, empty states, action bars, feedback and data tables
  • Accessible table filtering and stable sorting that still works without JavaScript
  • Public anonymous cost calculator with multi-material, complementary materials, energy, wear, labor, fees, VAT, margins and profit
  • Popular printer presets with editable estimated wattage and hourly wear cost
  • No anonymous calculator persistence and no remote G-code upload or server-side slicing
  • Local browser-only import of explicit sliced G-code metadata for material use and print time, without inference
  • Free and Pro workshop feature gates, unlimited members, role-based authorization and tenant isolation
  • Products, catalogue, projects, quotes, sales and upgrade pages migrated to the shared visual system
  • Catalan, Spanish and English server-rendered UI, browser negotiation, persistent selector and English fallback
  • Production static assets with WhiteNoise and compile-time translation validation
  • Immutable Pro calculator project snapshots with material identity, price and calculation inputs/results
  • Server-rendered synchronized quote creation, scoped to the selected workshop and its projects
  • Server-rendered synchronized quote editing, scoped to the selected workshop and restricted to owners and managers
  • Server-rendered conversion of an accepted quote into one immutable, tenant-scoped production sale
  • Atomic filament consumption for accepted quote sales, with immutable sale-linked stock movements and insufficient-stock protection
  • Server-rendered sale status updates, scoped to owners and managers without changing commercial snapshots
  • Server-rendered sale date updates, validated and scoped to owners and managers without changing commercial snapshots
  • Server-rendered printable customer quotes, scoped to workshop members and stripped of internal costs, inventory and metadata
  • One-sale-per-quote invariant across the sales API and database, including concurrent duplicate protection
  • Quote-linked sales protected from bypassing atomic filament consumption through the generic sales API
  • Converted quotes locked as customer-facing historical source terms while retaining the safe printable view
  • Deterministic translated shared-shell coverage for the English accessibility fallback
  • Atomic filament consumption for direct project sales, with immutable sale-linked stock movements, idempotent retries and insufficient-stock rollback
  • Server-rendered direct project sale creation for owners and managers, with immutable cost snapshots and atomic assigned-filament consumption
  • Catalan and Spanish direct-sale insufficient-stock feedback, with transactional rollback coverage
  • Accessible Catalan, Spanish and English feedback for insufficient stock when converting an accepted quote, with transactional rollback coverage
  • Server-rendered monthly workshop report with sales, margins, materials and printers, explicit workshop selection, month filtering and tenant isolation
  • Quantity-accurate monthly material reporting from immutable project snapshots and immutable sale quantities
  • Explicit SSR quote lifecycle actions from draft to sent and then accepted or declined, with revision updates and tenant-scoped manager permissions
  • SSR and API sale cancellation with one-time restoration of immutable, sale-linked filament consumption
  • Forward-only sale fulfilment transitions in SSR and API, with date corrections and explicit cancellation
  • Actual-versus-estimated sale production records with measured material, energy, labor, extra cost, failures and reprints, while quoted snapshots remain immutable
  • Measured material splits captured against saved project lines and auditable monthly variance by printer, project and material
  • Automatic expiry for overdue sent quotes, with SSR/API status reconciliation, protected acceptance and conversion, and translated workshop feedback
  • Verified regression coverage for Pro-gated catalogue and sync workflows plus Free-plan upgrade feedback
  • Django and pytest coverage for accounts, plan gates, calculator arithmetic, catalogue, products, commerce, design system and i18n

Next

Planned work

  • Connected public mini-tools: slicer job intake, batch-price calculator and material-variant comparison, each able to create or update calculator and product data
  • Multipart products: a reusable product BOM with separate printable parts, quantities, printer/material assignments and combined cost, price and margin
  • Production operations beyond quotes: printer capacity, batches, due dates, job status, reprints and delivery planning
  • Commercial and portability gaps: client-ready PDF/email quotes, configurable marketplace fee rules, CSV/JSON export-import, documented self-host installation and an open integration API
  • Verify this production deployment and perform public desktop and mobile QA
  • Production SMTP configuration and end-to-end email delivery verification
  • PostgreSQL backups, a tested restore procedure and monitoring/alerting
  • Billing provider integration and subscription lifecycle after commercial decisions are confirmed