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.
Current deployment
feat: auto-size gridfinity footprint from tool trace
Commit ef7cbf7: feat: auto-size gridfinity footprint from tool trace
Last 6 hours
Work completed in this build window
Newest first. Open any commit in Gitea for the exact diff.
ef7cbf7feat: auto-size gridfinity footprint from tool traceCommit ef7cbf7: feat: auto-size gridfinity footprint from tool trace
4a23701chore: update public delivery planCommit 4a23701: chore: update public delivery plan
3b07791feat: add local photo-to-gridfinity cavity editorCommit 3b07791: feat: add local photo-to-gridfinity cavity editor
ffcdda6chore: update public delivery planCommit ffcdda6: chore: update public delivery plan
e627539feat: add Gridfinity bin plannerCommit e627539: feat: add Gridfinity bin planner
Progress
Completed
Public Gridfinity bin planner: standard 42 mm footprint, editable wall/floor assumptions, transparent shell-material estimate and a declared grams/time handoff into the cost calculatorMultipart 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 estimateWorkshop 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 priceCalculator and Setup hide manual wattage whenever a named printer preset is selected, apply the preset’s editable baseline automatically, and reveal watts only for CustomISO currency selectors show code, official name and symbol where available across Setup, Quotes and Sales; legacy lowercase ISO values remain accepted and normalize safelySEO-oriented global footer with descriptive product/tool link lists and language selector, plus a simplified non-duplicated tools header on public pagesPublic tools navigation in the landing header, landing footer and shared application shell, with a Prusa and Bambu Lab printer selector for energy estimatesPublic marketplace-profit mini-tool: calculates marketplace fee, net profit and target-profit list price, then pre-fills calculator sale assumptionsPublic printer-energy mini-tool: calculates kWh and per-print/month/year electricity cost, then pre-fills the anonymous calculator without persistenceOpen-source, self-hosted positioning and OpenPrintCosts product identity across the public landing and SSR shellConversion-focused public landing with an original CSS 3D Benchy print visualShared responsive OpenPrintCosts design system: shell, tokens, cards, forms, empty states, action bars, feedback and data tablesAccessible table filtering and stable sorting that still works without JavaScriptPublic anonymous cost calculator with multi-material, complementary materials, energy, wear, labor, fees, VAT, margins and profitPopular printer presets with editable estimated wattage and hourly wear costNo anonymous calculator persistence and no remote G-code upload or server-side slicingLocal browser-only import of explicit sliced G-code metadata for material use and print time, without inferenceFree and Pro workshop feature gates, unlimited members, role-based authorization and tenant isolationProducts, catalogue, projects, quotes, sales and upgrade pages migrated to the shared visual systemCatalan, Spanish and English server-rendered UI, browser negotiation, persistent selector and English fallbackProduction static assets with WhiteNoise and compile-time translation validationImmutable Pro calculator project snapshots with material identity, price and calculation inputs/resultsServer-rendered synchronized quote creation, scoped to the selected workshop and its projectsServer-rendered synchronized quote editing, scoped to the selected workshop and restricted to owners and managersServer-rendered conversion of an accepted quote into one immutable, tenant-scoped production saleAtomic filament consumption for accepted quote sales, with immutable sale-linked stock movements and insufficient-stock protectionServer-rendered sale status updates, scoped to owners and managers without changing commercial snapshotsServer-rendered sale date updates, validated and scoped to owners and managers without changing commercial snapshotsServer-rendered printable customer quotes, scoped to workshop members and stripped of internal costs, inventory and metadataOne-sale-per-quote invariant across the sales API and database, including concurrent duplicate protectionQuote-linked sales protected from bypassing atomic filament consumption through the generic sales APIConverted quotes locked as customer-facing historical source terms while retaining the safe printable viewDeterministic translated shared-shell coverage for the English accessibility fallbackAtomic filament consumption for direct project sales, with immutable sale-linked stock movements, idempotent retries and insufficient-stock rollbackServer-rendered direct project sale creation for owners and managers, with immutable cost snapshots and atomic assigned-filament consumptionCatalan and Spanish direct-sale insufficient-stock feedback, with transactional rollback coverageAccessible Catalan, Spanish and English feedback for insufficient stock when converting an accepted quote, with transactional rollback coverageServer-rendered monthly workshop report with sales, margins, materials and printers, explicit workshop selection, month filtering and tenant isolationQuantity-accurate monthly material reporting from immutable project snapshots and immutable sale quantitiesExplicit SSR quote lifecycle actions from draft to sent and then accepted or declined, with revision updates and tenant-scoped manager permissionsSSR and API sale cancellation with one-time restoration of immutable, sale-linked filament consumptionForward-only sale fulfilment transitions in SSR and API, with date corrections and explicit cancellationActual-versus-estimated sale production records with measured material, energy, labor, extra cost, failures and reprints, while quoted snapshots remain immutableMeasured material splits captured against saved project lines and auditable monthly variance by printer, project and materialAutomatic expiry for overdue sent quotes, with SSR/API status reconciliation, protected acceptance and conversion, and translated workshop feedbackVerified regression coverage for Pro-gated catalogue and sync workflows plus Free-plan upgrade feedbackDjango 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
