Back to services

Custom software development for businesses

CRMs, in-house ERPs, dashboards and apps that plug into the systems you already use. We build them from the Andalusia Technology Park in Malaga and keep looking after them once they are live.

What custom software is (and when you don't need it)

Custom software is an application designed around one specific process in your company: how a job comes in, who signs off a quote, what a sales rep needs to see before visiting a customer. It is built from the way your team works today and from the data you already have, even if it is scattered across an ERP, a few spreadsheets and email.

It rarely means throwing away what works. At Navarro Hermanos the ERP stayed exactly where it was and we built the CRM that was missing around it. At Crearal, on the other hand, the whole operation lived in a spreadsheet with around 45 columns, so there the full application had to be built.

If what you want is to remove repetitive work between tools that already do their job, you may not need a new application at all: start with AI process automation. And if you want AI to carry out tasks inside your ERP or your inbox, that is covered in AI agents for businesses.

Custom software or SaaS? When each one makes sense

We say the same thing in the first meeting: if there is a SaaS that covers almost all of your process and its pricing works for the number of users you will have, buy it. Building your own pays off in fairly specific situations.

Building it pays off when

  • The process is exactly what sets you apart and no product handles it without bending it out of shape.
  • Your team juggles several tools held together with spreadsheets, emails and copy and paste.
  • You pay per-user licences for software you barely use, and every new hire pushes the bill up.
  • You need to connect to an old ERP with no API, or one that only accepts connections from inside your network.
  • The data has to stay on your own server.

Go with SaaS (or wait) when

  • The process is standard: accounting, payroll, invoicing or a sales CRM with nothing unusual about it.
  • You need it running next week.
  • Nobody on the team can spend time explaining how the work is done and testing what gets delivered.
  • The process still changes every month. Settle it first, even if that means a spreadsheet for now.

To compare with real numbers, add up what the SaaS would cost over four or five years (price per user times the users you will have, plus add-ons) and put it next to development plus maintenance over the same period. Quite often the answer is a split: SaaS for the generic parts and your own software for the part that makes you different, joined up through system integrations.

What kind of custom software we build

Mostly internal tools that the team opens every morning. These are the ones that come up again and again in our projects:

Custom CRM

Accounts per sales rep, visits, offers and follow-ups, with customers, orders and invoices pulled from the ERP so nobody types them twice.

ERP and job management

Stage-based workflows, quotes, production queues, shipping and invoicing when no off-the-shelf ERP fits the way you work.

Dashboards and reconciliations

Management KPIs, monthly reconciliations or supplier invoice checks, built on data coming from several sources at once.

ERP and online store integrations

Customers, products, stock and orders kept in sync between systems: through the API when there is one, through the database or file exports when there isn't.

AI features inside the application

Reading documents, quoting over WhatsApp or searching the product catalogue, with AI usage costs tracked separately.

Task platforms

Tasks per client or department, deadlines, recurring jobs and alerts for teams that currently organise themselves through spreadsheets and email.

Three custom software projects, told from the inside

All three are live and used by real teams every day. For each one: where they started, what was built, and the part that took the most work, which is usually the most useful bit when you are sizing up a similar project.

Crearal: a custom job-management ERP

Ceramic replicas · Malaga
Starting point
They make replica tiles (many of them for insurance claims), murals and made-to-measure cuts. Everything was tracked in a shared spreadsheet with around 45 columns, claims arrived by email or phone, and quotes and invoices were done in a separate program.
What we built
An ERP with its own workflow for each business line (replicas, murals and cuts), job records with photos and documents, production queues, MRW and GLS shipping through their APIs, PDF generation and a monthly check of carrier invoices against actual shipments. Claims from seven insurers are created automatically from email, and the quoting bot on the website and WhatsApp opens a draft job.
The hardest part
Importing the history. Several spreadsheet rows could be parts of the same job, the insurer had to be inferred from the company column and measurements were stored as text («1,643 x 1,643», in metres). A script that groups rows by internal job number and converts units sorted it out; months later a second sheet that had been left behind was brought in without duplicating a single job. The first phase went live three weeks after we started analysing the spreadsheet.
Custom ERPSpreadsheet migrationMRW and GLS APIsAutomatic claim intake

Navarro Hermanos: a sales CRM synced with the ERP

Spare parts distribution
Starting point
A distributor with three lines (car parts, motorbike and bicycle parts, and motorbike accessories) running an ERP on MySQL with millions of records. Visit schedules lived in spreadsheets, and they wanted one tool with three access levels: management, sales managers and sales reps.
What we built
A CRM with each rep's accounts, purchase history compared with the previous year, a weekly visit schedule, offers targeted by business line, customer type and area, leads, and follow-up for machinery sales. It was handed over with all 27 sales reps set up with their real accounts.
The hardest part
The ERP has no working API, so we read its database in read-only mode and load customers, products, orders and invoices into PostgreSQL. Two surprises came up. The day's orders reach the ERP after our 2:00 sync, so a second orders-only sync was added at 14:00. And a unique index on the tax ID left out groups whose branches share the same tax ID: removing it brought in 285 missing customers. The server sits inside the company's network and has no internet access in the early hours, so nothing that needs the internet is scheduled between 00:00 and 08:00.
Custom CRMMySQL ERP syncServer on the client's networkNestJS and Next.js

R&C Asociados: a task platform for an advisory firm

Advisory and property management
Starting point
They manage residents' associations and handle tax, employment and inheritance work. Tax filings were tracked in a spreadsheet matrix (client by tax form), employee starters and leavers in another sheet, and part of the work in two standalone apps with no user accounts.
What we built
Tasks per residents' association and per department (meeting resolutions, incidents with their insurance claim, recurring jobs such as direct-debit batches or maintenance), tracking of 16 tax forms with three checks per filing, starters and leavers that turn urgent after five days, an internal chat and a restricted-access CRM. A team of 22 people uses it.
The hardest part
The first version was built between September and November 2025 on Supabase. In July 2026 we moved it to our own API with PostgreSQL on a dedicated server, and the cut-over did not go to plan: the team had been using the new version for a week while the old one kept receiving changes. Re-importing everything, as the checklist said, would have wiped out real work. We did a controlled cut-over, carried across the rows created in the old system and checked that all 24 tables matched with zero differences. Everyone kept logging in with their existing password.
Task managementMigration with no data lossOwn API and PostgreSQL22 users

How much does custom software cost?

We don't publish prices, and we don't price by screen either: two applications with the same screens can take very different amounts of work depending on what sits behind them. These are the things that actually drive the effort:

01

Integrations

This varies the most. Shopify or Microsoft 365 have documented APIs and the work is predictable. An ERP with no API, where you have to read the database or work from file exports, needs more analysis and more testing with real data.

02

Data migration

Moving years of spreadsheets into a database, with duplicates, mixed formats and free-text fields, usually takes longer than people expect. We estimate it after looking at a real sample.

03

Roles and permissions

If everybody sees the same thing, it is simple. When sales reps must not see prices or only three people can open the CRM, design and testing grow.

04

Hosting

A cloud server is the fastest option. If the application has to live inside your network, behind a firewall or VPN, we need to coordinate with your IT team and that shows in the schedule.

05

AI and other usage-based services

If the application uses AI models, on top of development there is a usage cost that depends on volume. We split it into separate Azure resources so you can see what each feature costs.

How we put the proposal together

We start with a free assessment. If the project makes sense, you get a proposal with the scope in writing, including what is left out and the order of deliveries. We agree how it is paid with you, case by case.

To know whether it pays off, measure first how much time and how many mistakes the current process costs. We explain it step by step, with a formula and an example, in how to measure the real ROI of automation (in Spanish).

What the development process looks like and how long it takes

The timings below come from real projects. They depend mostly on the integrations involved and on how quickly things get signed off on your side.

1

Assessment

We talk to the people who actually do the work as well as to management. We go through the spreadsheets, the current software and a couple of cases from start to finish, and come out with a list of what hurts and what is not worth touching.

2

Scope agreed with the team

A written proposal and a working session with the people who will use the application, going through screens, statuses and edge cases before any code is written.

3

First version live

The most-used parts come first. Crearal's first phase went live three weeks after analysing the spreadsheet; the first version of the R&C Asociados platform took about two months.

4

Real data and training

We import the history, set up users with their permissions and train the team at their desks. While old and new systems run side by side, the cases nobody had mentioned start to appear.

5

Ongoing development

Once the application is in use, it keeps growing in small modules. Crearal's has had more than 500 changes deployed since February 2026, between new modules, tweaks and fixes.

What stretches a project is rarely the coding. It is usually sign-offs that take a while and data that turns up halfway through, like Crearal's second spreadsheet or the 285 Navarro Hermanos customers that were blocked by their tax ID.

What happens with the code, the data and the server

Ask this before you sign with any supplier, including us. This is how we work:

Data in a standard database

We use PostgreSQL. The data can be exported in full with standard tools and doesn't depend on any format of ours.

One server per client

For business projects we don't share machines between clients. It can be a cloud server or one inside your own network, as with Navarro Hermanos.

Versioned, documented code

The code lives in a repository with its full change history, and every project documents how it is deployed, how a backup is restored and which business rules apply.

Ownership in the contract

Who owns the code and what happens if you ever switch suppliers has to be written into the contract before work starts. Ask for that from us and from anyone else.

Maintenance: what happens after handover

An application nobody looks after degrades: a certificate expires, a supplier changes its API, a disk fills up. This is what we do with the ones we run in production:

  • Off-server backups that are actually restored

    An encrypted daily backup to external storage in the EU, locked against deletion for 30 days. And restores get tested: in Crearal's August 2026 test, jobs, customers, photos and shipments were checked against production. That is how we found the previous backup only covered the database and the job photos had never left the server. They are backed up now too.

  • Errors reviewed every morning

    The applications log their errors with three severity levels and a report of what failed arrives at 07:00. Silent failures count too: at Navarro Hermanos an alert fires if the nightly ERP sync fails two nights in a row.

  • Watching the channel as well as the server

    We learned this the hard way. A bot's WhatsApp line was down for two weeks and nobody noticed, because quotes from the website kept coming in and it looked like a normal dip. Now every line is checked hourly, alerts after two failures in a row, and the alert goes by email, since sending it over WhatsApp would mean using the very channel that is broken.

  • Fixes included, new features quoted

    Maintenance covers bug fixes. A new feature is discussed and scoped before it is built.

The technology we use

Widely used open-source tools, so any team with JavaScript experience can find their way around the project:

TypeScriptReactNext.jsNode.js (Express, NestJS)PostgreSQLDockern8nAzure OpenAI

Looking for a website or an online store?

They have their own pages, with what's included and how we work:

Custom software FAQ

How much does custom software development cost?

It mainly depends on four things: integrations with other systems, data migration, roles with different permissions and where it has to be hosted. That's why we don't publish prices or price by screen. After a free assessment we prepare a proposal with the scope in writing, and we agree how it is paid with you.

How long does it take to build custom software?

A first useful version is usually ready in three weeks to two months. Crearal's ERP had its first phase live three weeks after we analysed their spreadsheet, and the first version of the R&C Asociados platform took about two months. After that the application keeps growing module by module.

Which is better, custom software or SaaS?

If a SaaS covers almost all of your process and the per-user cost is reasonable, go with the SaaS. Custom development pays off when the process is what sets you apart, when your team glues several tools together by hand, or when you need to connect to an ERP with no API. Many companies end up combining both.

Do I need to replace my ERP to get custom software?

No. Usually the ERP stays and the new application reads from it. The Navarro Hermanos CRM pulls customers, products, orders and invoices from their ERP twice a day by reading its database, because the ERP has no working API.

What happens with the code and my data?

The data lives in PostgreSQL on a server dedicated to your company (in the cloud or inside your network) and can be exported in full. The code is versioned and documented. Who owns the code and what happens if you switch suppliers should be set out in the contract before work starts.

Who maintains the application after handover?

We do: daily off-server backups with tested restores, an error report every morning and monitoring of the integrations. New features are scoped separately before they are built.

Further reading

If you are weighing up a project, these pages fill in the rest:

06Contact

Ask for a first assessment

Tell us what your company does, which systems you use and what you would like to solve. We will reply within 48 business hours with a first assessment and, if it is a fit, arrange a proper conversation.

No commitment
We review your process and the systems you already use
If it is not a fit for what we do, we will tell you
Reply within 48 business hours

Prefer to talk directly?

info@nexttia.com

By submitting this form you accept our privacy policy.