Back
Case study · Optician · Marina Alta
crm-opticas.app
Menu
Invoices
Clients
Products
Settings
Hoy · Monday
3 invoices today
María L. · F-2026-0142
Progressive glasses · 285,00 €
✓ Sent
Carlos M. · F-2026-0143
Monthly contact lenses · 145,00 €
✓ Sent
Anna B. · F-2026-0144
Check-up · 60,00 €
⏱ In progress

Visual recreation of the interface · Sample data

From 30 minutes a day to 3: an optician's invoicing, automated

An optician in the Marina Alta was losing half an hour every afternoon generating and sending invoices. I built a desktop app that does it in seconds.

Desktop application Cross-platform Local data Multi-client
The challenge

Every afternoon, half an hour lost on paperwork

The optician's owner was generating between 10 and 15 invoices a day. The process was manual: open a Word template, fill in the customer's details, calculate the VAT, export to PDF, open Gmail, write the email, attach the PDF and send. Multiplied across every customer, that added up to 30 minutes a day that could have gone toward better customer care.

Typos in tax ID numbers, miscalculated amounts, invoices sent to the wrong addresses. Repetitive tasks with room for human error that a computer handles without a single mistake.

The solution

A desktop app that automates the entire workflow

I designed a cross-platform desktop application (Mac, Windows, Linux) that centralizes customers, products and invoicing in one place. The data is stored on the optician's own computer, without sending it to the cloud — important, since it includes patients' personal and payment data.

01

Customer and products

Select the customer from the local database. Add the product from the catalog (glasses, contact lenses, check-ups, accessories).

02

Invoice generated

The app calculates amounts, VAT and total. It generates the PDF using the template and the optician's tax details. Automatic, sequential numbering.

03

Email sent

Attaches the PDF to the customer's email, with a customizable message. The customer receives their invoice in under a minute from the end of the appointment.

case.result.eyebrow

Time recovered and errors eliminated

30 → 3
Minutes/day (before → now)
~9 h
Hours recovered per month
0
Calculation errors in 3 months
case.tech.eyebrow

How it's built

The app is built with Electron, which lets it be packaged as a native application for Mac, Windows and Linux from a single codebase. The database is local SQLite — no external servers, no monthly hosting fees. Emails are sent through Nodemailer using the optician's own email account. PDFs are generated with PDFKit from customizable templates.

Electron Node.js SQLite Nodemailer PDFKit
OptiForce
OptiForce
Product · CRM for opticians

OptiForce

The management CRM for opticians. Invoice, manage customers and products, and forget about paperwork.

Get OptiForce
Contact

Shall we talk about your project?

Choose whichever way you prefer. I check every message and reply within 24 hours.

Need help? 👋
M
Max · Marina Code Assistant
Online
Hi! 👋 I'm Max, Marina Code's assistant. How can I help? I can tell you about services, prices or anything else you need.