Technical log
Blog
News and notes on automation, web development, and the craft of shipping software in LATAM.
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 TSE declared a president-elect: the ID is still master data
The 3 March declaration closes the electoral chapter. In the CRM, the ID chapter never closes. Either you validate against the registry, or you invent people.
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.
1 February passed: what the TSE teaches about clean data
The country saw preliminary results. Your company saw whether the Friday before filled the CRM with junk. The source of truth is not the intern’s spreadsheet.
1 February is election day: your internal register cannot improvise
The TSE runs the electoral roll. You run customers. That week the civil registry is under a spotlight. Duplicates in your CRM are not a footnote.
January is onboarding: duplicate IDs and the TSE API
New contracts, schools, clinics, retail. The internal register gets dirty in three weeks if the ID is typed by eye.
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.