NOS PRESTATIONS
05th Service · Development
$ BESPOKE DEVELOPMENT · OPEN SOURCE BY DEFAULT

We build what doesn't exist
yet.

CollectiveAccess plugins, custom Pawtucket sites, mobile visit applications, internal tools — since 2012 we have published more than sixty repositories on GitHub. Whatever can be open-sourced is; the bespoke part stays yours.

~/idc/recent-commits.log
feat meshviewer multi-touch rotation 2 d ago
fix museesDeFrance Joconde 7.0 export 5 d ago
feat frenchsculpture silhouette search 8 d ago
chore ca_tematres Providence 2.0 compatibility 11 d ago
feat loanInterface scan sound output 14 d ago
66+
public repositories
13+
years of code
5
languages day to day
GPL/MIT
default licences
— Scope

Eight playgrounds.

Our day-to-day work moves between the CollectiveAccess ecosystem (Providence + Pawtucket) and everything that gravitates around it: applications, internal tools, integrations. We rarely code from scratch — we extend, connect and publish.

01

CollectiveAccess plugins

To extend Providence — domain interfaces, imports, exports, validations.

02

Pawtucket themes

Public sites tailored to the institution's design, faceted browsing, viewers.

03

Mobile visit applications

iOS and Android — gallery guides, geolocated trails, audio description.

04

Websites outside CollectiveAccess

Catalogues raisonnés, exhibition micro-sites, editorial portals.

05

Internal domain tools

NFC-based inventory checks, barcode readers, tablet-based data entry interfaces.

06

3D & data visualisation

Three.js for objects, dataviz for corpora, analytical audio readings.

07

Custom connectors

Imports from Joconde, Mistral, FileMaker, Excel — exports to OAI-PMH, RDF, Getty.

08

APIs & web services

To expose a database to partners, feed an app, syndicate content.

— Three projects, told

Code that earns its keep.

01 · GITHUB 3D visualisation
github.com/ideesculture/
meshviewer
20
GitHub stars
★ open

Spin an object in WebGL, plugin-free, inside the record.

An OBJ viewer in Three.js embedded in Pawtucket: the 3D object appears in the work's record, manipulable with a finger on tablet or with a mouse in the gallery. Stable for several years now, used in production on museum databases and catalogues raisonnés.

Three.js WebGL JavaScript CollectiveAccess
02 · GITHUB Domain plugin
github.com/ideesculture/
museesDeFrance
4
years in production
★ open

The regulatory inventory, inside CollectiveAccess.

A bespoke plugin designed to generate computerised inventory registers in line with the Musées de France standards, organise inventory check minutes, and access the registers of allocated or deposited assets. Once an object is recorded, its inventory line becomes non-editable — as the regulation requires.

PHP CollectiveAccess MySQL
03 · GITHUB Gallery tools
github.com/ideesculture/
nfc-reader-webservice
0
keyboard required
★ open

A core component to network a chip reader, even in a remote spot.

The component that lets you connect a reader for mobile inventory checks, for triggering media playback in an exhibition space, for starting an interactive piece or identifying a visitor in a game.

Python NFC CollectiveAccess Flask
— Stack

Simple tools,
chosen for the long run.

No fashionable tech. We stick to stable pillars — PHP for CollectiveAccess because it is its native language, MySQL because it is universal, modern JavaScript rather than a framework that will be dead in three years. Stability before novelty.

BACKEND
  • PHP 8
  • Python 3
  • CollectiveAccess
  • MySQL / MariaDB
  • Apache / Nginx
FRONTEND
  • JavaScript
  • Vue.js
  • Three.js / WebGL
  • Modern CSS
MOBILE
  • PWA
  • QR codes and barcodes
  • Geolocation under PWA
  • App Store & Google Play Store
TOOLS
  • Git / GitHub
  • Docker
  • OAI-PMH
  • Joconde / RDF
— Method

Four steps, straight to the point.

01

Framing

Collaborative mindmap to align needs and feasibility.

02

Planning

Lightweight Gantt chart, clear milestones, intermediate deliverables.

03

Sprints

Short cycles in the Agile/XP spirit — show early, adjust quickly.

04

Delivery

Acceptance, user training, source code handed over with the project.

— Security

Web development best practices, by default.

Security is not an option you bolt on at the end. It is woven into the code, the infrastructure and our operational routines — aligned with the OWASP Top 10 and the GDPR.

Transport

HTTPS everywhere, HSTS enabled

TLS on every domain, Let's Encrypt certificates renewed automatically, forced HTTP → HTTPS redirection. No plain-text port exposed.

Code

Systematic validation and escaping

Prepared statements (anti-SQLi), context-aware output escaping (anti-XSS), CSRF tokens on write forms. Manual review on every PR.

Accounts

Auth, sessions, role-based permissions

Hashed passwords (bcrypt/argon2), HttpOnly + SameSite sessions, short expiry. Per-field and per-record permissions in CollectiveAccess.

Dependencies

Continuous updates, audits

Debian stable, CollectiveAccess, plugins, libraries — patched on a regular cadence. Monitoring of relevant CVEs, critical fixes applied within 72 h.

Backups

Daily backups, restoration tested

SQL + media rsync to separate storage, point-in-time over 30 days. Quarterly restoration tests — an untested backup is not a backup.

GDPR

EU hosting, data subject rights

Data hosted with OVH (Roubaix, Gravelines), no transfer outside the EU by default. Minimised logs, anonymisation/erasure on request, processing register kept up to date.

— Open source galaxy

Sixty-six
public repositories.

Anything that can be reused by other institutions or contributors is published on GitHub. Here is a sample; the rest is free to explore on github.com/ideesculture and github.com/gautiermichelin.

WP-CollectiveAccess

A bridge between WordPress and CollectiveAccess. Distributed on wordpress.org.

JavaScript ★ 8
ca_tematres

An information service that queries the Tematres API for thesauri.

PHP ★ 4
simpleListEditor

Quick editing of monolingual lists in Providence.

PHP ★ 0
loanInterface

Library mode: loans/returns via barcode reading.

PHP ★ 0
frenchRevolutionaryCalendar

Handling of dates from the French Revolutionary calendar.

PHP ★ 0
DateTimeConfiguratorPlugin

Defining custom dates and periods without touching the .conf.

PHP ★ 0
providencePluginUserMenu

Extensible user menu for Providence.

PHP ★ 1
ArchiveTesDocs

Software dedicated to managing paper archives and documents in companies and organisations.

JavaScript ★ 1
museesDeFranceDocumentation

Public documentation for the muséesDeFrance plugin.

HTML ★ 1
setup_collectiveaccess_windows

Windows installer for training and learning purposes.

Inno Setup ★ 1
ideesculture.github.io

Public documentation pages and redirects.

CSS ★ 1
See all 66 repositories →
— Modes

Fixed price, time and materials, support — whichever serves the project.

Fixed price

Clear scope, fixed price, milestones. Ideal for a plugin, a site, a well-framed integration.

Time and materials

For ongoing evolutions or exploration phases where the scope keeps shifting.

Support contract

Bundled with hosting or standalone — fixes, version upgrades, advice.

— Licences

Open source by default. Bespoke for you, shared with all.

Unless otherwise requested — sensitive data, strategic agreement — our developments are released under GPL or MIT. The institution keeps the advantage of bespoke work; the community benefits; you in turn benefit from external contributions.

GPL-3.0 MIT Apache-2.0 Proprietary (on request)
— A SPECIFIC PROJECT?

Tell us what you want to build.

A meeting, a shared mindmap, a quote within eight days.

— Continuer la visite

Les autres métiers d'idéesculture.