Contents
Key takeaways
- Fox back-office shared with a neighbouring network, but a front end that keeps its own identity.
- Insurance comparison connected to insurers' web services, unblocked and recalculated.
- Blog moved from WordPress into Fox with a checked import script.
- Pro app: filtered files, billing, feasibility sheets, scores and calendar.
- Server-side Google Calendar sync, token encrypted with AES-256-GCM.
accord-credit.fr is a national network of credit brokers: mortgages, debt consolidation, loan insurance, business loans and réméré (sale-and-leaseback) credit. It shares its Fox back-office with a neighbouring network, immofinances.net, but keeps its own brand. The challenge of this project fits in one sentence: modernise the site and ship mobile apps, reusing the same engine, without ever turning accord-credit.fr into a copy of the other site.
Same engine, distinct identity
Both networks use the same data, the same business rules and the same back-office. The rule set for accord-credit.fr is clear: only Fox, the information and the way things work are shared. The front end keeps its own skeleton, the one it has always had, and is modernised from its own templates.
The rule has a concrete reason. During the project, a branch merge had replaced the accord-credit.fr front end with the neighbouring network's. The mistake was reverted, the last original state was recovered from the git history, and the rule was written down in the project guidelines so it would not happen again.
The modernisation therefore took place inside the accord-credit.fr identity:
- a new typeface, Plus Jakarta Sans, self-hosted, with a fallback font of the same metrics so the page does not shift while loading;
- its own palette (night blue, slate, amber) and a darker amber to keep text contrast readable;
- redone images: panoramic banner photos, new service icons and 22 redrawn simulator icons;
- stylesheets per page family (product pages, referral, mini-sites…), all specific to the brand.

The public website: short journeys
accord-credit.fr relies on quick journeys. Visitors land on a service, run a simulation, then leave a request in a few screens.
- Dedicated service pages: mortgages, debt consolidation, loan insurance, business loans, réméré credit.
- Quick forms per product (individual, business, consolidation, réméré), each with its confirmation page.
- Express Credit in 6 steps, with a step bar redone for the brand.
- Loan simulator with an amortisation table and a grid of the financial partners' rates.
- Free call-back from the header: the form checks the fields, filters out bots with a honeypot field and notifies the relevant agencies by email.
- Referral programme with benefits for referee and referrer, tiers, rules and FAQ.
- Trust contract in 8 steps, from checking the ORIAS registration to fees.
- AI assistant and a guided chatbot that records a request per product; an open conversation outside a mini-site is passed to the agency for the visitor's postcode.
- Agency mini-sites redone in the accord-credit.fr design, each with its own blog.
- Partner frames: the forms can be embedded on business introducers' websites.

An insurance comparison connected to insurers
The loan insurance comparison, available on the site and used by brokers in Fox to build their offers, queries the insurers' web services directly (Cardif, Elois, Exade, Utwin, Oradea…), with one connector per insurer. It is one of the trickiest parts of the system, and two real problems were fixed there.
A comparison that got stuck
The comparison could spin forever. The investigation showed that the call to one of the insurers had no timeout and kept the PHP session lock open for long minutes: the other requests of the same session waited, and the user could not move on. The fix is three lines long: a connection capped at 5 seconds and a response capped at 20. The other insurers' offers stay on screen even if one of them does not answer. After the fix, the search returned 12 offers in about thirty seconds.
An underestimated insurance cost
The average rate returned by one insurer was used as a nominal rate on the outstanding capital, which clearly underestimated the total cost. The calculation was reworked: the monthly instalments provided by the insurer are used as they are, and when an insurer only gives yearly amounts, they are spread over the months with cumulative rounding, so the total matches the quote exactly.
The blog: from WordPress to Fox
The accord-credit.fr blog ran on WordPress, separate from everything else. It was moved into Fox, with the accord-credit.fr look. An import script reads the WordPress database in read-only mode, copies the posts into the Fox blog tables, then checks the result. One detail shows the care required: a post's main category is read from the SEO plugin used by accord-credit.fr, which is not the same as the neighbouring network's. The mini-site blogs have their own import. Once the switch was done, no address points to WordPress any more.
The app on the broker side
The accord-credit.fr iOS and Android apps are published on the App Store and Google Play. There is a client area, but the pro area is what makes the difference for the network:
- files with status and period filters, search and a detailed view;
- billing: files invoiced or to invoice, with amounts;
- feasibility sheets: list, creation, generated documents and sending by email;
- scores for collaborators and entities, to drive the network;
- calendar with appointment creation and Google Calendar sync;
- members, contracts and company.



Google Calendar sync without a background job
Brokers' appointments must be the same in Fox, in the app and in their Google Calendar. Sync goes through the Fox server, not the phone. It only asks for access to calendar events. The Google refresh token is encrypted with AES-256-GCM before being stored. Every change is sent to Google immediately; each time a period is displayed, Fox reads Google again for that period and removes the appointments deleted there. A flag retries failed sends, and etags prevent overwriting a more recent change.
Twin apps that do not drift apart
The accord-credit.fr app and the neighbouring network's app are two separate projects, with their own colours, icons, configuration and assistant name (Clara for accord-credit.fr). So that a fix made on one side is not forgotten on the other, a script checks that the shared files are strictly identical across both projects. Updates ship over the air with EAS Update, and a screen blocks the app when a store version becomes mandatory.
The other technical work
- Starting from the real production. The server's git repository no longer matched the live site. The migration started from a snapshot of production, compared file by file with SHA-256 hashes.
- PHP 8.3. Database access rewritten with mysqli, removed functions replaced, Smarty 4, PDF and email libraries updated, secrets moved out of the code into a
.envfile. Public pages were checked with no errors or deprecation notices. - Speed. About twenty stylesheets merged into one, critical styles inlined for each page type, WebP images sized to the screen, reCAPTCHA loaded on the visitor's first interaction.
- SEO. Titles of 60 characters at most, canonical addresses, addresses without underscores with 301 redirects, simulators at clean addresses.
- A version on another domain. The same code and the same Fox also serve accord-credit.ma, with its own repository.
- Texts editable from Fox on public pages, without touching the design.
Tech stack and know-how
PHP 8.3, MySQL and Smarty on the server; React Native with Expo for the apps; a REST API with session tokens; OpenAI for the assistant; the Google Calendar API for appointments; the insurers' web services for the comparison. Ahmed handled the site, the back-office and the apps as lead full-stack developer, from bug investigation to store publication.
Do you run several brands on the same tool, or have a site to modernise without losing its identity? Get in touch. You can also see all the screenshots of the project.
Frequently asked questions
Can two brands share the same back-office?
Yes. accord-credit.fr shares the Fox back-office, the data and the business rules with a neighbouring network, while keeping its own site and its own apps.
Can you leave WordPress without losing your posts?
Yes. Here, a script reads the WordPress database in read-only mode, copies the posts into the new blog and checks the result before the switch.
Do appointments from the app show up in Google Calendar?
Yes. Sync goes through the server: every appointment created or changed is sent to Google, and deletions made in Google are picked up on display.