A modern, full-stack web application for managing a 3D print farm. Track printers, spools, print jobs, and analyze production statistics β all from a beautiful dark-themed dashboard.
- 3x3 Grid Layout β Visual overview of all printers at a glance
- Real-time Status Indicators:
- π΅ Blue (pulsing) β Actively printing
- π£ Purple (pulsing) β Print time complete, ready for inspection
- π’ Green β Idle with enough filament for compatible modules
- π‘ Yellow β Idle but low/no filament for compatible modules
- Progress Bars β Live print progress on each printer card
- Quick Actions β Click any printer to load spools, start prints, or mark jobs complete
- Module-Based Printing β Define reusable print modules with expected weight, time, and spool compatibility
- Spool Preset System β Create presets for your filament types (brand, material, color, cost)
- Intelligent Matching β Only shows modules compatible with the currently loaded spool
- Optimal Combination Calculator β Suggests the best module combination to minimize filament waste
- Print History Charts β Track prints over the last 30/90 days
- Material Usage Tracking β Monitor filament consumption
- Success/Failure Rates β Pie charts showing print reliability
- Failure Reason Breakdown β Identify common issues
- Printer Utilization β See total hours per printer
- Cost Tracking β Track material costs per module, color, and product set
- Print Module Management β Add/edit/delete print modules with images
- Spool Preset Configuration β Manage your filament inventory
- Local File Handler β Automatically open .3mf files when starting prints (macOS)
| Layer | Technology |
|---|---|
| Frontend | SvelteKit 2.0, Svelte 5, TailwindCSS |
| Backend | SvelteKit Server Routes, Cloudflare Workers |
| Database | Cloudflare D1 (SQLite) |
| Charts | Apache ECharts |
| Hosting | Cloudflare Pages |
| Local Tools | Node.js/Bun (File Handler) |
- Bun or Node.js 18+
- Wrangler CLI (for Cloudflare D1)
git clone https://github.com/eschencode/PrintFarmCompanion.git
cd PrintFarmCompanionbun install# Create D1 database
wrangler d1 create printfarm-db
# Update wrangler.jsonc with your database ID
# Run migrations
wrangler d1 execute printfarm-db --local --file=schema.sql
wrangler d1 execute printfarm-db --local --file=seed.sqlbun run devOpen http://localhost:5173 in your browser.
bun run build
wrangler pages deploy .svelte-kit/cloudflareMake sure your D1 database binding is configured in wrangler.jsonc:
Automatically open 3D model files when you start a print job.
cd local-file-handler
bun install
bun run startSee local-file-handler/README.md for full setup instructions.
βββ src/
β βββ lib/
β β βββ server.ts # Database functions
β β βββ stores/ # Svelte stores
β β βββ assets/ # Images, icons
β βββ routes/
β βββ +page.svelte # Dashboard
β βββ +page.server.ts # Dashboard API
β βββ settings/ # Settings page
β βββ stats/ # Statistics page
βββ static/
β βββ images/ # Module images
βββ migrations/ # SQL migrations
βββ local-file-handler/ # File opener service
βββ schema.sql # Database schema
βββ seed.sql # Initial data
βββ wrangler.jsonc # Cloudflare config
| Color | Status | Meaning |
|---|---|---|
| π΅ Blue (pulsing) | Printing | Active print in progress |
| π£ Purple (pulsing) | Complete | Print time elapsed, ready for inspection |
| π’ Green | Ready | Idle with sufficient filament |
| π‘ Yellow | Low Material | Idle, no compatible modules can be printed |
| β« Gray | Offline | Printer unavailable |
# Start dev server
bun run dev
# Type check
bun run check
# Lint
bun run lint
# Build for production
bun run build
# Preview production build
bun run previewMIT License β feel free to use this project for your own print farm!
- SvelteKit β Amazing full-stack framework
- Cloudflare β Edge hosting & D1 database
- Apache ECharts β Beautiful charts
- TailwindCSS β Utility-first CSS
Happy Printing! π¨οΈβ¨

{ "d1_databases": [ { "binding": "DB", "database_name": "printfarm-db", "database_id": "your-database-id" } ] }