bespoke-app-print-projects

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2026 License: MIT Imports: 20 Imported by: 0

README

Print Projects — a Bespoke app

A compact queue and history for personal 3D-print projects.

This is an unofficial, third-party app for Bespoke. Nobody vetted it but its author. Read What it does with your stuff before installing it, the same as any code you run as yourself.

Install

From your Bespoke instance directory, with the platform at v0.13.0 or newer:

go tool bespoke add print-projects

That pins this module, writes apps/print-projects/app.toml with a free port, and recompiles your instance stylesheet. Pin a version you have actually read with bespoke add print-projects@v0.1.0.

The directory must be named print-projects: the slug names this app's database, process, and subdomain, and the source picks it.

What it does with your stuff

  • Stores in its own SQLite database: your projects, their print history, and any photos you attach (up to 8 MiB each, stored as blobs).
  • Talks to only your instance's local platformd: it publishes print_projects.project_created and print_projects.print_logged events when you create a project or log a print, and a print_projects.print_milestone event with an in-app notification when a project reaches 1, 5, or 10 prints. No outbound network connections at all.
  • Never leaves your host.

Like every Bespoke app it runs as your user, so nothing above is enforced by the platform — it is a description you can check against the source (ADR-0031).

Spec

The behavior this app is built to, unchanged from its original private build.

Records
  • projects — user-scoped name, source URL, freeform notes, and creation time.
  • print_history — user-scoped project, print date, notes, and optional image. A project with no history means “want to print.” Images are stored in this app's SQLite database, limited to 8 MiB and JPEG, PNG, WebP, or GIF.
Views and actions
  • GET / — create projects and browse project cards, with unprinted projects first. Each card shows its source, notes, and newest-first print history.
  • POST /projects — create a project.
  • POST /projects/{id}/prints — add history from a dialog; the date defaults to today and an image is optional.
  • POST /projects/{id}/edit — correct a project's name, URL, or notes.
  • GET /prints/{id}/image — serve a user-scoped history image.
  • POST /projects/{id}/delete — delete a project and its history.
Platform surfaces
  • Dashboard card: count waiting-to-print projects, total projects, and prints in the last 30 days.
  • Live region: every form, intent, and tool mutation refreshes open pages.
  • Chat and tools: list/create/delete projects and add/list print history.
  • create-project intent: selected text becomes a project name.
Non-goals
  • No slicer settings, filament inventory, ratings, search, sharing, or file hosting in v1. The URL points to STL/STEP pages or files elsewhere.
  • Existing apps have no natural event that should automatically propose a print-project intent, so no event banners were added.
  • Images are app-local because shared blob storage is only a candidate in the internal-services catalog; graduate it when a second app needs uploads.

Developing

views/*_templ.go is committed on purpose — instances build this module straight out of the read-only Go module cache and never run templ generate over it. After editing a .templ, run just ui and commit the output.

License

MIT — see LICENSE.

Documentation

Overview

print-projects: a Bespoke app — manifest, routes, views, migrations, nothing else (CLAUDE.md).

Directories

Path Synopsis
templ: version: v0.3.1020
templ: version: v0.3.1020

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL