Arrow
The arrow of time, Artsy edition.
This 2020 Hackathon project implements a web-published timeline and a CMS for documenting milestones in Artsy's history.
The major pieces:
- A NextJS project, with support for Typescript and Palette
- A Netlify deployment for the static site generated from the NextJS project
- A NetlifyCMS configuration that allows editors to update this repo (and trigger a new static site deploy on each push to main)
- Data, seeded originally from the document created in 2019, and now managed via the CMS
Meta
- State: hackathon
- Static site:
- Admin:
- Deployment:
- Every push to
main
, whether via GitHub or NetlifyCMS, results in a new deployment of the static files to the website, which is currently associated with @anandaroop's Netlify account.
- Every push to
- Point People: @anandaroop
Getting started
Clone and install
git clone git@github.com:artsy/arrow.git
cd arrow
yarn install
Compile individual CMS-managed files in _entries/*
into a single JSON file at data/entriesList.json
yarn data
Start the NextJS dev server
yarn dev
You should now have a hot-reloading NextJS dev server running at http://localhost:3000/
The project is laid out as follows. The pages
and components
directories are where most of the action is:
.
├── _entries # content directory, managed via NetlifyCMS
├── data # derived from content files, with `yarn data`
├── pages # NextJS page components
├── components # regular React components
├── public # static files
│ └── admin # static files for NetlifyCMS UI
└── scripts # custom scripts for e.g. data munging
Contributing
- Developers: Fork and PR as usual, even the CMS-managed data files under
_entries
. Merges tomain
will result in a deployment. - Editors: Use the CMS. A signup with Netlify Identity may be required.