Technical log
Blog
News and notes on automation, web development, and the craft of shipping software in LATAM.
2027 budget: software is quoted by process, not by screens
In October finance asks for a number for “the system.” If what you bring is a list of screens, the number will be wrong in both directions.
A backup you have never restored is not a backup
The panel says “backup: OK” every night. Nobody has tried to bring the site up from that copy. September is the month to test it, not November.
On 1 October WhatsApp bills the service message: count now
September Meta publishes rates. October bills every free-form reply in the window. November Hacienda touches XML again. August is the month to count, not to be surprised.
Since 1 August Meta bills the WhatsApp AI agent per token
Two dollars per million tokens sounds like nothing until the bot talks too much. Meta’s agent is not free. It is also not your process.
The second half is won in July: inventory, collection, and the store
August goes to holidays. September to routine. October to panic. Anyone who does not leave the store ready at the end of July improvises Black Friday again.
Mid-year: a slow site does not convert even in the quiet season
Nobody wants to touch the server in November. July does. TTFB and the September certificate are fixed now or suffered at peak.
1 July: WhatsApp splits service messages and Meta AI messages
Price does not change today. The label does. August bills Meta’s agent per token. October bills the service message. July is for counting.
Memberships and repeat charges: the gateway is not the pay button
June is when plans renew. A charge that “tries” and nobody sees the failure becomes July churn. That is not a marketing problem.
Mid-year integration audit: the hidden spreadsheet
The first half left patches. Before July, someone has to draw the map: email, gateway, Hacienda, WhatsApp, the workbook nobody admits to.
Catalog AI agents vs AI in the process
The RFP asks for an “agent.” We ask for the diagram. If there is no rail, the agent is an agency. If there is a rail, the model is a step.
8 May: the government changes, your technical debt does not
Headlines talk about the handover. XML, the gateway, and the dirty spreadsheet do not pause. Technical debt does not take the oath.
One year of AI Mode: AEO is not a plugin, it is how you write the site
May 2025 was the launch. April 2026 is the recap: fewer clicks on “what is X,” more weight on being a source. The adjective brochure lost.
Holy Week fills the calendar: the site has to close the booking
Spa, clinic, domestic travel. The customer searches on a phone and decides in a minute. If the CTA is a mailto, they left with the neighbor.
Filings and close: when the ERP does not talk to Hacienda, people pay
Hacienda Digital will not wait for someone to paste cells. If ERP, issuer, and mailbox do not talk, the pre-fill arrives and you do not recognize it.
The internal copilot first, the public chatbot second
Everyone wants the bot on WhatsApp. The first place AI pays off without risk is inside: the salesperson opens an account and the summary is already there.
Excel is not a system, not even in 2026
It works until two people open it, a filter runs, and the charge goes to row 418. That is not “agile.” It is fragile.
Collections with AI: the reminder that actually goes out
December’s receivables come due in February. The reminder depends on someone having time. An agent does not have that problem.
RAG: make the AI read your price list before it answers
The model does not “know” your credit policy. Either you put it in front of the model on every answer, or it improvises a discount finance will not sign.
January: before you buy AI, write the process list
The new budget has a line that says “AI.” Without a process list, that line buys licenses. With one, it buys hours and collections.
AI in 2025: chat was the show, the process was the business
The year filled up with agents. The ones that worked read a document, sorted, wrote, and continued to the next step. The rest were ChatGPT with a logo.
Year-end close: invoices that landed in email and never in the spreadsheet
Suppliers invoice before holiday leave. The XML is in Gmail. The purchase book is a 2019 spreadsheet. That is not a close. It is a risk.
Cyber Monday and December: cheap hosting is paid in downtime
Friday held. Monday and gift weeks do not forgive a full disk, a certificate on the edge, and a backup nobody restored.
Black Friday is not won in the ad: it is won on the server and at checkout
The campaign is already on. If TTFB spikes and 3-D Secure spins, you paid for clicks into a queue.
Buen Fin in Mexico and operations in Costa Rica: one group, two checkouts
HDA Seed in Culiacán and a spa in San José cannot share a spreadsheet on Buen Fin weekend. Collection and inventory are per country. Chaos does not have to be.
Before Black Friday: a checkout that dies costs you the month
The November ad is designed now. If the gateway, stock, or server are not rehearsed in October, Black Friday is a spinner on a form.
TRIBU-CR replaced ATV: the filing no longer lives on the old portal
ATV is behind you. Anyone who had “the accountant’s kid” on a memorized flow will trip. The new system does not forgive old XML or users without a role.
September retail and spa: a store that cannot charge is not a store
School holidays are over. Appointments, restocking, campaigns. If the customer arrives and payment sticks, you lost the month that actually has demand.
4.4 is live: payment receipts, SINPE, and XML your system must emit
Cutoff passed. The problem is no longer “migrating”: it is operating. REP and payment means are not an accountant’s annex. They are the collection rail.
On 1 September Hacienda stops accepting e-invoice 4.3
Friday 29 you can still issue 4.3. Monday 1, you cannot. If you depend on a vendor who will “do it next week,” plan B has to exist today.
Two weeks left for Costa Rica e-invoice 4.4
Eighteen days. If 4.4 XML does not pass in staging, 1 September does not “work itself out.” It rejects.
Google AI Mode left the lab: you get cited or you get summarized
Users do not always click. Gemini builds an answer and lists a few sources. If your site cannot be cited, a competitor owns the paragraph.
PCI DSS 4.0 is no longer “best practice”: your acquirer will ask
31 March ended the cushion. MFA, checkout scripts, and logs are not a compliance PDF. They are the charge — or the bank saying no.
WhatsApp now bills per message: 1 July changed the invoice
Paying for one conversation and sending ten texts inside it is over. Each delivered template counts. The improvised inbox became a cost line.
Hacienda already extended e-invoice 4.4: 1 September is the real cutoff
Version 4.3 is allowed through August. On 1 September Hacienda stops accepting the old schema. A mailbox full of XML is not a close process.
700 engineers in India were sold as AI
They sold AI agents. Behind the curtain: a floor of engineers doing the work by hand. An expensive lesson in buying “AI” without seeing the process.
How to center a div with Tailwind CSS
The eternal CSS joke, solved with Tailwind utilities. Horizontal, vertical, and the true center of a container.
Laravel Cloud: ship your app without babysitting servers
Laravel announced its own cloud. It promises deploys without assembling a server. Here is the criterion for using it (or not) on a real product.
GitHub push and pull, step by step
Clone, pull other people’s work, push yours. The minimum cycle to work in a GitHub repo without breaking anyone else’s.