La Chacra de Pando: Telegram Woodshop Orders with Gemma
A Spanish-language order management app for a family furniture workshop, turning Telegram messages and photos into structured orders using Gemma on DigitalOcean.

Stock photo for illustration only, not from the actual event
- Built for the Hacktoberfest Weekend Challenge under the Build for a Friend theme
- Converts chaotic Telegram chat messages and reference photos into structured orders
- Uses the Gemma 4 26B A4B IT model via OpenRouter for data extraction
- Hosted on an Ubuntu DigitalOcean Droplet with 2 GB RAM and 1 vCPU for $12 a month
An application named La Chacra de Pando was created to solve practical order-management challenges for a family-run small furniture workshop, turning messy chat requests into structured purchase orders without forcing the workshop owner to fill out lengthy forms.
Traditional order requests often contain complex details including customer names, dimensions, wood types, finishes, delivery dates, and reference photos. These details need to stay connected throughout production and delivery, and the application extracts these crucial pieces directly from chat inputs and images.
On the backend side, bot access is strictly restricted to an explicit Telegram user-ID whitelist. When a customer sends a message, the primary artificial intelligence model, gemma-4-26b-a4b-it, receives the text and reference images, returning a structured JSON response containing the customer name, item description, requested delivery date, and product quantities.

Stock photo for illustration only, not from the actual event
"pedido Cliente: Ana López Una mesa de roble, 120 × 80 × 75 cm. Acabado natural."
Sample order text processed by the system
The backend code, written in Rust, strictly validates the JSON response before saving any records. If the JSON is invalid, missing contract keys, or contains unsupported units, the system rejects it immediately. If the primary attempt with Gemma fails, the application makes a single fallback attempt using qwen/qwen3.5-35b-a3b without an infinite retry loop.
Separating the natural language interpretation layer from core business logic provides immense architectural flexibility. Open-weight models like Gemma simply translate raw human text into defined JSON contracts, while the underlying SQLite database and application code maintain strict control over permissions, history, and workshop workflows, allowing future model swaps without system redesigns.
For deliveries, workshop staff can simply type a command like entrega 12 in Telegram to mark order number 12 as fulfilled. Photos sent in the same chat within 15 minutes automatically become delivery evidence, and delivery commands bypass AI execution entirely to avoid duplicate processing.
The entire setup runs on an Ubuntu DigitalOcean Droplet configured with 2 GB RAM and 1 vCPU. SQLite databases and customer photos persist in a mounted data directory, supported by backup scripts retaining seven daily and four weekly snapshots.
Source: Dev.to
Found something wrong in this article? Report an issue with this article
Comments
Leave a Comment