Skip to content

Next.js in Malaga

Next.js development for Malaga tourism and property businesses

A Next.js development company working with Malaga hotels, rental operators and estate agents. Listing pages that are mostly photographs, availability that cannot be cached, and visitors on hotel wifi.

Working day overlap
Six hours or so, two hours behind Ankara, with the Spanish afternoon running late
Who buys here
Hotels and apart-hotels, holiday rental operators, estate agencies, and the tourism platforms built around them
What that changes
Most of the page weight is photographs, so image handling is the performance work rather than a part of it
Local specifics
A large share of visitors arrive on mobile, on a foreign SIM or on hotel wifi, which is the connection the site should be measured on

Malaga sells places - rooms, apartments, houses - and a page that sells a place is mostly photographs of it.

That makes the engineering unusually concentrated. On most websites, performance work is spread across JavaScript, data fetching, fonts and third-party scripts. On a Malaga property or hotel site, one image is usually responsible for most of the problem, and the work is to stop pretending otherwise.

The largest image is the score

Core Web Vitals measures the moment the biggest piece of content finishes painting. On a listing page that is the hero photograph, every time.

The failures repeat so reliably that they are worth naming. A hero image served at the same resolution to a desktop and to a phone. A gallery component that loads all thirty photographs when the visitor can see one. An image rendered without telling the browser it matters, so it is discovered after the stylesheet, the fonts and a carousel library.

All three are fixable in a day, and all three are worth more than a month of JavaScript reduction on this kind of site. How images decide the LCP covers the specifics, including the measurement that tells you which image the browser actually chose.

Availability is the only live part of the page

A booking page looks dynamic and mostly is not. The property does not change. The photographs do not change. The description, the location, the review summary - none of it changes between two visitors an hour apart.

The dates do, and the price for those dates does. So the page splits: everything stable is generated and cached, and the calendar and price are fetched when the page is viewed. This is the difference between a property page that responds instantly and one that waits on a channel manager API before showing a photograph.

What gets cached and when is the reading, and the mistake it prevents is marking a whole route dynamic because one component inside it is.

The funnel leaves your site, and has to come back

Almost every Malaga booking flow hands off - to a payment provider, to a booking engine, sometimes to a platform entirely.

That handoff is where these funnels lose money. The browser leaves, the visitor authenticates with their bank, and they come back to a page that has forgotten everything it knew. Anything held only in component state is gone, which is a specific and well-understood failure rather than bad luck, and the payment redirect problem is about exactly this return journey.

The rule that follows is simple: state that has to survive a redirect belongs in the URL or on the server, never in a React hook.

Commercially

Scope fixed in writing before work starts, priced per project. The country-level ground for Spain - invoicing, regional tax, accessibility obligations - is on the Spain market page.

Invoiced by Codefacture Yazılım A.Ş. in Türkiye, in euros, by bank transfer, with no Turkish VAT because exported services are exempt.

The regulatory and commercial ground for this city is on the Spain market page.

Frequently asked questions

Our Malaga property site is slow and it is all photographs. Where do we start?
With the single largest image on the page above the fold, because that is almost certainly what the Core Web Vitals score is measuring. The usual findings are the same three - a hero served at full resolution to a phone, a gallery that loads every photograph instead of the first one, and an image component used without the priority hint so the browser discovers it late. Fixing those three is usually the difference between a failing score and a passing one, before anybody touches JavaScript.
Can an availability calendar be cached at all?
The calendar cannot, the page around it can, and separating them is the whole trick. The property description, the photographs, the location and the reviews change rarely and can be served from a cache; the dates and the price for those dates have to be current. Treating the entire page as uncacheable because one component is live is the most common reason these sites are slow for no good reason.
Should we build our own booking engine or integrate one?
Integrate, in nearly every case, and be deliberate about where the funnel leaves your site. A channel manager or booking engine already handles rates, restrictions and the connections to the large platforms, and rebuilding that is a multi-year commitment nobody intended to make. What matters technically is that the handover to the payment or booking step survives the browser coming back cold, because the return from a payment provider is where these funnels break.
Our visitors are mostly on phones abroad. Does that change anything?
It changes what you measure. A site tested on an office connection in Europe looks fine and tells you nothing about a visitor on hotel wifi with high latency. The practical consequences are fewer round trips, images sized for the device rather than for the design mock-up, and as little JavaScript as the interaction genuinely requires.
Call us+1 848 272 7583WhatsApp+90 850 308 5436Emailinfo@codefacture.comContact page