Build with Bonfÿre
Building blocks
Bonfÿre is being cut into nine areas a developer can use without taking the rest. Each one works from source today. None is published as a package yet, so there is no version to pin and no support promise. This page says what each area does, where it lives and what to try first.
The nine areas
| Area | What it does | Where it lives |
|---|---|---|
| Data | Local SQL and vector search, with the source of every record kept | cmd/BonfyreVec, cmd/BonfyreEmbed, cmd/BonfyreCMS |
| Contracts | Typed schemas and the code generated from them | schemas/control |
| Models | Serving, quantization and embeddings | cmd/BonfyreQuant, cmd/BonfyreModel |
| Work | Requests, commitments and who may act on them | cmd/BonfyreQueue, cmd/BonfyreAuth, cmd/BonfyreWorkflow |
| Apps | Frappe and WordPress integration | integrations/ |
| Media | Preparing and transcribing recordings | cmd/BonfyreMediaPrep, cmd/BonfyreTranscribe |
| Commerce | Moving records between systems and checking them on arrival | cmd/BonfyreBridge |
| Finance | Meters, invoices and recorded payments | cmd/BonfyreFinance, cmd/BonfyrePay, cmd/BonfyreMeter |
| Web | Sites, pages and the assistant endpoint for each | cmd/BonfyreWebAddress, components/BonfyreServiceSite |
Where to start
| If you want to… | Read | Area |
|---|---|---|
| Search your own documents on your own machine | Local-first applications | Data |
| Turn a recording into searchable pages | Recording to workspace | Media, Data |
| Put up a site for a customer | White-label delivery | Web |
| Follow a request through to an invoice | Request to books | Work, Finance |
| Move records out of WordPress, Frappe or a database | Integration and migration | Apps, Commerce |
| Measure and compress a model | Models and compression | Models |
What is not ready
These are limits in the code as it stands, not plans.
- No packages. Nothing here is on npm, PyPI or a system package manager. You build from the repository.
- One vector size per store. A store is made at one width:
bonfyre-vec init store.db --dims 768for a 768-dimension model, 384 if you say nothing. A body of another width is refused, not trimmed. Changing model means making a new store and embedding again. - Payments are records. The finance area records invoices and payments someone has entered. It does not charge a card or talk to a bank.
- Hooks in the Frappe apps are listed, not matched. The integration reads the donor apps' document types; it does not claim their server-side behaviour.
See it used
The work samples are built from these areas: the document search uses Data, the training app uses Work and Web, and the three shop sites use Web.