This document lists our baseline technologies that we use at CDS.
As is the case with all parts of the Handbook, this is a living document in which changes are encouraged as our practices mature and develop. This is version 2024.1
Contents
- Introduction
- Supported technologies available to incoming projects
- Application virtualization
- Code Repository
- Content management systems
- Front end frameworks
- Back end (server) applications and frameworks
- GIS / Mapping
- Visualization
- Programming languages
Introduction
Given the ever-shifting technology environment, as well as our own love of learning and exploring, it is easy to take on new technologies as we enter new projects.
However, there are many reasons to limit the number of technologies that CDS can support, including:
- Leveraging the same knowledge across multiple projects
- Making projects more sustainable in the long run—e.g. by easing the hand-off between personnel for existing (or legacy) projects
- Building on existing expertise in order to provide high-quality service (and limiting staff stress associated with supporting unfamiliar technologies!)
- Focussing staff professional development time and resources
- Clearly defining the expertise requirements when posting for jobs or consultants
Having said that, our strategy must acknowledge that technology is constantly in a state of flux, and while we can’t chase every new tool as it appears, we also need to allow for eventual change and not remain married to seriously outdated solutions (or we’d all be Flash and ColdFusion programmers!).
The following is a list of technologies that form a core set. Any additions must be established, stable, actively maintained, and have a strong user community with ample documentation (and/or learning opportunities). If an addition functionally takes the place of another, older, member on the list, then there must be a plan in place for supporting existing projects that rely on the older technology, and no new projects should be added that rely on the older technology.
Supported technologies available to incoming projects
We choose our supported technologies with care, balancing ease-of-use, broad support, documentation, and an active development community. When adopting a new technology, we survey and assess various options in consultation with relevant CDS staff before deciding. Ideally, more than one CDS staff member should have a working knowledge of each supported technology.
Services offered through our Reclaim service marked with R; those through Reclaim Cloud marked with RC
Those through GitHub marked with G
Application virtualization
- DockerRC
Code Repository
- GitHubG
Content management systems
- WordPressR
- ScalarR
- OmekaR
- ManifoldR
- DjangoRC
- WikiDataRC
- HugoG
- TheirStory
Front end frameworks
- Bootstrap
- VueJS
Back end (server) applications and frameworks
- Django—for dynamic web contentRC
- Jekyll—for generated static web contentG
- MySQLRC
GIS / Mapping
- Storymaps
- Leaflet
Visualization
- Tableau
Programming languages
- HTML
- SASS/CSS
- See details on front-end standards in Technical Practices draft
- Javascript
- Third-party libraries
- Python (for scripting and Django)
- SQL