Contents
Key takeaways
- Public site rebuilt: product pages, 22 simulators, 6-step express credit, agency mini-sites.
- Fox Score: a score out of 100 over five axes, turned into a letter from A to D.
- Bank Match: banking rules plus a comparison with the 150 closest files.
- Emma: AI assistant on the site, in the app and for file pre-acceptance.
- Published iOS and Android app, connected to the same back-office.
immofinances.net is a credit brokerage network: mortgages, loan insurance, debt consolidation, business loans, sale-and-leaseback credit (réméré) and lifetime mortgages. The network works with credit experts and franchised agencies across France. Ahmed Sanoko took over its whole digital ecosystem as lead full-stack developer: the public website, the Fox back-office used by the brokers, and the iOS and Android apps.
One network, three tools that talk to each other
The starting point was an old website, written for a PHP version that is no longer maintained, with a separate WordPress blog and scattered internal tools. The goal: a modern site that captures financing requests, a back-office that genuinely helps brokers build and place their files, and an app that gives clients a clear view of their file.
The three parts share the same data. A request entered on the site lands in Fox, assigned to the right agency by postcode. The broker handles it in Fox. The client follows progress and uploads documents from the app.

The public website: capturing and qualifying requests
The site gives each product its own page and steers visitors towards a form or a simulator. What it includes:
- Product pages: mortgages, debt consolidation, loan insurance (including the Lemoine law), business loans, réméré credit, lifetime mortgages, plus information pages on the zero-rate loan (PTZ), PSLA, tax schemes and notary fees.
- 22 simulators (monthly payments, debt ratio, APR, stepped loans, loan smoothing, notary fees, PTZ, LMNP, amortisation table…), each at its own
/simulateur/<name>/address. Old addresses redirect with a 301 to keep search rankings. - Express credit in 6 steps: the project, its cost, income, marital status, contact details, then the result, with a progress bar.
- Loan insurance comparison embedded from a specialist partner.
- Emma, the site assistant: guided flows that record a request per product, and a conversational AI mode. On an agency's site, Emma knows the rates published by that agency.
- Regional pages for each region and department, served by a single agency search page.
- Agency mini-sites: each franchisee has its own subdomain, with its pages and its own blog, which head office can switch on or off.
- In-house blog hosted in Fox, with a "latest posts" block on the home page and the mini-sites, cached for ten minutes.
- Recruitment area, referral programme, testimonials, forum and client area.
Fox: a back-office that helps people decide
Fox is the brokers' and agencies' daily tool. It centralises client files, borrowers, documents, emails, bank offers (APR, PTZ, loan smoothing), the calendar and invoicing. But its real value lies elsewhere: it helps the broker know whether a file holds up, and which bank to send it to.
Fox Score
Each file gets a score out of 100, made of five axes scored out of 20: solvency (debt ratio, remaining income per person), stability (profile, seniority, age at the end of the loan), down payment, banking behaviour and file progress. The score becomes a letter from A to D. Anomalies are ranked on three levels, and a blocking anomaly drops the score to D, whatever the total.

Bank Match
Bank Match shows the banks most likely to accept a file. It combines two approaches. First, rules: the French HCSF rules (35% debt ratio), criteria learned from the banks' real answers, and adjustments entered by the network or the agency. Then a similar-files approach: Fox keeps the 150 closest files and computes an acceptance rate weighted by similarity, where recent decisions count more than older ones.

Emma, AI pre-acceptance
In Fox, Emma reads the file and returns a structured opinion: a grade from A to D, a favourable, mixed or unfavourable verdict, and a confidence level. The answer is forced into strict JSON so it can be displayed and used without interpretation. AI usage is tracked to stay within budget.
The rest of the toolbox
- CallJet: telephony connected to Twilio, with an answering service run by Emma and outbound calls.
- JetSMS and JetMail: SMS and email campaigns.
- Business simulators: a single calculation engine for repayment schedules, borrowing capacity, loan comparison, stepped loans, buy-backs, PTZ, notary fees, financing plans…
- Automatic reading of documents sent by clients.
- Site content: head office edits the texts of the public pages without going through a developer.
The iOS and Android client app
The app, published on the App Store and Google Play, is connected to the same back-office. On the client side:
- the file, organised in tabs (income, expenses, assets);
- supporting documents, with a completion ring and a progress bar during upload;
- the loan and insurance comparisons prepared by the broker;
- the 22 simulators, with a simulation history kept on the phone;
- a rate barometer;
- a conversation with Emma, opened from a floating button.
A pro area for brokers is also available in the same app.



The technical challenges, and how they were solved
Modernising old code without stopping the network
The site ran on code written for old PHP versions. It was ported to PHP 8.3: mysql_* functions replaced with mysqli, removed functions (ereg, each) rewritten, Smarty upgraded to version 4, the phpBB forum updated, PDF and email libraries replaced. All secrets were moved out of the code into a .env file. Badly encoded texts (ISO-8859-1 mixed with UTF-8) were repaired page by page. During the switch, a maintenance page loaded before every PHP script made it possible to close the site to the public while keeping it reachable for testing.
Mini-sites that repair themselves
Each agency has its own subdomain. To avoid a mini-site going down without anyone noticing, a maintenance task runs every 15 minutes: it backs up, deploys the files, checks that the mini-site answers over HTTPS, and rolls back on its own if it does not.
Editable texts, protected design
Head office wanted to edit its texts without risking broken pages. A zone system was added to the templates: only text blocks can be edited from Fox, never the layout. With no text entered, a zone renders the original text byte for byte. 52 site templates are covered.
Useful AI, with limits
A public assistant costs money with every message. Emma is therefore limited: 500 characters per question, six messages of history, hourly and daily quotas per visitor, and a daily cap for the whole site.
Page speed
Stylesheets are bundled and the critical styles of each page type are generated automatically with Puppeteer. Images are served as WebP, with a lighter banner image on phones. reCAPTCHA, simulators and forms only load on the visitor's first interaction, and YouTube videos are served without cookies.
The tech stack
- Server: PHP 8.3, MySQL, Smarty 4 templates.
- Mobile: React Native with Expo, over-the-air updates through EAS Update, a mandatory update screen when a new store version is required.
- REST API for the app, with a session token of which the server only stores a hash.
- Integrations: OpenAI, Twilio, Google Calendar, reCAPTCHA.
- SEO: sitemap, schema.org structured data on landing pages, titles capped at 60 characters.
- Deployment: GitHub, with automatic production releases and a check that detects any change made directly on the server.
What this project shows
This project brings together what a brokerage network expects from its developer: taking over a fragile existing system without breaking the business, building business tools that save brokers time (scoring, bank matching, telephony, SMS, email), adding AI where it genuinely helps, and shipping mobile apps published on both stores. The website, the back-office and the apps were handled by Ahmed as lead full-stack developer.
Do you have a similar project, a business tool to modernise or an app to connect to your back-office? Get in touch. You can also see all the screenshots of the project.
Frequently asked questions
Can a mobile app be connected to an existing back-office?
Yes. Here, the iOS and Android app goes through a REST API that reads the same data as the Fox back-office: files, documents, comparisons and calendar.
How is AI used without costs running away?
The site assistant is limited in question length, history and number of messages per visitor and per day, and AI usage is tracked in Fox.
Can an old PHP site be modernised without shutting everything down?
Yes. The site was ported to PHP 8.3 with a maintenance page that closed it to the public while keeping it reachable for testing, then the new version went live.