Automations
In almost every SMB we talk to there is one person who opens four tabs every morning: Meta Leads Centre, a spreadsheet, the CRM, the inbox. They copy things from one into the next, fix formats, answer the urgent ones. That work is not hard, but it takes two hours a day and nobody wants to do it. What we build are the bridges between those tools, written in code, so the data travels on its own and that person spends the two hours talking to clients.
What we build
Custom automations written in Node.js that connect the tools you already use. A concrete example from the fitness coach: leads come in through Meta ad campaigns, the connector reads the Meta Leads Centre CSV every fifteen minutes, normalizes the fields, writes them to PostgreSQL, fires the WhatsApp agent on Twilio, and the result appears in the Next.js dashboard. Four different systems, zero manual steps between them.
We do not use Zapier or Make as the backbone. They work for prototypes, but once volume climbs they start charging per action and failing silently. Our automations run on your infrastructure, with logs you can read, alerts when something breaks, and a cost that does not scale with event count.
How we work
In the discovery call we list the tools you touch every day and the repetitive tasks someone on your team is doing. From that we draw a map: which data lives where, who moves it, how many times a day. That map becomes the automation plan, with the pieces prioritized by time saved.
We ship the first piece in week one and run it with you on Friday. If it works, we move to the next. If it does not, we tune it before moving on. We work this way so we never hand over a big system at the end of the month that nobody has seen move, which is how most SMB automations fail.
screenshot

The fitness coach Meta campaigns, read every fifteen minutes by the automation and written to PostgreSQL. The amounts are blurred on purpose, the per-region counts are not.
FAQ
Can you automate against the tools we already use?
Almost always yes. Meta, HubSpot, Pipedrive, Airtable, Google Workspace, Notion, Stripe, Twilio, and PostgreSQL are the ones we touch most. If the tool has a public API or data export, we connect it. If it does not, we tell you in the discovery call before charging anything.
What happens when a tool changes its API?
The included support covers these changes for the first three months. APIs from Meta, Twilio, and similar vendors break two or three times a year: when they do, we catch it through the alerts and fix it before you notice.
What if tomorrow we want to swap one of the systems?
The code is yours from day one and documented by piece. If you decide to move the CRM from Pipedrive to HubSpot, only that connector gets rewritten, not the whole system. That is why we do not use no-code platforms as the central layer.