HTML for the majority of the site is generated from Django/Wagtail templates and components.
React is used à la carte for isolated component instances (eg: a tab switcher) since this is not a single page application, but rather a static generated website. This precludes the need for Flux architecture, or such libraries as React Router.
To add a React component, you can target a container element from
/source/js/main.js and inject it.
Django and Wagtail
Django powers the backend of the site, and we use Wagtail with Django to provide CMS features and functionality.
We use wagtail-modeltranslations for CMS content localization. Please see its documentation for more information.
We use wagtail-experiments for CMS-based A/B testing. Please see its documentation for more information.
S3 and Cloudinary
Most assets are stored on S3. Buyers Guide images are hosted on Cloudinary.
/ ├── dest <- Compiled code generated from source. Don't edit! ├── network-api <- Django site code │ ├── networkapi <- Django apps live within this directory │ └── templates <- page templates and overrides ├── locales <- Localized strings (Java .properties syntax) ├── scripts <- Scripts run by npm tasks └── source <- Source code ├── images <- Image assets ├── js <- JS code │ └── components <- React components ├── json <- JSON for static data sets │ └── temp <- JSON pulled from web services. Don't commit! └── sass <- Sass code