Repository: zooniverse/Panoptes-Front-End
Pull request #5078 (2018-11-19 13:13:19)

Disable classify links on projects with no active workflows
Staging branch URL: https://pr-5078.pfe-preview.zooniverse.org

Check for `project.links.active_workflows` before rendering classify links on the home page or in the project navigation. Move workflow selection down to the project classify page, rather than wrapping the whole project.

# Required Manual Testing

- [x] Does the non-logged in home page render correctly?
- [x] Does the logged in home page render correctly?
- [x] Does the projects page render correctly?
- [x] Can you load project home pages?
- [x] Can you load the classification page?
- [x] Can you submit a classification?
- [x] Does talk load correctly?
- [ ] Can you post a talk comment?

# Review Checklist

- [x] Does it work in all major browsers: Firefox, Chrome, Edge, Safari?
- [ ] Does it work on mobile?
- [x] Can you `rm -rf node_modules/ && npm install` and app works as expected?
- [ ] If the component is in coffeescript, is it converted to ES6? Is it free of eslint errors? Is the conversion its own commit?
- [x] Are the tests passing locally and on Travis?

# Optional

- [ ] Have you replaced any `ChangeListener` or `PromiseRenderer` components with code that updates component state?
- [ ] If changes are made to the classifier, does the dev classifier still work?
- [ ] Have you [resized and compressed](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/image-optimization) any image you've added?
- [ ] Have you added in [flow type annotations](https://flowtype.org/docs/type-annotations.html)?
- [ ] Have you followed the [Springer guidelines for commit messages](https://github.com/springernature/frontend-playbook/blob/master/git/git.md#commit-messages)?


eatyourgreens: I'm still seeing this make multiple workflow requests, with different IDs, when I use the workflow links on a project home page. I'm not completely sure what's going on there. 🤔 
eatyourgreens: Checking my notifications, while classifying, sets `project.links` to an empty object, which then disables the Classify link on this branch.

Patch:
diff --git a/app/lib/nav-helpers/getProjectLinks.js b/app/lib/nav-helpers/getProjectLinks.js
index 9c4a7330..1b445a47 100644
--- a/app/lib/nav-helpers/getProjectLinks.js
+++ b/app/lib/nav-helpers/getProjectLinks.js
@@ -3,7 +3,7 @@ import _ from 'lodash';
 import isAdmin from '../is-admin';
 import userHasLabAccess from './userHasLabAccess';
 
-function getProjectLinks({ project, projectRoles, workflow, user }) {
+function getProjectLinks({ project, projectRoles, user }) {
   const { id, redirect, slug } = project;
 
   const links = {
@@ -44,6 +44,8 @@ function getProjectLinks({ project, projectRoles, workflow, user }) {
     }
   };
 
+  const canClassify = project.links.active_workflows && project.links.active_workflows.length > 0;
+
   // For projects with external front ends
   if (redirect) {
     const redirectUrl = `${redirect.replace(/\/+$/, '')}/classify`;
@@ -52,7 +54,7 @@ function getProjectLinks({ project, projectRoles, workflow, user }) {
     _.unset(links, 'about');
   }
 
-  if (!workflow) {
+  if (!canClassify) {
     links.classify.disabled = true;
   }
 
diff --git a/app/lib/nav-helpers/getProjectLinks.spec.js b/app/lib/nav-helpers/getProjectLinks.spec.js
index 6642f9b0..d4022f96 100644
--- a/app/lib/nav-helpers/getProjectLinks.spec.js
+++ b/app/lib/nav-helpers/getProjectLinks.spec.js
@@ -8,21 +8,20 @@ import {
   projectRoles,
   projectWithRedirect,
   projectWithoutRedirect,
-  randomUser,
-  workflow
+  randomUser
 } from '../../../test';
 
 
 describe('getProjectLinks', function() {
   it('should use the project slug in building the navbar links', function() {
-    const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: projectOwnerUser });
+    const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: projectOwnerUser });
     Object.keys(navLinks).forEach((link) => {
       expect(navLinks[link].url.includes(projectWithoutRedirect.slug));
     });
   });
 
   it('should return about, classify, talk, and collections set of navbar links', function() {
-    const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: null });
+    const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: null });
     expect(Object.keys(navLinks).indexOf('about') > -1).to.be.true;
     expect(Object.keys(navLinks).indexOf('classify') > -1).to.be.true;
     expect(Object.keys(navLinks).indexOf('talk') > -1).to.be.true;
@@ -31,45 +30,45 @@ describe('getProjectLinks', function() {
 
   describe('without a user', function() {
     it('should not return a recents link', function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: null });
+      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: null });
       expect(Object.keys(navLinks).indexOf('recents') > -1).to.be.false;
     });
 
     it('should not return a lab link', function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: null });
+      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: null });
       expect(Object.keys(navLinks).indexOf('lab') > -1).to.be.false;
     });
 
     it('should not return an admin link', function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: null });
+      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: null });
       expect(Object.keys(navLinks).indexOf('admin') > -1).to.be.false;
     });
   });
 
   describe('with a user', function() {
     it('should return a recents link', function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: randomUser });
+      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: randomUser });
       expect(Object.keys(navLinks).indexOf('recents') > -1).to.be.true;
     });
 
     it('should not return a lab link if the user is not the project owner or a collaborator', function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: randomUser });
+      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: randomUser });
       expect(Object.keys(navLinks).indexOf('lab') > -1).to.be.false;
     });
 
     it('should not return an admin page link if the user is not an admin', function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: randomUser });
+      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: randomUser });
       expect(Object.keys(navLinks).indexOf('admin') > -1).to.be.false;
     });
 
     describe('who have a project role', function() {
       it('should return the lab link if the user is the project owner', function() {
-        const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: projectOwnerUser });
+        const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: projectOwnerUser });
         expect(Object.keys(navLinks).indexOf('lab') > -1).to.be.true;
       });
 
       it('should return the lab link if the user is a project collaborator', function() {
-        const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: projectCollabUser });
+        const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: projectCollabUser });
         expect(Object.keys(navLinks).indexOf('lab') > -1).to.be.true;
       });
     });
@@ -84,7 +83,7 @@ describe('getProjectLinks', function() {
       });
 
       it('should return the admin link if the user is an admin', function() {
-        const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: adminUser });
+        const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: adminUser });
         expect(Object.keys(navLinks).indexOf('admin') > -1).to.be.true;
       });
     });
@@ -92,20 +91,31 @@ describe('getProjectLinks', function() {
 
   describe('a project with a redirect', function() {
     it('should reset the classify link to the redirected project\'s classify page', function() {
-      const navLinks = getProjectLinks({ project: projectWithRedirect, projectRoles, workflow, user: randomUser });
+      const navLinks = getProjectLinks({ project: projectWithRedirect, projectRoles, user: randomUser });
       expect(navLinks.classify.url.includes(projectWithRedirect.redirect)).to.be.true;
       expect(navLinks.classify.isExternalLink).to.be.true;
     });
 
     it('should not return the about link', function() {
-      const navLinks = getProjectLinks({ project: projectWithRedirect, projectRoles, workflow, user: randomUser });
+      const navLinks = getProjectLinks({ project: projectWithRedirect, projectRoles, user: randomUser });
       expect(Object.keys(navLinks).indexOf('about') > -1).to.be.false;
     });
   });
 
+  describe('a project with active workflows', function() {
+    it('should not disable the classify link', function() {
+      const project = Object.assign({}, projectWithoutRedirect);
+      project.links.active_workflows = ['1', '2'];
+      const navLinks = getProjectLinks({ project, projectRoles, user: null });
+      expect(navLinks.classify).not.to.have.property('disabled');
+    });
+  });
+
   describe('a project without a workflow', function() {
     it('should return the classify link with disabled: true', function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow: null, user: null });
+      const project = Object.assign({}, projectWithoutRedirect);
+      project.links.active_workflows = [];
+      const navLinks = getProjectLinks({ project, projectRoles, user: null });
       expect(navLinks.classify.disabled).to.be.true;
     });
   });
diff --git a/app/locales/it.js b/app/locales/it.js
index a48a3d30..d950c10f 100644
--- a/app/locales/it.js
+++ b/app/locales/it.js
@@ -11,7 +11,7 @@ export default {
     dontShowMinicourse: 'Non mostrare più il mini corso',
     letsGo: 'Inizia!',
     next: 'Avanti',
-    optOut: 'Opt out',
+    optOut: 'Rinuncia',
     taskTabs: {
       taskTab: 'Task',
       tutorialTab: 'Tutorial'
@@ -24,6 +24,9 @@ export default {
       promotionMessage: "Congratulations! You've unlocked the next workflow. If you prefer to stay on this workflow, you can choose to stay.",
       acceptButton: 'Take me to the next level!',
       declineButton: 'No, grazie'
+    },
+    interventions: {
+      optOut: "Non mostrare più questi messaggi."
     }
   },
   project: {
@@ -130,7 +133,7 @@ export default {
     }
   },
   privacy: {
-    title: 'Accordo con gli utenti e Politica sulla privacy di Zooniverse',
+    title: 'Accordo con gli utenti e Informativa sulla privacy di Zooniverse',
     userAgreement: {
       summary: '## User Agreement\n**Summary**\n\nThe Zooniverse is a suite of citizen science projects operated by research groups in several institutions which support scientific research by involving members of the public - you - in the processes of analyzing and discussing data. Data from these projects is used to study online community design and theory, interface design, and other topics. This document describes what will happen to your contributions if you choose to contribute and what data we collect, how we use it and how we protect it.',
       contribution: '**What you agree to if you contribute to the Zooniverse**\n\nProjects involving the public are needed to enable researchers to cope with the otherwise unmanageable flood of data. The web provides a means of reaching a large audience willing to devote their free time to projects that can add to our knowledge of the world and the Universe.\n\nThe major goal for this project is for the analyzed data to be available to the researchers for use, modification and redistribution in order to further scientific research. Therefore, if you contribute to the Zooniverse, you grant us and our collaborators permission to use your contributions however we like to further this goal, trusting us to do the right thing with your data. However, you give us this permission non-exclusively, meaning that you yourself still own your contribution.\n\nWe ask you to grant us these broad permissions, because they allow us to change the legal details by which we keep the data available; this is important because the legal environment can change and we need to be able to respond without obtaining permission from every single contributor.\n\nFinally, you must not contribute data to the Zooniverse that you do not own. For example, do not copy information from published journal articles. If people do this, it can cause major legal headaches for us.',
@@ -158,31 +161,31 @@ export default {
   userAdminPage: {
     header: 'Admin',
     nav: {
-      createAdmin: 'Manage Users',
+      createAdmin: 'Gestione utenti',
       projectStatus: 'Set Project Status',
       grantbot: 'Grantbot',
       organizationStatus: 'Set Organization Status'
     },
-    notAdminMessage: 'You are not an administrator',
-    notSignedInMessage: 'You are not signed in'
+    notAdminMessage: 'Non sei amministratore',
+    notSignedInMessage: 'Non sei autenticato'
   },
   signIn: {
-    title: 'Sign in/register',
-    withZooniverse: 'Sign in with your Zooniverse account',
-    whyHaveAccount: 'Signed-in volunteers can keep track of their work and will be credited in any resulting publications.',
-    signIn: 'Sign in',
-    register: 'Register',
-    orThirdParty: 'Or sign in with another service',
-    withFacebook: 'Sign in with Facebook',
-    withGoogle: 'Sign in with Google'
+    title: 'Login/registrazione',
+    withZooniverse: 'Accedi tramite account Zooniverse',
+    whyHaveAccount: 'I volontari autenticati possono tenere traccia delle proprie attività e potranno venire citati nelle pubblicazioni accademiche.',
+    signIn: 'Login',
+    register: 'Registrazione',
+    orThirdParty: 'Accedi tramite altro sistema',
+    withFacebook: 'Accedi tramite account Facebook',
+    withGoogle: 'Accedi tramite account Google'
   },
   notFoundPage: {
-    message: 'Not found'
+    message: 'Pagina non trovata'
   },
   resetPassword: {
     heading: 'Reset Password',
     newPasswordFormDialog: 'Enter the same password twice so you can get back to doing some research. Passwords need to be at least 8 characters long.',
-    newPasswordFormLabel: 'New password:',
+    newPasswordFormLabel: 'Nuova password:',
     newPasswordConfirmationLabel: 'Repeat your password to confirm:',
     enterEmailLabel: 'Please enter your email address here and we’ll send you a link you can follow to reset it.',
     emailSuccess: 'We’ve just sent you an email with a link to reset your password.',
@@ -221,8 +224,8 @@ export default {
         never: 'Mai'
       },
       options: {
-        participating_discussions: 'Quando discussioni a cui partecipo sono aggiornate',
-        followed_discussions: 'Quando discussioni che seguo sono aggiornate',
+        participating_discussions: 'Quando discussioni a cui partecipo vengono aggiornate',
+        followed_discussions: 'Quando discussioni che seguo vengono aggiornate',
         mentions: 'Quando vengo nominato direttamente',
         group_mentions: 'Quando vengo nominato tramite un gruppo (@admins, @team, etc.)',
         messages: 'Quando ricevo un messaggio',
@@ -230,8 +233,8 @@ export default {
       }
     },
     project: {
-      section: 'Project email preferences',
-      header: 'Project',
+      section: 'Preferenze email progetto',
+      header: 'Progetto',
     }
   },
   about: {
@@ -257,420 +260,78 @@ export default {
     },
     publications: {
       nav: {
-        showAll: 'Show All',
-        space: 'Space',
-        physics: 'Physics',
-        climate: 'Climate',
-        humanities: 'Humanities',
+        showAll: 'Mostra tutti',
+        space: 'Spazio',
+        physics: 'Fisica',
+        climate: 'Climatologia',
+        humanities: 'Scienze umanistiche',
         nature: 'Nature',
-        medicine: 'Medicine',
-        meta: 'Meta',
+        medicine: 'Medicina',
+        meta: 'Varie',
       },
       content: {
         header: {
-          showAll: 'All Publications'
-        },
+          showAll: 'Tutte le pubblicazioni'
+        }
       },
       publication: {
-        viewPublication: 'View publication.',
-        viewOpenAccess: 'View open access version.'
+        viewPublication: 'Leggi pubblicazioni.',
+        viewOpenAccess: 'Leggi versione in open access.'
       }
+
     },
-    acknowledgements: {
-      title: '## Acknowledging the Zooniverse',
-      citation: '### Academic Citation',
-      instructions: 'Per the [Zooniverse Project Builder Policies](https://help.zooniverse.org/getting-started/lab-policies), all research publications using any data derived from Zooniverse approved projects (those listed on the [Zooniverse Projects page](/projects)) are required to acknowledge the Zooniverse and the Project Builder platform. To do so, please use the following text:',
-      supportText: '*This publication uses data generated via the [Zooniverse.org](https://www.zooniverse.org/) platform, development of which is funded by generous support, including a Global Impact Award from Google, and by a grant from the Alfred P. Sloan Foundation.*',
-      publicationRequest: 'We ask that all researchers making use of the Zooniverse Project Builder platform in any way also consider including the above acknowledgement in their publications.',
-      publicationShareForm: 'We strongly encourage project owners to report published accepted research publications using Zooniverse-produced data to us via [this form](https://docs.google.com/forms/d/e/1FAIpQLSdbAKVT2tGs1WfBqWNrMekFE5lL4ZuMnWlwJuCuNM33QO2ZYg/viewform). You can find a list of publications written using the Zooniverse on our [Publications page](publications).',
-      questions: 'If you have any questions about how to acknowledge the Zooniverse, such as referencing a particular individual or custom code, please [get in touch](contact).',
-      press: '### Writing About Zooniverse in the Press',
-      projectURLs: 'When writing about specific Zooniverse projects in the press, please include the project URL (in print as well as digital editions).',
-      ZooURL: 'When writing about the Zooniverse in general, please include the [Zooniverse.org](https://www.zooniverse.org/) URL somewhere in your article.',
-      enquiries: 'If you are interested in interviewing a member of the team, please [get in touch](contact).'
-    },
-    contact: {
-      title: '## Contatti & Social media',
-      discussionBoards: 'Most of the time, the best way to reach the Zooniverse team, or any project teams, especially about any project-specific issues, is through the discussion boards.',
-      email: 'If you need to contact the Zooniverse team about a general matter, you can also send an email to the team at [contact@zooniverse.org](mailto:contact@zooniverse.org). Please understand that the Zooniverse team is relatively small and very busy, so unfortunately we cannot reply to all of the emails we receive.',
-      collaborating: 'If you are interested in collaborating with the Zooniverse, for instance on a custom-built project, please email [collab@zooniverse.org](mailto:collab@zooniverse.org). (Note that our [Project Builder](/lab) offers an effective way to set up a new project without needing to contact the team!)',
-      pressInquiries: 'For press inquires, please contact the Zooniverse directors Chris Lintott at [chris@zooniverse.org](mailto:chris@zooniverse.org) or +44 (0) 7808 167288 or Laura Trouille at [trouille@zooniverse.org](mailto:trouille@zooniverse.org) or +1 312 322 0820.',
-      dailyZoo: 'If you want to keep up to date with what\'s going on across the Zooniverse and our latest results, check out the [Daily Zooniverse](http://daily.zooniverse.org/) or the main [Zooniverse blog](http://blog.zooniverse.org/). You can also follow the Zooniverse on [Twitter](http://twitter.com/the_zooniverse), [Facebook](http://facebook.com/therealzooniverse), and [Google+](https://plus.google.com/+ZooniverseOrgReal).'
-    },
-    faq: {
-      title: '## FAQ',
-      whyNeedHelp: '- **Why do researchers need your help? Why can\'t computers do these tasks?**\nHumans are better than computers at many tasks. For most Zooniverse projects, computers just aren’t good enough to do the required task, or they may miss interesting features that a human would spot - this is why we need your help. Some Zooniverse projects are also using human classifications to help train computers to do better at these research tasks in the future. When you participate in a Zooniverse project, you are contributing to real research.',
-      amIDoingThisRight: '- **How do I know if I\'m doing this right?**\nFor most of the subjects shown in Zooniverse projects, the researchers don\'t know the correct answer and that\'s why they need your help. Human beings are really good at pattern recognition tasks, so generally your first guess is likely the right one. Don’t worry too much about making an occasional mistake - more than one person will review each image, video or graph in a project. Most Zooniverse projects have a Help button, a Frequently Asked Questions (FAQ) page, and a Field Guide with more information to guide you when classifying.',
-      whatHappensToClassifications: '- **What happens to my classification after I submit it?**\nYour classifications are stored in the Zooniverse\'s secure online database. Later on a project\'s research team accesses and combines the multiple volunteer assessments stored for each subject, including your classifications, together. Once you have submitted your response for a given subject image, graph, or video, you can\'t go back and edit it. Further information can be found on the [Zooniverse User Agreement and Privacy Policy page](/privacy).',
-      accountInformation: '- **What does the Zooniverse do with my account information?**\nThe Zooniverse takes very seriously the task of protecting our volunteer\'s personal information and classification data. Details about these efforts can be found on the [Zooniverse User Agreement and Privacy Policy page](/privacy) and the [Zooniverse Security page](/security).',
-      featureRequest: '- **I have a feature request or found a bug; who should I talk to/how do I report it?**\nYou can post your suggestions for new features and report bugs via the [Zooniverse Talk](/talk) or through the [Zooniverse Software repository](https://github.com/zooniverse/Panoptes-Front-End/issues).',
-      hiring: '- **Is the Zooniverse hiring?**\nThe Zooniverse is a collaboration between institutions from the United Kingdom and the United States; all of our team are employed by one or the other of these partner institutions. Check out the [Zoonvierse jobs page](https://jobs.zooniverse.org/) to find out more about employment opportunities within the Zooniverse.',
-      howToAcknowledge: '- **I\'m a project owner/research team member, how do I acknowledge the Zooniverse and the Project Builder Platform in my paper, talk abstract, etc.?**\nYou can find more details on how to cite the Zooniverse in research publications using data derived from use of the Zooniverse Project Builder on our [Acknowledgements page](/about/acknowledgements).',
-      browserSupport: '- **What browser version does Zooniverse support?**\nWe support major browsers up to the second to last version.',
-      furtherHelp: 'Didn\'t find the answer to your question? Ask on [Zooniverse Talk](/talk) or [get in touch](/about/contact).'
-    },
-    resources: {
-      title: '## Risorse',
-      filler: 'Useful downloads and guidelines for talking about the Zooniverse.',
-      introduction: '### Brand Materials',
-      officialMaterials: '[Download official Zooniverse logos](https://github.com/zooniverse/Brand/tree/master/style%%20guide/logos). Our official color is teal hex `#00979D` or `RGBA(65, 149, 155, 1.00)`.',
-      printables: '[Download printable handouts, posters, and other ephemera](https://github.com/zooniverse/Brand/tree/master/style%%20guide/downloads). If you have specific needs not addressed here, please [let us know](/about/contact).',
-      press: '### Press Information',
-      tips: 'Tips for writing about the Zooniverse in the press',
-      listOne: '- Please always include URLs when writing about specific projects. If writing generally about the Zooniverse, please include www.zooniverse.org somewhere in your article. Check out the [Acknowledgements page](/about/acknowledgements) for more details about how to correctly acknowledge the Zooniverse.',
-      listTwo: '- Please note: we are a platform for people-powered research, not a company or non-profit.',
-      listThree: '- If you have questions about the Zooniverse and would like to speak to a member of our team, please [contact us](/about/contact).'
-    }
-  },
-  getInvolved: {
-    index: {
-      title: 'Get Involved',
+    team: {
       nav: {
-        volunteering: 'Volunteering',
-        education: 'Education',
-        callForProjects: 'Call for Projects',
-        collections: 'Collections',
-        favorites: 'Favorites'
-      }
-    },
-    callForProjects: {
-      audio: {
-        header: '## Call for Zooniverse Audio Transcription Project Proposals',
-        intro: 'Would your research benefit from the involvement of hundreds or even thousands of volunteers? Zooniverse.org is the world’s largest and most successful online platform for crowdsourced research. We currently have over 1.6 million registered volunteers working in collaboration with professional researchers on more than 70 research projects across a range of disciplines, from astronomy to biology, climatology to humanities subjects.',
-        seekingProposals: 'Thanks to a generous grant from the Institute of Museum and Library Services, we are currently seeking proposals for two new custom audio transcription projects in the humanities or from GLAM institutions (Galleries, Libraries, Archives and Museums), to be developed as part of the Zooniverse platform.',
-        projectSelection: '### Project Selection',
-        requirements: 'This call will be limited to research teams with audio recordings of spoken language (not limited to English) which would benefit from transcription into digital text formats and/or classification tasks like metadata tagging. We are particularly keen to work on projects where the resulting data can be incorporated into an existing content management system (CMS) and used for research purposes.',
-        audioCompatibility: 'Audio compatibility is currently not available on our free [Project Builder](https://www.zooniverse.org/lab) tool. One aim of this effort will be to use these projects to help test and expand the functionality of our audio tools.',
-        selectionCriteriaTitle: '### Selection Criteria',
-        selectionCriteriaOne: '1. We are looking for projects that harness crowdsourced audio transcription for the purposes of unlocking data currently trapped in sources that cannot be transcribed through automation, and for which human effort is truly necessary. Therefore, proposals should address any previously-attempted methods of automated speech to text transcription.',
-        selectionCriteriaTwo: '2. The data extracted must have an audience or usefulness, be this to academic researchers, members of the public or both.',
-        selectionCriteriaThree: '3. Audio clips for transcription should feature one speaker at a time (per audio clip), as our current research effort does not include speaker diarization.',
-        selectionCriteriaFour: '4. Project teams need clear plans for how to make the crowdsourced data openly and publicly available, ideally through a CMS or site hosted and maintained by your institution.',
-        selectionCriteriaFive: '5. Audio material must be digitized; we do not have funds to support digitization of audio material.',
-        selectionCriteriaSix: '6. We will not accept projects if the material for transcription has previously been edited or published as text.',
-        furtherNotes: '### Further Notes',
-        imlsGrantInfo: 'The two selected audio transcription projects will be part of an ongoing Zooniverse effort, [Transforming Libraries and Archives through Crowdsourcing](https://www.imls.gov/grants/awarded/lg-71-16-0028-16). We particularly welcome applications from marginalized or underrepresented groups, or which utilize content about or generated by underrepresented groups.',
-        deadline: '### Deadline for Audio Project Proposals:',
-        contact: 'Project proposals are due by 28 February 2018. If you have questions or require any further guidance, please contact Samantha Blickhan, IMLS Postdoctoral Fellow: samantha@zooniverse.org.',
-        submissionLink: '[SUBMIT AN AUDIO TRANSCRIPTION PROPOSAL](https://goo.gl/forms/ALbUaRN17Rlq7AkD3)',
-        break: '***'
+        showAll: 'Mostra tutti',
+        oxford: 'Oxford',
+        chicago: 'Planetario Adler',
+        minnesota: 'Minnesota',
+        portsmouth: 'Portsmouth',
+        california: 'California',
+        hilo: 'Hilo',
+        alumni: 'Alumni'
       },
-      bio: {
-        header: '## Call for Biomedical Project Proposals',
-        wouldResearchBenefit: 'Would your research benefit from the involvement of thousands of volunteers? We are currently seeking proposals for biomedical projects to be developed as part of the Zooniverse platform. The Zooniverse is the world’s largest and most successful online platform for crowd-sourced research; we currently have over 1.5 million registered volunteers working in collaboration with professional researchers on more than 50 research projects across a range of disciplines, from physics to biology.',
-        projectBuilder: 'Using our unique [Project Builder](/lab) you can create your own Zooniverse project for free with a set of tried and tested tools, including multiple-choice questions and region marking or drawing tools. If we don’t yet offer the tools you need, please propose your project below; we are particularly interested in developing novel projects that extend the functionality of our platform.',
-        projectSelection: '### Project Selection',
-        expandFunctionality: 'We are looking for biomedical projects that will help us expand the functionality of the Zooniverse and build on the selection of tools available to researchers via our platform. Projects may involve a processing task applied to images, graphs, videos or another data format, data collection, or a combination of the two. Successful projects will be developed and hosted by the Zooniverse team, in close collaboration with the applicants.',
-        examples: 'Examples of our current biomedical projects include [Microscopy Masters](https://www.zooniverse.org/projects/jbrugg/microscopy-masters), where volunteers classify cryo-electron microscopy images to advance understanding of protein and virus structure, and [Worm Watch Lab](https://www.wormwatchlab.org/), which aims to improve understanding of the relationship between genes and behaviour.',
-        selectionCriteriaTitle: '### Selection Criteria:',
-        selectionCriteriaOne: '1. Projects extending the capability of the Zooniverse platform or serving as case studies for crowdsourcing in new areas are encouraged.',
-        selectionCriteriaTwo: '2. Alignment with biomedical research (long-term aim of research is to improve human health outcomes).',
-        selectionCriteriaThree: '3. Merit and usefulness of the data expected to result from the project.',
-        deadline: '### Deadline\nProject proposals are accepted on a rolling basis. Applications will be reviewed at the beginning of each month.',
-        submissionLink: '[SUBMIT A BIOMEDICAL PROPOSAL](https://goo.gl/forms/uUGdO5CpWDNFE5Uz2)'
-      }
-    },
-    education: {
-      title: '## Education in the Zooniverse',
-      becomeCitizenScientist: 'As a volunteer on these websites, both you and your students can become citizen scientists and citizen researchers, participating in real science and other research. If you or your students think you have make a mistake, don’t worry; even the researchers make mistakes. These projects are set up to have more than one volunteer analyzing each piece of data, thereby eliminating the vast majority of human error. Mistakes are a part of the process, and can even help us evaluate the difficulty of the data. As long as everyone does their best, they are helping!',
-      resources: '### Resources for educators using Zooniverse',
-      zooTeach: '- [ZooTeach](http://www.zooteach.org/) is a repository of lessons and resources for teachers. At ZooTeach, you will find a variety of resources for education, including: guides to projects for students and teachers, teacher-created presentations designed to introduce students to a particular project, and lessons developed to connect your students to projects and research within the context of things they already know.',
-      educationPages: '- Many Zooniverse projects have their own education pages with additional resources for teachers. Resources may include a video tutorial of how to use the project, other helpful documents and videos about the classification process, and education resources related to the research behind the project.',
-      joinConversationTitle: '### Take part in the conversation',
-      joinConversationBody: 'Keep up with the latest Zooniverse educational efforts on the [Zooniverse Blog](http://blog.zooniverse.org/) or by following [&#64;zooteach](https://twitter.com/ZooTeach) on Twitter. You can also talk with other Zooniverse educators and peers interested in using people-powered research in all sorts of learning environments on the [Zooniverse Education Talk board](http://zooniverse.org/talk/16).',
-      howEducatorsUseZooniverse: '### How are educators using Zooniverse?',
-      inspiration: 'Looking for a little inspiration? Here are some ways educators have used Zooniverse projects and educational resources:',
-      floatingForests: '- [Floating Forests: Teaching Young Children About Kelp](http://blog.zooniverse.org/2015/04/29/floating-forests-teaching-young-children-about-kelp/)',
-      cosmicCurves: '- [Cosmic Curves: Investigating Gravitational Lensing at the Adler Planetarium](http://blog.zooniverse.org/2014/03/18/cosmic-curves-investigating-gravitational-lensing-at-the-adler-planetarium/)',
-      snapshotSerengeti: '- [Snapshot Serengeti Brings Authentic Research Into Undergraduate Courses](http://blog.zooniverse.org/2014/02/19/snapshot-serengeti-brings-authentic-research-into-undergraduate-courses/)',
-      contactUs: 'We’d love to hear about how you’ve used Zooniverse with youth or adult learners! Please contact [education@zooniverse.org](mailto:education@zooniverse.org) if you have any interesting stories to share.'
-    },
-    volunteering: {
-      title: '## How to Volunteer',
-      introduction: 'First of all, everyone who contributes to a Zooniverse project is a volunteer! We have a wonderful, global community who help us do what we do. The main ways of volunteering with us are helping us with classifications on data, being a beta tester on projects we\'ve yet to launch, and being a moderator for a project. For more information about any of these roles, just read below.',
-      projectVolunteeringTitle: '### Volunteer on a Project',
-      projectVolunteeringDescription: 'Volunteering on a project is the easiest and most common way of volunteering. We always need volunteers to go onto our projects and classify the data contained in them. You can read more about what happens with the classifications and how it helps the scientific community and the progress of science on the [About](/about) page.',
-      projectLink: 'There is no minimum time requirement needed; do as much or as little as you\'d like. To get started as a classifications volunteer, just to go to the [Projects](/projects) page, have a look through, find one you like the look of, and get stuck in!',
-      betaTesterTitle: '### Volunteer as a Beta Tester',
-      betaTesterDescription: 'Volunteers also help us test projects before they are launched to check that they work properly. This involves working through some classifications on the beta project to check that it works, looking for any bugs, and filling out a questionnaire at the end. This helps us find any issues in the project that need resolving and also assess how suitable the project is for the Zooniverse. You can read some guidelines on what makes a project suitable on the [Policies](/lab-policies) page, under \'Rules and Regulations\'.',
-      betaTesterSignUp: 'To sign up as a beta tester, go to [www.zooniverse.org/settings/email](/settings/email) and tick the box relating to beta testing. We\'ll then send you emails when a project is ready to be tested. You can change your email settings any time you want using the [same email page](/settings/email) and unticking the box.',
-      projectModeratorTitle: '### Volunteer as a Project Moderator',
-      projectModeratorBody: 'Volunteer moderators have extra permissions in the Talk discussion tool for a particular project. They help moderate discussions and act as a point of contact for the project. Moderators are selected by the project owner. If you\'re interested in becoming a moderator on a project you\'re taking part in, go to the project\'s About page and get in touch with the researcher.',
-      furtherInformationTitle: '### Further Information',
-      contactUs: 'If you\'d like any more information on any of these different roles, contact us via the [Contact Us](/about/contact) page.'
-    }
-  },
-  lab: {
-    help: {
-      howToBuildProject: {
-        title: '## Come realizzare un progetto utilizzando Project Builder',
-        overview: {
-          quickGuide: '* [A quick guide to building a project](#a-quick-guide-to-building-a-project)',
-          navigating: '* [Navigating the project builder](#navigating-the-project-builder)\n  * [Project](#project)\n  * [Workflows](#workflows)\n  * [Subjects](#subjects)',
-          inDetail: {
-            title: '* [Project building in detail](#project-building-in-detail)',
-            projectDetails: '* [Project Details](#project-details)',
-            about: '  * [About](#about)',
-            collaborators: '* [Collaborators](#collaborators)',
-            fieldGuide: '* [Field Guide](#field-guide)',
-            tutorial: '* [Tutorial](#tutorial)',
-            media: '* [Media](#media)',
-            visibility: '* [Visibility](#visibility)',
-            workflows: '* [Workflows](#workflow-details)',
-            createTasks: '* [Create Tasks](#create-tasks)',
-            taskContent: '* [Task Content](#task-content)',
-            questions: '* [Questions](#questions)',
-            drawing: '* [Drawing](#drawing)',
-            transcription: '* [Transcription](#transcription)',
-            linking: '* [Linking the Workflow Together](#linking-the-workflow-together)',
-            subjectSets: '* [Subject Sets](#subject-sets)',
-            furtherHelp: '* [Further Help](#further-help)'
-          }
+      content: {
+        header: {
+          showAll: 'Team di Zooniverse'
         },
-        sectionOverview: {
-          title: 'There are three sections in this guide:',
-          quickGuide: '1.  [A quick guide to building a project](#a-quick-guide-to-building-a-project) provides an overview of all the steps you need to complete to set up your project.',
-          navigating: '2.  [Navigating the Project Builder](#navigating-the-project-builder) introduces the navigation bar (nav-bar) used in the project builder.',
-          inDetail: '3.  [Project building in detail](#project-building-in-detail) provides a more detailed description of how to set up a project.'
+        adamMcMaster: {
+          title: 'Infrastructure Engineer',
+          bio: `Adam is responsible for managing the Zooniverse's web hosting infrastructure.,
+          He has a computer science degree and has worked in web hosting and development for many years.
+          He's also working on a degree in astronomy with the OU.`
         },
-        quickGuide: {
-          title: '## A quick guide to building a project',
-          intro: 'A brief overview of all the steps you need to complete to set up your project.',
-          step1: '1. Log in to your Zooniverse account.',
-          step2: '2. Click on "Build a Project" (www.zooniverse.org/lab) and click "Create a New Project".',
-          step3: '3. Enter your project details in the pop-up that appears. You’ll then be taken to a “Project Details” page where you can add further basic information.',
-          step4: '4. Add more information about your project via the blue tabs on the left-hand side of the project builder page. Guidance for each of these sections is provided on the page itself.',
-          step5: '5.  If you have data to upload, add your subjects via the “Subject Sets” tab of the Project Builder (detailed instructions are provided [here](#subjects)).',
-          step6: '6. Next, create your workflow. Click on the “Workflow” tab in the navigation bar on the left-hand side of the page. Use the “New workflow” button to create a workflow. Multiple workflows can be created.',
-          step7: '7. Once you’ve created a workflow, the "Associated Subject Sets" section allows you to link your workflow to your subject sets. If you have no subjects, go to the “Subject Sets” tab and upload your data (see step 5 above).',
-          step8: '8. Hit the "Test this workflow" button to see how your project looks.',
-          step9: '9. Explore your project to figure out what works and what doesn\'t. Make changes, then refresh your project page to test these out.',
-          step10: '10. Guidelines on how to design your project to maximize engagement and data quality are provided on the [Policies page](https://help.zooniverse.org/getting-started/lab-policies).',
-          step11: '11. When you are happy with your project, set it to “Public” on the “Visibility” tab. Use the “Apply for review” button to submit it to the Zooniverse team for review.',
-          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        alexBowyer: {
+          title: 'Web Science Architect',
+          bio: `Alex worked remotely for Zooniverse from his home in Northumberland.
+          He designed and ran Zooniverse experiments and developed infrastructure and front-end code. Alex
+          is a Dad of three, an improv player, a board gamer, and is running five half-marathons in 2016.`
         },
-        navigatingTheProjectBuilder: {
-          title: '## Navigating the Project Builder',
-          intro: 'On the left-hand side of the project builder you will see a number of tabs which can be divided into three key sections; “Project”, “Workflows” and “Subject Sets”. These are terms you\'ll see a lot, and they have specific meanings in the Zooniverse.',
-          project: '**Project** is pretty self-explanatory; Galaxy Zoo and Penguin Watch are examples of Zooniverse projects that could be built using the project builder.',
-          workflows: '**Workflows** are sequences of tasks that volunteers are asked to do.',
-          subjectSets: '**Subject sets** are collections of data (typically images) that volunteers are asked to perform tasks on.',
-          glossaryPage: 'For more Zooniverse definitions, check out the [Glossary page](https://help.zooniverse.org/getting-started/glossary).'
+        alexWeiksnar: {
+          title: 'Developer',
+          bio: `Alex previously attended University of Miami, where he studied Psychology,
+          Biology, and English. Alex enjoys reading, coding, and sailing in his free time.`
         },
-        project: {
-          title: '### Project',
-          intro: 'The tabs listed below are where you enter descriptive information for your project.',
-          details: '- **Project Details:** Here you can add information that generates a home page for your project. Start by naming and describing your project, add a logo and background image.',
-          about: '- **About:** Here you can add all sorts of additional pages, including *Research, Team, Results, Education,* and *FAQ*',
-          collaborators: '- **Collaborators:** Add people to your team. You can specify their roles so that they have access to the tools they need (such as access to the project before it\'s public).',
-          fieldGuide: '- **Field Guide:** A field guide is a place to store general project-specific information that volunteers will need to understand in order to complete classifications and talk about what they\'re seeing.',
-          tutorial: '- **Tutorial:** This is where you create tutorials to show your users how to contribute to your project.',
-          media: '- **Media:** Add images you need for your project pages (not the images you want people to classify!)',
-          visibility: '- **Visibility:** Set your project\'s "state" - private or public, live or in development, and apply for review by the Zooniverse. You can also activate or deactivate specific workflows on this page.',
-          talk: '- **Talk:** Create and manage discussion boards for your project.',
-          dataExports: '- **Data Exports:** Access your raw and aggregated classification data, subject data, and comments from Talk.'
+        aliSwanson: {
+          title: 'Researcher',
+          bio: `Ali spent most of her PhD chasing lions around the Serengeti. She finished
+          her PhD in Ecology, Evolution, and Behavior at the University of Minnesota in 2014,
+          and joined the Zooniverse as a Postdoc in Ecology and Citizen Science.`
         },
-        workflow: {
-          title: '### Workflows',
-          body: 'A workflow is the sequence of tasks volunteers are asked to perform. For example, you might want to ask volunteers to answer questions about your images, or to mark features in your data, or both. The workflow tab is where you define those tasks and set the order in which volunteers are asked to do them. Your project might have multiple workflows (if you want to set different tasks for different image sets). See the detailed [Workflow](#workflow-details) section for more information.'
+        amyBoyer: {
+          title: 'Developer',
+          bio: `Amy has been a Zooniverse developer at the Adler since November 2015. She holds a BS and
+          MS in computer science and has over a decade of industry experience. An aspiring astronomer as
+          a child, she couldn't be happier to have landed here.`
         },
-        subjects: {
-          title: '### Subjects',
-          body: 'A subject is a unit of data to be analyzed. A single subject can include more than one image. A “subject set” consists of both the "manifest" (a list of the subjects and their properties), and the images themselves. Subjects can be grouped into different sets if useful for your research. See the [Subject Details](#subject-sets) section for more on subjects.',
-          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        andreaSimenstad: {
+          title: 'Developer',
+          bio: `Andrea joined Zooniverse as a developer at the University of Minnesota in 2015. When she is not captivated by code, she can be found enjoying snow on skis and exploring lakes by kayak. She graduated from Carleton College with a degree in Cognitive Science.`
         },
-        projectDetails: {
-          title: '## Project building in detail',
-          intro: 'Detailed instructions on how to use the pages described above.',
-          subtitle: '### Project details',
-          name: '* **Name**: The project name is the first thing people will see and it will show up in the project URL. Try to keep it short and sweet.',
-          avatar: '* **Avatar**: Pick an avatar image for your project. This will represent your project on the Zooniverse home page. It can also be used as your project\'s brand. It\'s best if it\'s recognizable even as a small icon. To add an image, either drag and drop or click to open your file viewer. For best results, use a square image of not more than 50KB, but at minimum 100x100 pixels.',
-          background: '* **Background**: This image will be the background for all of your project pages, including your project\'s front page. It should be relatively high resolution and you should be able to read text written across it. To add an image, either drag and drop or click to open your file viewer. For best results, use images of at least 1 megapixel, no larger than 256 KB. Most people\'s screens are not much bigger than 1300 pixels across and 750 pixels high, so if your image is a lot bigger than this you may find it doesn\'t look the way you expect. Feel free to experiment with different sizes on a "typical" desktop, laptop or mobile screen.',
-          description: '* **Description**: This should be a one-line call to action for your project. This will display on your landing page and, if approved, on the Zooniverse home page. Some volunteers will decide whether to try your project based on reading this, so try to write short text that will make people actively want to join your project.',
-          introduction: '* **Introduction**: Add a brief introduction to get people interested in your project. This will display on your project\'s front page. Note this field [renders markdown](http://markdownlivepreview.com/), so you can format the text. You can make this longer than the Description, but it\'s still probably best to save much longer text for areas like the About, Research Case or FAQ tabs.',
-          workflowDescription: '* **Workflow Description:** A workflow is a set of tasks a volunteer completes to create a classification. Your project might have multiple workflows (if you want to set different tasks for different subject image sets). Add text here when you have multiple workflows and want to help your volunteers decide which one they should do.',
-          checkboxVolunteers: '* **Checkbox: Volunteers choose workflow:**  If you have multiple workflows, check this to let volunteers select which workflow they want to work on; otherwise, they\'ll be served randomly.',
-          researcherQuote: '* **Researcher Quote:** This text will appear on the project landing page alongside an avatar of the selected researcher. It’s a way of communicating information to your volunteers, highlighting specific team members, and getting volunteers enthusiastic about participating.',
-          announcementBanner: '* **Announcement Banner:** This text will appear as a banner at the top of all your project’s pages. Only use this when you’ve got a big important announcement to make! Many projects use this to signal the end of a beta review, or other major events in a project’s life cycle.',
-          disciplineTag: '* **Discipline Tag:** Enter or select one or more discipline tags to identify which field(s) of research your project belongs to. These tags will determine the categories your project will appear under on the main Zooniverse projects page, if your project becomes a full Zooniverse project.',
-          otherTags: '* **Other Tags:** Enter a list of additional tags to describe your project separated by commas to help users find your project.',
-          externalLinks: '* **External links:** Adding an external link will make it appear as a new tab alongside the About, Classify, Talk, and Collect tabs. You can rearrange the displayed order by clicking and dragging on the left gray tab next to each link.',
-          socialLinks: '* **Social links:** Adding a social link will append a media icon at the end of your project menu bar. You can rearrange the displayed order by clicking and dragging on the left gray tab next to each link.',
-          checkboxPrivate: '* **Checkbox: Private project:** On "private" projects, only users with specified project roles can see or classify on the project. We strongly recommend you keep your project private while you\'re still editing it. Share it with your team to get feedback by adding them in the Collaborators area (linked at the left-hand side of the Project Builder). Team members you add can see your project even if it\'s private. Once your project is public, anyone with the link can view and classify on it.',
-          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
-        },
-        about: {
-          title: '### About',
-          intro: 'This section contains pages where you can enter further information for Research, Team, Results, Education and FAQ. All of these pages use [Markdown](http://markdownlivepreview.com/) to format text and display images.',
-          research: '* **Research:** Use this section to explain your research to your audience in as much detail as you\'d like. Explaining your motivation to volunteers is critical for the success of your project – please fill in this page (it will display even if you don’t)!',
-          team: '* **Team:** Introduce the members of your team, and the roles they play in your project.',
-          results: '* **Results:** Share results from your project with volunteers and the public here. This page will only display if you add content to it.',
-          education: '* **Education:** On this page, you can provide resources for educators and students to use alongside your project, such as course syllabi, pedagogical tools, further reading, and instructions on how the project might be used in an educational context. This page will only display if you add content to it.',
-          faq: '* **FAQ:** Add details here about your research, how to classify, and what you plan to do with the classifications. This page can evolve as your project does so that your active community members have a resource to point new users to. This page will only display if you add content to it.'
-        },
-        collaborators: {
-          title: '### Collaborators',
-          intro: 'Here you can add people to your team. You can specify their roles so that they have access to the tools they need (such as access to the project before it\'s public).',
-          owner: '* **Owner:** The owner is the original project creator. There can be only one.',
-          collaborator: '* **Collaborator:** Collaborators have full access to edit workflows and project content, including deleting some or all of the project.',
-          expert: '* **Expert:** Experts can enter “gold mode” to make authoritative gold standard classifications that will be used to validate data quality.',
-          researcher: '* **Researcher:** Members of the research team will be marked as researchers on “Talk".',
-          moderator: '* **Moderator:** Moderators have extra privileges in the community discussion area to moderate discussions. They will also be marked as moderators on “Talk".',
-          tester: '* **Tester:** Testers can view and classify on your project to give feedback while it’s still private. They cannot access the project builder.',
-          translator: '* **Translator:** Translators will have access to the project builder as well as the translation site, so they can translate all of your project text into a different language.',
-          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
-        },
-        fieldGuide: {
-          title: '### Field Guide',
-          intro: 'A field guide is a place to store general project-specific information that volunteers will need to understand in order to complete classifications and talk about what they\'re seeing. It\'s available anywhere in your project, accessible via a tab on the right-hand side of the screen.',
-          details: 'Information can be grouped into different sections, and each section should have a title and an icon. Content for each section is rendered with [Markdown](http://markdownlivepreview.com/), so you can include any media you\'ve uploaded for your project there.'
-        },
-        tutorial: {
-          title: '### Tutorial',
-          intro: 'In this section, you can create a step-by-step tutorial to show your users how to use your project. You can upload images and enter text to create each step of the tutorial. You can add as many steps as you want, but keep your tutorial as short as possible so volunteers can start classifying as soon as possible.',
-          details: 'In some cases, you might have several different workflows, and will therefore need several different tutorials. In the Workflows tab, you can specify which tutorial shows for the workflow a volunteer is on.'
-        },
-        media: {
-          title: '### Media',
-          intro: 'You can upload your own media to your project (such as example images for your Help pages or Tutorial) so you can link to it without an external host. To start uploading, drop an image into the grey box (or click “Select files” to bring up your file browser and select a file). Once the image has uploaded, it will appear above the "Add an image" box. You can then copy the Markdown text beneath the image into your project, or add another image.'
-        },
-        visibility: {
-          title: '### Visibility',
-          intro: 'This page is where you decide whether your project is public and whether it\'s ready to go live.',
-          projectState: '* **Project State and Visibility:** Set your project to “Private” or “Public”. Only the assigned collaborators can view a private project. Anyone with the URL can access a public project. Here, you can also choose whether your project is in “Development”, or “Live”. Note: in a live project, active workflows are locked and can no longer be edited.',
-          betaStatus: '* **Beta Status:** Here, you will find a checklist of tasks that must be complete for your project to undergo beta review. Projects must complete review in order to launch as full Zooniverse projects and be promoted as such. Once these tasks are complete, click “Apply for review”.',
-          workflowSettings: '* **Workflow Settings:** You will see a list of all workflows created for the project. You can set the workflows to “Active”, choose what metric to measure for completeness statistics, and whether those statistics should be shown on your project’s Stats Page.For more information on the different project stages, see our [Project Builder policies](https://help.zooniverse.org/getting-started/lab-policies).',
-          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
-        },
-        talk: {
-          title: '### Talk',
-          intro: '“Talk” is the name for the discussion boards attached to your project. On your Talk, volunteers will be able to discuss your project and subjects with each other, as well as with you and your project’s researchers. **Maintaining a vibrant and active Talk is important for keeping your volunteers engaged with your project.** Conversations on Talk also can lead to additional research discoveries.',
-          details: 'You can use this page to set up the initial Talk boards for your project. We highly recommend first activating the default subject-discussion board, which hosts a single dedicated conversation for each subject. After that, you can add additional boards, where each board will host conversation about a general topic. Example boards might include: “Announcements,” “Project Discussion,” “Questions for the Research Team,” or “Technical Support.”'
-        },
-        dataExports: {
-          title: '### Data Exports',
-          intro: 'In this section you can request data exports for your Project Data (CSV format) and Talk Data (JSON format). Note that the Zooniverse will process at most 1 of each export within a 24-hour period and some exports may take a long time to process. We will email you when they are ready. For examples of how to work with the data exports see our [Data Digging code repository](https://github.com/zooniverse/Data-digging).'
-        },
-        workflowDetails: {
-          title: '### Workflow Details',
-          introduction: 'Note that a workflow with fewer tasks is easier for volunteers to complete. We know from surveys of our volunteers that many people classify in their limited spare time, and sometimes they only have a few minutes. Longer, more complex workflows mean each classification takes longer, so if your workflow is very long you may lose volunteers.',
-          workflowTitle: '* **Workflow title:** Give your workflow a short, but descriptive name. If you have multiple workflows and give volunteers the option of choosing which they want to work on, this Workflow title will appear on a button instead of "Get started!"',
-          version: '* **Version:** Version indicates which version of the workflow you are on. Every time you save changes to a workflow, you create a new version. Big changes, like adding or deleting questions, will change the version by a whole number: 1.0 to 2.0, etc. Smaller changes, like modifying the help text, will change the version by a decimal, e.g. 2.0 to 2.1. The version is tracked with each classification in case you need it when analyzing your data.',
-          tasks: '* **Tasks:** There are two main types of tasks: questions and drawing. For question tasks, the volunteer chooses from a list of answers but does not mark or draw on the image. In drawing tasks, the volunteer marks or draws directly on the image using tools that you specify. They can also give sub-classifications for each mark. Note that you can set the first task from the drop-down menu.',
-          mainText: '* **Main Text:** Describe the task, or ask the question, in a way that is clear to a non-expert. The wording here is very important, because you will in general get what you ask for. Solicit opinions from team members and testers before you make the project public: it often takes a few tries to reach the combination of simplicity and clarity that will guide your volunteers to give you the inputs you need. You can use markdown in the main text.',
-          helpText: '* **Help Text:** Add text and images for a pop-up help window. This is shown next to the main text of the task in the main classification interface, when the volunteer clicks a button asking for help. You can use markdown in this text, and link to other images to help illustrate your description. The help text can be as long as you need, but you should try to keep it simple and avoid jargon. One thing that is useful in the help text is a concise description of why you are asking for this information.',
-          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
-        },
-        createTasks: {
-          title: '### Create Tasks',
-          body: 'Create tasks with the "Add a task" button. Delete tasks with the "Delete this task" button under the “Choices” box.'
-        },
-        taskContent: {
-          title: '### Task Content',
-          body: 'Tasks can be Questions, Drawings or Transcription. All types have "Main Text" boxes where you can ask your questions or tell users what to draw, as well as provide additional support for completing the task in the "Help Text" box.'
-        },
-        questions: {
-          title: '#### Questions',
-          intro: 'Choices: This section contains all your answers. The key features of this section are:',
-          required: '- **Required:** if you select this, the user has to answer the question before moving on.',
-          multiple: '- **Multiple:** if you select this, the user can select more than one answer - use this for "select all that apply" type questions.',
-          nextTask: '- **Next Task:** The “Next task” selection (which appears below the text box for each answer) describes what task you want the volunteer to perform next after they give a particular answer. You can choose from among the tasks you’ve already defined. If you want to link a task to another you haven’t built yet, you can come back and do it later (don’t forget to save your changes).'
-        },
-        drawing: {
-          title: '#### Drawing',
-          intro: 'This section contains all the different things people can mark. We call each separate option a "Tool" and you can specify a label, colour, and tool type for each option. Check out the [Aggregation documents](https://aggregation-caesar.zooniverse.org/docs) to understand how multiple volunteer answers are turned into final shapes for your data analysis. The tool types are:',
-          bezier: '- **bezier:** an arbitrary shape made of point-to-point curves. The midpoint of each segment drawn can be dragged to adjust the curvature.',
-          circle: '- **circle:** a point and a radius.',
-          column: '- **column:** a box with full height but variable width; this tool *cannot* be rotated.',
-          ellipse: '- **ellipse:** an oval of any size and axis ratio; this tool *can* be rotated.',
-          line: '- **line:** a straight line at any angle.',
-          point: '- **point:** X marks the spot.',
-          polygon: '- **polygon:** an arbitrary shape made of point-to-point lines.',
-          rectangle: '- **rectangle:** a box of any size and length-width ratio; this tool *cannot* be rotated.',
-          triangle: '- **triangle:** an equilateral triangle of any size and vertex distance from the center; this tool *can* be rotated.',
-          gridTable: '- **grid table:** cells which can be made into a table for consecutive annotations.',
-          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
-        },
-        transcription: {
-          title: '#### Transcription',
-          intro: 'This section deals with projects which require user-generated text. Tasks can range from adding keywords or extracting metadata to full text transcriptions.',
-          keywordTagging: '- **Keyword tagging** is helpful when teams want to create a list of all of the things volunteers see in a given image, to make that object more discoverable in a database or online collection. In these cases diversity of opinion is helpful. Setting a retirement rate of 5 to 10 people will help capture diverse opinions.',
-          fullTextTranscription: '- **Full text transcription** is more cumbersome and diversity of opinion is less helpful. Teams are usually trying to capture exactly what is on a page, so it will help to set a relatively low retirement rate for each image (i.e. 3 or 5) and be very clear in the tutorial how you would like volunteers to transcribe. Should they preserve spelling and punctuation or modernize it?',
-          aggregatedClassifications: '- Zooniverse does not currently offer aggregated classifications for text subjects. We can only report what each user transcribed for each subject. Before embarking on a transcription project be sure you have in-house expertise or access to expertise for combining multiple independent transcriptions into a single reading that you could use for research or to upload into a library or museum catalogue or content management system. For more information on Project Builder Data, please visit our [Data Digging code repository](https://github.com/zooniverse/Data-digging) as well as our [Data processing Talk board](https://www.zooniverse.org/talk/1322).'
-        },
-        linking: {
-          title: '#### Linking the workflow together',
-          intro: 'Now that all the tasks have been created, we\'ve got to string them together by specifying what happens *next*. Set your first task using the "First Task" drop-down menu below the "Add Task" button. Then, using the “Next task” drop-down under the “Choices” box, specify *what comes next*. In question tasks, you can specify different "Next Tasks" for each available answer (provided users can only select one answer).',
-          multiImageOptions: '**Multi-Image options:** If your tasks require users to see multiple subjects per task (like on [Snapshot Serengeti](https://www.snapshotserengeti.org)), decide how users will see them. The Flipbook option means users have to press a button to switch between subjects, while separate frames mean that each subject will be visible for the duration of the classification task.',
-          subjectRetirement: '**Subject retirement:** Decide how many people you want to complete each task. You can change this number at any point (particularly after beta review). We suggest starting out high, between 10 and 20.'
-        },
-        subjectSets: {
-          title: '### Subject Sets',
-          intro: 'On this page, you can add groups of data to be classified.',
-          summary: 'To do so, drag and drop items onto the drop zone in the browser and then upload. You can give each set a name so that you can easily distinguish between them.',
-          details: 'Subject sets can be pretty powerful, and sometimes complex. You can have a single subject set that you add to over time, or have multiple subject sets, say, from different years or places. You can have different subject sets for different workflows, but you don\'t have to. You can even have multiple images in a given subject. For more details and advice on creating and structuring subject sets and associated manifests, check out https://www.zooniverse.orghttps://help.zooniverse.org/getting-started/example and scroll down to DETAILS - Subject sets and manifest details, a.k.a. “What is a manifest?”'
-        },
-        furtherHelp: {
-          title: '## Further Help',
-          body: 'If you\'d like some further information, check out the [documentation behind building Kitteh Zoo](https://help.zooniverse.org/getting-started/example), that talks you through building this project in the Project Builder.\n\nIf this doesn\'t help, get in contact with the Zooniverse team via the [contact page](/about/contact).',
-          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
-        }
-      }
-    }
-  },
-  about: {
-    team: {
-      nav: {
-        showAll: 'Show All',
-        oxford: 'Oxford',
-        chicago: 'The Adler Planetarium',
-        minnesota: 'Minnesota',
-        portsmouth: 'Portsmouth',
-        california: 'California',
-        hilo: 'Hilo',
-        alumni: 'Alumni'
-      },
-      content: {
-        header: {
-          showAll: 'Zooniverse Team'
-        },
-        adamMcMaster: {
-          title: 'Infrastructure Engineer',
-          bio: `Adam is responsible for managing the Zooniverse's web hosting infrastructure.,
-          He has a computer science degree and has worked in web hosting and development for many years.
-          He's also working on a degree in astronomy with the OU.`
-        },
-        alexBowyer: {
-          title: 'Web Science Architect',
-          bio: `Alex worked remotely for Zooniverse from his home in Northumberland.
-          He designed and ran Zooniverse experiments and developed infrastructure and front-end code. Alex
-          is a Dad of three, an improv player, a board gamer, and is running five half-marathons in 2016.`
-        },
-        alexWeiksnar: {
-          title: 'Developer',
-          bio: `Alex previously attended University of Miami, where he studied Psychology,
-          Biology, and English. Alex enjoys reading, coding, and sailing in his free time.`
-        },
-        aliSwanson: {
-          title: 'Researcher',
-          bio: `Ali spent most of her PhD chasing lions around the Serengeti. She finished
-          her PhD in Ecology, Evolution, and Behavior at the University of Minnesota in 2014,
-          and joined the Zooniverse as a Postdoc in Ecology and Citizen Science.`
-        },
-        amyBoyer: {
-          title: 'Developer',
-          bio: `Amy has been a Zooniverse developer at the Adler since November 2015. She holds a BS and
-          MS in computer science and has over a decade of industry experience. An aspiring astronomer as
-          a child, she couldn't be happier to have landed here.`
-        },
-        andreaSimenstad: {
-          title: 'Developer',
-          bio: `Andrea joined Zooniverse as a developer at the University of Minnesota in 2015. When she is not captivated by code, she can be found enjoying snow on skis and exploring lakes by kayak. She graduated from Carleton College with a degree in Cognitive Science.`
-        },
-        arfonSmith: {
-          title: 'Technical Lead',
-          bio: `Arfon was co-founder and Technical Lead of the Zooniverse for the first five years of the project.
-          Arfon served as Director of Citizen Science at the Adler Planetarium and co-lead of the Zooniverse until fall 2013.`
+        arfonSmith: {
+          title: 'Technical Lead',
+          bio: `Arfon was co-founder and Technical Lead of the Zooniverse for the first five years of the project.
+          Arfon served as Director of Citizen Science at the Adler Planetarium and co-lead of the Zooniverse until fall 2013.`
         },
         beckyRother: {
           title: 'Visual Designer',
@@ -968,31 +629,375 @@ export default {
           and comic conventions all over the midwest.`
         }
       }
+    },
+    acknowledgements: {
+      title: '## Acknowledging the Zooniverse',
+      citation: '### Academic Citation',
+      instructions: 'Per the [Zooniverse Project Builder Policies](https://help.zooniverse.org/getting-started/lab-policies), all research publications using any data derived from Zooniverse approved projects (those listed on the [Zooniverse Projects page](/projects)) are required to acknowledge the Zooniverse and the Project Builder platform. To do so, please use the following text:',
+      supportText: '*This publication uses data generated via the [Zooniverse.org](https://www.zooniverse.org/) platform, development of which is funded by generous support, including a Global Impact Award from Google, and by a grant from the Alfred P. Sloan Foundation.*',
+      publicationRequest: 'We ask that all researchers making use of the Zooniverse Project Builder platform in any way also consider including the above acknowledgement in their publications.',
+      publicationShareForm: 'We strongly encourage project owners to report published accepted research publications using Zooniverse-produced data to us via [this form](https://docs.google.com/forms/d/e/1FAIpQLSdbAKVT2tGs1WfBqWNrMekFE5lL4ZuMnWlwJuCuNM33QO2ZYg/viewform). You can find a list of publications written using the Zooniverse on our [Publications page](publications).',
+      questions: 'If you have any questions about how to acknowledge the Zooniverse, such as referencing a particular individual or custom code, please [get in touch](contact).',
+      press: '### Writing About Zooniverse in the Press',
+      projectURLs: 'When writing about specific Zooniverse projects in the press, please include the project URL (in print as well as digital editions).',
+      ZooURL: 'When writing about the Zooniverse in general, please include the [Zooniverse.org](https://www.zooniverse.org/) URL somewhere in your article.',
+      enquiries: 'If you are interested in interviewing a member of the team, please [get in touch](contact).'
+    },
+    contact: {
+      title: '## Contatti & social media',
+      discussionBoards: 'Most of the time, the best way to reach the Zooniverse team, or any project teams, especially about any project-specific issues, is through the discussion boards.',
+      email: 'If you need to contact the Zooniverse team about a general matter, you can also send an email to the team at [contact@zooniverse.org](mailto:contact@zooniverse.org). Please understand that the Zooniverse team is relatively small and very busy, so unfortunately we cannot reply to all of the emails we receive.',
+      collaborating: 'If you are interested in collaborating with the Zooniverse, for instance on a custom-built project, please email [collab@zooniverse.org](mailto:collab@zooniverse.org). (Note that our [Project Builder](/lab) offers an effective way to set up a new project without needing to contact the team!)',
+      pressInquiries: 'For press inquires, please contact the Zooniverse directors Chris Lintott at [chris@zooniverse.org](mailto:chris@zooniverse.org) or +44 (0) 7808 167288 or Laura Trouille at [trouille@zooniverse.org](mailto:trouille@zooniverse.org) or +1 312 322 0820.',
+      dailyZoo: 'If you want to keep up to date with what\'s going on across the Zooniverse and our latest results, check out the [Daily Zooniverse](http://daily.zooniverse.org/) or the main [Zooniverse blog](http://blog.zooniverse.org/). You can also follow the Zooniverse on [Twitter](http://twitter.com/the_zooniverse), [Facebook](http://facebook.com/therealzooniverse), and [Google+](https://plus.google.com/+ZooniverseOrgReal).'
+    },
+    faq: {
+      title: '## FAQ',
+      whyNeedHelp: '- **Why do researchers need your help? Why can\'t computers do these tasks?**\nHumans are better than computers at many tasks. For most Zooniverse projects, computers just aren’t good enough to do the required task, or they may miss interesting features that a human would spot - this is why we need your help. Some Zooniverse projects are also using human classifications to help train computers to do better at these research tasks in the future. When you participate in a Zooniverse project, you are contributing to real research.',
+      amIDoingThisRight: '- **How do I know if I\'m doing this right?**\nFor most of the subjects shown in Zooniverse projects, the researchers don\'t know the correct answer and that\'s why they need your help. Human beings are really good at pattern recognition tasks, so generally your first guess is likely the right one. Don’t worry too much about making an occasional mistake - more than one person will review each image, video or graph in a project. Most Zooniverse projects have a Help button, a Frequently Asked Questions (FAQ) page, and a Field Guide with more information to guide you when classifying.',
+      whatHappensToClassifications: '- **What happens to my classification after I submit it?**\nYour classifications are stored in the Zooniverse\'s secure online database. Later on a project\'s research team accesses and combines the multiple volunteer assessments stored for each subject, including your classifications, together. Once you have submitted your response for a given subject image, graph, or video, you can\'t go back and edit it. Further information can be found on the [Zooniverse User Agreement and Privacy Policy page](/privacy).',
+      accountInformation: '- **What does the Zooniverse do with my account information?**\nThe Zooniverse takes very seriously the task of protecting our volunteer\'s personal information and classification data. Details about these efforts can be found on the [Zooniverse User Agreement and Privacy Policy page](/privacy) and the [Zooniverse Security page](/security).',
+      featureRequest: '- **I have a feature request or found a bug; who should I talk to/how do I report it?**\nYou can post your suggestions for new features and report bugs via the [Zooniverse Talk](/talk) or through the [Zooniverse Software repository](https://github.com/zooniverse/Panoptes-Front-End/issues).',
+      hiring: '- **Is the Zooniverse hiring?**\nThe Zooniverse is a collaboration between institutions from the United Kingdom and the United States; all of our team are employed by one or the other of these partner institutions. Check out the [Zoonvierse jobs page](https://jobs.zooniverse.org/) to find out more about employment opportunities within the Zooniverse.',
+      howToAcknowledge: '- **I\'m a project owner/research team member, how do I acknowledge the Zooniverse and the Project Builder Platform in my paper, talk abstract, etc.?**\nYou can find more details on how to cite the Zooniverse in research publications using data derived from use of the Zooniverse Project Builder on our [Acknowledgements page](/about/acknowledgements).',
+      browserSupport: '- **What browser version does Zooniverse support?**\nWe support major browsers up to the second to last version.',
+      furtherHelp: 'Didn\'t find the answer to your question? Ask on [Zooniverse Talk](/talk) or [get in touch](/about/contact).'
+    },
+    resources: {
+      title: '## Risorse',
+      filler: 'Useful downloads and guidelines for talking about the Zooniverse.',
+      introduction: '### Brand Materials',
+      officialMaterials: '[Download official Zooniverse logos](https://github.com/zooniverse/Brand/tree/master/style%%20guide/logos). Our official color is teal hex `#00979D` or `RGBA(65, 149, 155, 1.00)`.',
+      printables: '[Download printable handouts, posters, and other ephemera](https://github.com/zooniverse/Brand/tree/master/style%%20guide/downloads). If you have specific needs not addressed here, please [let us know](/about/contact).',
+      press: '### Press Information',
+      tips: 'Tips for writing about the Zooniverse in the press',
+      listOne: '- Please always include URLs when writing about specific projects. If writing generally about the Zooniverse, please include www.zooniverse.org somewhere in your article. Check out the [Acknowledgements page](/about/acknowledgements) for more details about how to correctly acknowledge the Zooniverse.',
+      listTwo: '- Please note: we are a platform for people-powered research, not a company or non-profit.',
+      listThree: '- If you have questions about the Zooniverse and would like to speak to a member of our team, please [contact us](/about/contact).'
+    }
+  },
+  getInvolved: {
+    index: {
+      title: 'Partecipare',
+      nav: {
+        volunteering: 'Volontariato',
+        education: 'Scuola',
+        callForProjects: 'Call for Projects',
+        collections: 'Collezioni',
+        favorites: 'Preferiti'
+      }
+    },
+    callForProjects: {
+      audio: {
+        header: '## Call for Zooniverse Audio Transcription Project Proposals',
+        intro: 'Would your research benefit from the involvement of hundreds or even thousands of volunteers? Zooniverse.org is the world’s largest and most successful online platform for crowdsourced research. We currently have over 1.6 million registered volunteers working in collaboration with professional researchers on more than 70 research projects across a range of disciplines, from astronomy to biology, climatology to humanities subjects.',
+        seekingProposals: 'Thanks to a generous grant from the Institute of Museum and Library Services, we are currently seeking proposals for two new custom audio transcription projects in the humanities or from GLAM institutions (Galleries, Libraries, Archives and Museums), to be developed as part of the Zooniverse platform.',
+        projectSelection: '### Project Selection',
+        requirements: 'This call will be limited to research teams with audio recordings of spoken language (not limited to English) which would benefit from transcription into digital text formats and/or classification tasks like metadata tagging. We are particularly keen to work on projects where the resulting data can be incorporated into an existing content management system (CMS) and used for research purposes.',
+        audioCompatibility: 'Audio compatibility is currently not available on our free [Project Builder](https://www.zooniverse.org/lab) tool. One aim of this effort will be to use these projects to help test and expand the functionality of our audio tools.',
+        selectionCriteriaTitle: '### Selection Criteria',
+        selectionCriteriaOne: '1. We are looking for projects that harness crowdsourced audio transcription for the purposes of unlocking data currently trapped in sources that cannot be transcribed through automation, and for which human effort is truly necessary. Therefore, proposals should address any previously-attempted methods of automated speech to text transcription.',
+        selectionCriteriaTwo: '2. The data extracted must have an audience or usefulness, be this to academic researchers, members of the public or both.',
+        selectionCriteriaThree: '3. Audio clips for transcription should feature one speaker at a time (per audio clip), as our current research effort does not include speaker diarization.',
+        selectionCriteriaFour: '4. Project teams need clear plans for how to make the crowdsourced data openly and publicly available, ideally through a CMS or site hosted and maintained by your institution.',
+        selectionCriteriaFive: '5. Audio material must be digitized; we do not have funds to support digitization of audio material.',
+        selectionCriteriaSix: '6. We will not accept projects if the material for transcription has previously been edited or published as text.',
+        furtherNotes: '### Further Notes',
+        imlsGrantInfo: 'The two selected audio transcription projects will be part of an ongoing Zooniverse effort, [Transforming Libraries and Archives through Crowdsourcing](https://www.imls.gov/grants/awarded/lg-71-16-0028-16). We particularly welcome applications from marginalized or underrepresented groups, or which utilize content about or generated by underrepresented groups.',
+        deadline: '### Deadline for Audio Project Proposals:',
+        contact: 'Project proposals are due by 28 February 2018. If you have questions or require any further guidance, please contact Samantha Blickhan, IMLS Postdoctoral Fellow: samantha@zooniverse.org.',
+        submissionLink: '[SUBMIT AN AUDIO TRANSCRIPTION PROPOSAL](https://goo.gl/forms/ALbUaRN17Rlq7AkD3)',
+        break: '***'
+      },
+      bio: {
+        header: '## Call for Biomedical Project Proposals',
+        wouldResearchBenefit: 'Would your research benefit from the involvement of thousands of volunteers? We are currently seeking proposals for biomedical projects to be developed as part of the Zooniverse platform. The Zooniverse is the world’s largest and most successful online platform for crowd-sourced research; we currently have over 1.5 million registered volunteers working in collaboration with professional researchers on more than 50 research projects across a range of disciplines, from physics to biology.',
+        projectBuilder: 'Using our unique [Project Builder](/lab) you can create your own Zooniverse project for free with a set of tried and tested tools, including multiple-choice questions and region marking or drawing tools. If we don’t yet offer the tools you need, please propose your project below; we are particularly interested in developing novel projects that extend the functionality of our platform.',
+        projectSelection: '### Project Selection',
+        expandFunctionality: 'We are looking for biomedical projects that will help us expand the functionality of the Zooniverse and build on the selection of tools available to researchers via our platform. Projects may involve a processing task applied to images, graphs, videos or another data format, data collection, or a combination of the two. Successful projects will be developed and hosted by the Zooniverse team, in close collaboration with the applicants.',
+        examples: 'Examples of our current biomedical projects include [Microscopy Masters](https://www.zooniverse.org/projects/jbrugg/microscopy-masters), where volunteers classify cryo-electron microscopy images to advance understanding of protein and virus structure, and [Worm Watch Lab](https://www.wormwatchlab.org/), which aims to improve understanding of the relationship between genes and behaviour.',
+        selectionCriteriaTitle: '### Selection Criteria:',
+        selectionCriteriaOne: '1. Projects extending the capability of the Zooniverse platform or serving as case studies for crowdsourcing in new areas are encouraged.',
+        selectionCriteriaTwo: '2. Alignment with biomedical research (long-term aim of research is to improve human health outcomes).',
+        selectionCriteriaThree: '3. Merit and usefulness of the data expected to result from the project.',
+        deadline: '### Deadline\nProject proposals are accepted on a rolling basis. Applications will be reviewed at the beginning of each month.',
+        submissionLink: '[SUBMIT A BIOMEDICAL PROPOSAL](https://goo.gl/forms/uUGdO5CpWDNFE5Uz2)'
+      }
+    },
+    education: {
+      title: '## Education in the Zooniverse',
+      becomeCitizenScientist: 'As a volunteer on these websites, both you and your students can become citizen scientists and citizen researchers, participating in real science and other research. If you or your students think you have make a mistake, don’t worry; even the researchers make mistakes. These projects are set up to have more than one volunteer analyzing each piece of data, thereby eliminating the vast majority of human error. Mistakes are a part of the process, and can even help us evaluate the difficulty of the data. As long as everyone does their best, they are helping!',
+      resources: '### Resources for educators using Zooniverse',
+      zooTeach: '- [ZooTeach](http://www.zooteach.org/) is a repository of lessons and resources for teachers. At ZooTeach, you will find a variety of resources for education, including: guides to projects for students and teachers, teacher-created presentations designed to introduce students to a particular project, and lessons developed to connect your students to projects and research within the context of things they already know.',
+      educationPages: '- Many Zooniverse projects have their own education pages with additional resources for teachers. Resources may include a video tutorial of how to use the project, other helpful documents and videos about the classification process, and education resources related to the research behind the project.',
+      joinConversationTitle: '### Take part in the conversation',
+      joinConversationBody: 'Keep up with the latest Zooniverse educational efforts on the [Zooniverse Blog](http://blog.zooniverse.org/) or by following [&#64;zooteach](https://twitter.com/ZooTeach) on Twitter. You can also talk with other Zooniverse educators and peers interested in using people-powered research in all sorts of learning environments on the [Zooniverse Education Talk board](http://zooniverse.org/talk/16).',
+      howEducatorsUseZooniverse: '### How are educators using Zooniverse?',
+      inspiration: 'Looking for a little inspiration? Here are some ways educators have used Zooniverse projects and educational resources:',
+      floatingForests: '- [Floating Forests: Teaching Young Children About Kelp](http://blog.zooniverse.org/2015/04/29/floating-forests-teaching-young-children-about-kelp/)',
+      cosmicCurves: '- [Cosmic Curves: Investigating Gravitational Lensing at the Adler Planetarium](http://blog.zooniverse.org/2014/03/18/cosmic-curves-investigating-gravitational-lensing-at-the-adler-planetarium/)',
+      snapshotSerengeti: '- [Snapshot Serengeti Brings Authentic Research Into Undergraduate Courses](http://blog.zooniverse.org/2014/02/19/snapshot-serengeti-brings-authentic-research-into-undergraduate-courses/)',
+      contactUs: 'We’d love to hear about how you’ve used Zooniverse with youth or adult learners! Please contact [education@zooniverse.org](mailto:education@zooniverse.org) if you have any interesting stories to share.'
+    },
+    volunteering: {
+      title: '## How to Volunteer',
+      introduction: 'First of all, everyone who contributes to a Zooniverse project is a volunteer! We have a wonderful, global community who help us do what we do. The main ways of volunteering with us are helping us with classifications on data, being a beta tester on projects we\'ve yet to launch, and being a moderator for a project. For more information about any of these roles, just read below.',
+      projectVolunteeringTitle: '### Volunteer on a Project',
+      projectVolunteeringDescription: 'Volunteering on a project is the easiest and most common way of volunteering. We always need volunteers to go onto our projects and classify the data contained in them. You can read more about what happens with the classifications and how it helps the scientific community and the progress of science on the [About](/about) page.',
+      projectLink: 'There is no minimum time requirement needed; do as much or as little as you\'d like. To get started as a classifications volunteer, just to go to the [Projects](/projects) page, have a look through, find one you like the look of, and get stuck in!',
+      betaTesterTitle: '### Volunteer as a Beta Tester',
+      betaTesterDescription: 'Volunteers also help us test projects before they are launched to check that they work properly. This involves working through some classifications on the beta project to check that it works, looking for any bugs, and filling out a questionnaire at the end. This helps us find any issues in the project that need resolving and also assess how suitable the project is for the Zooniverse. You can read some guidelines on what makes a project suitable on the [Policies](https://help.zooniverse.org/getting-started/lab-policies) page, under \'Rules and Regulations\'.',
+      betaTesterSignUp: 'To sign up as a beta tester, go to [www.zooniverse.org/settings/email](/settings/email) and tick the box relating to beta testing. We\'ll then send you emails when a project is ready to be tested. You can change your email settings any time you want using the [same email page](/settings/email) and unticking the box.',
+      projectModeratorTitle: '### Volunteer as a Project Moderator',
+      projectModeratorBody: 'Volunteer moderators have extra permissions in the Talk discussion tool for a particular project. They help moderate discussions and act as a point of contact for the project. Moderators are selected by the project owner. If you\'re interested in becoming a moderator on a project you\'re taking part in, go to the project\'s About page and get in touch with the researcher.',
+      furtherInformationTitle: '### Further Information',
+      contactUs: 'If you\'d like any more information on any of these different roles, contact us via the [Contact Us](/about/contact) page.'
+    }
+  },
+  lab: {
+    help: {
+      howToBuildProject: {
+        title: '## Come realizzare un progetto utilizzando Project Builder',
+        overview: {
+          quickGuide: '* [A quick guide to building a project](#a-quick-guide-to-building-a-project)',
+          navigating: '* [Navigating the project builder](#navigating-the-project-builder)\n  * [Project](#project)\n  * [Workflows](#workflows)\n  * [Subjects](#subjects)',
+          inDetail: {
+            title: '* [Project building in detail](#project-building-in-detail)',
+            projectDetails: '* [Project Details](#project-details)',
+            about: '  * [About](#about)',
+            collaborators: '* [Collaborators](#collaborators)',
+            fieldGuide: '* [Field Guide](#field-guide)',
+            tutorial: '* [Tutorial](#tutorial)',
+            media: '* [Media](#media)',
+            visibility: '* [Visibility](#visibility)',
+            workflows: '* [Workflows](#workflow-details)',
+            createTasks: '* [Create Tasks](#create-tasks)',
+            taskContent: '* [Task Content](#task-content)',
+            questions: '* [Questions](#questions)',
+            drawing: '* [Drawing](#drawing)',
+            transcription: '* [Transcription](#transcription)',
+            linking: '* [Linking the Workflow Together](#linking-the-workflow-together)',
+            subjectSets: '* [Subject Sets](#subject-sets)',
+            furtherHelp: '* [Further Help](#further-help)'
+          }
+        },
+        sectionOverview: {
+          title: 'There are three sections in this guide:',
+          quickGuide: '1.  [A quick guide to building a project](#a-quick-guide-to-building-a-project) provides an overview of all the steps you need to complete to set up your project.',
+          navigating: '2.  [Navigating the Project Builder](#navigating-the-project-builder) introduces the navigation bar (nav-bar) used in the project builder.',
+          inDetail: '3.  [Project building in detail](#project-building-in-detail) provides a more detailed description of how to set up a project.'
+        },
+        quickGuide: {
+          title: '## A quick guide to building a project',
+          intro: 'A brief overview of all the steps you need to complete to set up your project.',
+          step1: '1. Log in to your Zooniverse account.',
+          step2: '2. Click on "Build a Project" (www.zooniverse.org/lab) and click "Create a New Project".',
+          step3: '3. Enter your project details in the pop-up that appears. You’ll then be taken to a “Project Details” page where you can add further basic information.',
+          step4: '4. Add more information about your project via the blue tabs on the left-hand side of the project builder page. Guidance for each of these sections is provided on the page itself.',
+          step5: '5.  If you have data to upload, add your subjects via the “Subject Sets” tab of the Project Builder (detailed instructions are provided [here](#subjects)).',
+          step6: '6. Next, create your workflow. Click on the “Workflow” tab in the navigation bar on the left-hand side of the page. Use the “New workflow” button to create a workflow. Multiple workflows can be created.',
+          step7: '7. Once you’ve created a workflow, the "Associated Subject Sets" section allows you to link your workflow to your subject sets. If you have no subjects, go to the “Subject Sets” tab and upload your data (see step 5 above).',
+          step8: '8. Hit the "Test this workflow" button to see how your project looks.',
+          step9: '9. Explore your project to figure out what works and what doesn\'t. Make changes, then refresh your project page to test these out.',
+          step10: '10. Guidelines on how to design your project to maximize engagement and data quality are provided on the [Policies page](https://help.zooniverse.org/getting-started/lab-policies).',
+          step11: '11. When you are happy with your project, set it to “Public” on the “Visibility” tab. Use the “Apply for review” button to submit it to the Zooniverse team for review.',
+          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        },
+        navigatingTheProjectBuilder: {
+          title: '## Navigating the Project Builder',
+          intro: 'On the left-hand side of the project builder you will see a number of tabs which can be divided into three key sections; “Project”, “Workflows” and “Subject Sets”. These are terms you\'ll see a lot, and they have specific meanings in the Zooniverse.',
+          project: '**Project** is pretty self-explanatory; Galaxy Zoo and Penguin Watch are examples of Zooniverse projects that could be built using the project builder.',
+          workflows: '**Workflows** are sequences of tasks that volunteers are asked to do.',
+          subjectSets: '**Subject sets** are collections of data (typically images) that volunteers are asked to perform tasks on.',
+          glossaryPage: 'For more Zooniverse definitions, check out the [Glossary page](https://help.zooniverse.org/getting-started/glossary).'
+        },
+        project: {
+          title: '### Project',
+          intro: 'The tabs listed below are where you enter descriptive information for your project.',
+          details: '- **Project Details:** Here you can add information that generates a home page for your project. Start by naming and describing your project, add a logo and background image.',
+          about: '- **About:** Here you can add all sorts of additional pages, including *Research, Team, Results, Education,* and *FAQ*',
+          collaborators: '- **Collaborators:** Add people to your team. You can specify their roles so that they have access to the tools they need (such as access to the project before it\'s public).',
+          fieldGuide: '- **Field Guide:** A field guide is a place to store general project-specific information that volunteers will need to understand in order to complete classifications and talk about what they\'re seeing.',
+          tutorial: '- **Tutorial:** This is where you create tutorials to show your users how to contribute to your project.',
+          media: '- **Media:** Add images you need for your project pages (not the images you want people to classify!)',
+          visibility: '- **Visibility:** Set your project\'s "state" - private or public, live or in development, and apply for review by the Zooniverse. You can also activate or deactivate specific workflows on this page.',
+          talk: '- **Talk:** Create and manage discussion boards for your project.',
+          dataExports: '- **Data Exports:** Access your raw and aggregated classification data, subject data, and comments from Talk.'
+        },
+        workflow: {
+          title: '### Workflows',
+          body: 'A workflow is the sequence of tasks volunteers are asked to perform. For example, you might want to ask volunteers to answer questions about your images, or to mark features in your data, or both. The workflow tab is where you define those tasks and set the order in which volunteers are asked to do them. Your project might have multiple workflows (if you want to set different tasks for different image sets). See the detailed [Workflow](#workflow-details) section for more information.'
+        },
+        subjects: {
+          title: '### Subjects',
+          body: 'A subject is a unit of data to be analyzed. A single subject can include more than one image. A “subject set” consists of both the "manifest" (a list of the subjects and their properties), and the images themselves. Subjects can be grouped into different sets if useful for your research. See the [Subject Details](#subject-sets) section for more on subjects.',
+          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        },
+        projectDetails: {
+          title: '## Project building in detail',
+          intro: 'Detailed instructions on how to use the pages described above.',
+          subtitle: '### Project details',
+          name: '* **Name**: The project name is the first thing people will see and it will show up in the project URL. Try to keep it short and sweet.',
+          avatar: '* **Avatar**: Pick an avatar image for your project. This will represent your project on the Zooniverse home page. It can also be used as your project\'s brand. It\'s best if it\'s recognizable even as a small icon. To add an image, either drag and drop or click to open your file viewer. For best results, use a square image of not more than 50KB, but at minimum 100x100 pixels.',
+          background: '* **Background**: This image will be the background for all of your project pages, including your project\'s front page. It should be relatively high resolution and you should be able to read text written across it. To add an image, either drag and drop or click to open your file viewer. For best results, use images of at least 1 megapixel, no larger than 256 KB. Most people\'s screens are not much bigger than 1300 pixels across and 750 pixels high, so if your image is a lot bigger than this you may find it doesn\'t look the way you expect. Feel free to experiment with different sizes on a "typical" desktop, laptop or mobile screen.',
+          description: '* **Description**: This should be a one-line call to action for your project. This will display on your landing page and, if approved, on the Zooniverse home page. Some volunteers will decide whether to try your project based on reading this, so try to write short text that will make people actively want to join your project.',
+          introduction: '* **Introduction**: Add a brief introduction to get people interested in your project. This will display on your project\'s front page. Note this field [renders markdown](http://markdownlivepreview.com/), so you can format the text. You can make this longer than the Description, but it\'s still probably best to save much longer text for areas like the About, Research Case or FAQ tabs.',
+          workflowDescription: '* **Workflow Description:** A workflow is a set of tasks a volunteer completes to create a classification. Your project might have multiple workflows (if you want to set different tasks for different subject image sets). Add text here when you have multiple workflows and want to help your volunteers decide which one they should do.',
+          checkboxVolunteers: '* **Checkbox: Volunteers choose workflow:**  If you have multiple workflows, check this to let volunteers select which workflow they want to work on; otherwise, they\'ll be served randomly.',
+          researcherQuote: '* **Researcher Quote:** This text will appear on the project landing page alongside an avatar of the selected researcher. It’s a way of communicating information to your volunteers, highlighting specific team members, and getting volunteers enthusiastic about participating.',
+          announcementBanner: '* **Announcement Banner:** This text will appear as a banner at the top of all your project’s pages. Only use this when you’ve got a big important announcement to make! Many projects use this to signal the end of a beta review, or other major events in a project’s life cycle.',
+          disciplineTag: '* **Discipline Tag:** Enter or select one or more discipline tags to identify which field(s) of research your project belongs to. These tags will determine the categories your project will appear under on the main Zooniverse projects page, if your project becomes a full Zooniverse project.',
+          otherTags: '* **Other Tags:** Enter a list of additional tags to describe your project separated by commas to help users find your project.',
+          externalLinks: '* **External links:** Adding an external link will make it appear as a new tab alongside the About, Classify, Talk, and Collect tabs. You can rearrange the displayed order by clicking and dragging on the left gray tab next to each link.',
+          socialLinks: '* **Social links:** Adding a social link will append a media icon at the end of your project menu bar. You can rearrange the displayed order by clicking and dragging on the left gray tab next to each link.',
+          checkboxPrivate: '* **Checkbox: Private project:** On "private" projects, only users with specified project roles can see or classify on the project. We strongly recommend you keep your project private while you\'re still editing it. Share it with your team to get feedback by adding them in the Collaborators area (linked at the left-hand side of the Project Builder). Team members you add can see your project even if it\'s private. Once your project is public, anyone with the link can view and classify on it.',
+          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        },
+        about: {
+          title: '### About',
+          intro: 'This section contains pages where you can enter further information for Research, Team, Results, Education and FAQ. All of these pages use [Markdown](http://markdownlivepreview.com/) to format text and display images.',
+          research: '* **Research:** Use this section to explain your research to your audience in as much detail as you\'d like. Explaining your motivation to volunteers is critical for the success of your project – please fill in this page (it will display even if you don’t)!',
+          team: '* **Team:** Introduce the members of your team, and the roles they play in your project.',
+          results: '* **Results:** Share results from your project with volunteers and the public here. This page will only display if you add content to it.',
+          education: '* **Education:** On this page, you can provide resources for educators and students to use alongside your project, such as course syllabi, pedagogical tools, further reading, and instructions on how the project might be used in an educational context. This page will only display if you add content to it.',
+          faq: '* **FAQ:** Add details here about your research, how to classify, and what you plan to do with the classifications. This page can evolve as your project does so that your active community members have a resource to point new users to. This page will only display if you add content to it.'
+        },
+        collaborators: {
+          title: '### Collaborators',
+          intro: 'Here you can add people to your team. You can specify their roles so that they have access to the tools they need (such as access to the project before it\'s public).',
+          owner: '* **Owner:** The owner is the original project creator. There can be only one.',
+          collaborator: '* **Collaborator:** Collaborators have full access to edit workflows and project content, including deleting some or all of the project.',
+          expert: '* **Expert:** Experts can enter “gold mode” to make authoritative gold standard classifications that will be used to validate data quality.',
+          researcher: '* **Researcher:** Members of the research team will be marked as researchers on “Talk".',
+          moderator: '* **Moderator:** Moderators have extra privileges in the community discussion area to moderate discussions. They will also be marked as moderators on “Talk".',
+          tester: '* **Tester:** Testers can view and classify on your project to give feedback while it’s still private. They cannot access the project builder.',
+          translator: '* **Translator:** Translators will have access to the project builder as well as the translation site, so they can translate all of your project text into a different language.',
+          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        },
+        fieldGuide: {
+          title: '### Field Guide',
+          intro: 'A field guide is a place to store general project-specific information that volunteers will need to understand in order to complete classifications and talk about what they\'re seeing. It\'s available anywhere in your project, accessible via a tab on the right-hand side of the screen.',
+          details: 'Information can be grouped into different sections, and each section should have a title and an icon. Content for each section is rendered with [Markdown](http://markdownlivepreview.com/), so you can include any media you\'ve uploaded for your project there.'
+        },
+        tutorial: {
+          title: '### Tutorial',
+          intro: 'In this section, you can create a step-by-step tutorial to show your users how to use your project. You can upload images and enter text to create each step of the tutorial. You can add as many steps as you want, but keep your tutorial as short as possible so volunteers can start classifying as soon as possible.',
+          details: 'In some cases, you might have several different workflows, and will therefore need several different tutorials. In the Workflows tab, you can specify which tutorial shows for the workflow a volunteer is on.'
+        },
+        media: {
+          title: '### Media',
+          intro: 'You can upload your own media to your project (such as example images for your Help pages or Tutorial) so you can link to it without an external host. To start uploading, drop an image into the grey box (or click “Select files” to bring up your file browser and select a file). Once the image has uploaded, it will appear above the "Add an image" box. You can then copy the Markdown text beneath the image into your project, or add another image.'
+        },
+        visibility: {
+          title: '### Visibility',
+          intro: 'This page is where you decide whether your project is public and whether it\'s ready to go live.',
+          projectState: '* **Project State and Visibility:** Set your project to “Private” or “Public”. Only the assigned collaborators can view a private project. Anyone with the URL can access a public project. Here, you can also choose whether your project is in “Development”, or “Live”. Note: in a live project, active workflows are locked and can no longer be edited.',
+          betaStatus: '* **Beta Status:** Here, you will find a checklist of tasks that must be complete for your project to undergo beta review. Projects must complete review in order to launch as full Zooniverse projects and be promoted as such. Once these tasks are complete, click “Apply for review”.',
+          workflowSettings: '* **Workflow Settings:** You will see a list of all workflows created for the project. You can set the workflows to “Active”, choose what metric to measure for completeness statistics, and whether those statistics should be shown on your project’s Stats Page.For more information on the different project stages, see our [Project Builder policies](https://help.zooniverse.org/getting-started/lab-policies).',
+          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        },
+        talk: {
+          title: '### Talk',
+          intro: '“Talk” is the name for the discussion boards attached to your project. On your Talk, volunteers will be able to discuss your project and subjects with each other, as well as with you and your project’s researchers. **Maintaining a vibrant and active Talk is important for keeping your volunteers engaged with your project.** Conversations on Talk also can lead to additional research discoveries.',
+          details: 'You can use this page to set up the initial Talk boards for your project. We highly recommend first activating the default subject-discussion board, which hosts a single dedicated conversation for each subject. After that, you can add additional boards, where each board will host conversation about a general topic. Example boards might include: “Announcements,” “Project Discussion,” “Questions for the Research Team,” or “Technical Support.”'
+        },
+        dataExports: {
+          title: '### Data Exports',
+          intro: 'In this section you can request data exports for your Project Data (CSV format) and Talk Data (JSON format). Note that the Zooniverse will process at most 1 of each export within a 24-hour period and some exports may take a long time to process. We will email you when they are ready. For examples of how to work with the data exports see our [Data Digging code repository](https://github.com/zooniverse/Data-digging).'
+        },
+        workflowDetails: {
+          title: '### Workflow Details',
+          introduction: 'Note that a workflow with fewer tasks is easier for volunteers to complete. We know from surveys of our volunteers that many people classify in their limited spare time, and sometimes they only have a few minutes. Longer, more complex workflows mean each classification takes longer, so if your workflow is very long you may lose volunteers.',
+          workflowTitle: '* **Workflow title:** Give your workflow a short, but descriptive name. If you have multiple workflows and give volunteers the option of choosing which they want to work on, this Workflow title will appear on a button instead of "Get started!"',
+          version: '* **Version:** Version indicates which version of the workflow you are on. Every time you save changes to a workflow, you create a new version. Big changes, like adding or deleting questions, will change the version by a whole number: 1.0 to 2.0, etc. Smaller changes, like modifying the help text, will change the version by a decimal, e.g. 2.0 to 2.1. The version is tracked with each classification in case you need it when analyzing your data.',
+          tasks: '* **Tasks:** There are two main types of tasks: questions and drawing. For question tasks, the volunteer chooses from a list of answers but does not mark or draw on the image. In drawing tasks, the volunteer marks or draws directly on the image using tools that you specify. They can also give sub-classifications for each mark. Note that you can set the first task from the drop-down menu.',
+          mainText: '* **Main Text:** Describe the task, or ask the question, in a way that is clear to a non-expert. The wording here is very important, because you will in general get what you ask for. Solicit opinions from team members and testers before you make the project public: it often takes a few tries to reach the combination of simplicity and clarity that will guide your volunteers to give you the inputs you need. You can use markdown in the main text.',
+          helpText: '* **Help Text:** Add text and images for a pop-up help window. This is shown next to the main text of the task in the main classification interface, when the volunteer clicks a button asking for help. You can use markdown in this text, and link to other images to help illustrate your description. The help text can be as long as you need, but you should try to keep it simple and avoid jargon. One thing that is useful in the help text is a concise description of why you are asking for this information.',
+          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        },
+        createTasks: {
+          title: '### Create Tasks',
+          body: 'Create tasks with the "Add a task" button. Delete tasks with the "Delete this task" button under the “Choices” box.'
+        },
+        taskContent: {
+          title: '### Task Content',
+          body: 'Tasks can be Questions, Drawings or Transcription. All types have "Main Text" boxes where you can ask your questions or tell users what to draw, as well as provide additional support for completing the task in the "Help Text" box.'
+        },
+        questions: {
+          title: '#### Questions',
+          intro: 'Choices: This section contains all your answers. The key features of this section are:',
+          required: '- **Required:** if you select this, the user has to answer the question before moving on.',
+          multiple: '- **Multiple:** if you select this, the user can select more than one answer - use this for "select all that apply" type questions.',
+          nextTask: '- **Next Task:** The “Next task” selection (which appears below the text box for each answer) describes what task you want the volunteer to perform next after they give a particular answer. You can choose from among the tasks you’ve already defined. If you want to link a task to another you haven’t built yet, you can come back and do it later (don’t forget to save your changes).'
+        },
+        drawing: {
+          title: '#### Drawing',
+          intro: 'This section contains all the different things people can mark. We call each separate option a "Tool" and you can specify a label, colour, and tool type for each option. Check out the [Aggregation documents](https://aggregation-caesar.zooniverse.org/docs) to understand how multiple volunteer answers are turned into final shapes for your data analysis. The tool types are:',
+          bezier: '- **bezier:** an arbitrary shape made of point-to-point curves. The midpoint of each segment drawn can be dragged to adjust the curvature.',
+          circle: '- **circle:** a point and a radius.',
+          column: '- **column:** a box with full height but variable width; this tool *cannot* be rotated.',
+          ellipse: '- **ellipse:** an oval of any size and axis ratio; this tool *can* be rotated.',
+          line: '- **line:** a straight line at any angle.',
+          point: '- **point:** X marks the spot.',
+          polygon: '- **polygon:** an arbitrary shape made of point-to-point lines.',
+          rectangle: '- **rectangle:** a box of any size and length-width ratio; this tool *cannot* be rotated.',
+          triangle: '- **triangle:** an equilateral triangle of any size and vertex distance from the center; this tool *can* be rotated.',
+          gridTable: '- **grid table:** cells which can be made into a table for consecutive annotations.',
+          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        },
+        transcription: {
+          title: '#### Transcription',
+          intro: 'This section deals with projects which require user-generated text. Tasks can range from adding keywords or extracting metadata to full text transcriptions.',
+          keywordTagging: '- **Keyword tagging** is helpful when teams want to create a list of all of the things volunteers see in a given image, to make that object more discoverable in a database or online collection. In these cases diversity of opinion is helpful. Setting a retirement rate of 5 to 10 people will help capture diverse opinions.',
+          fullTextTranscription: '- **Full text transcription** is more cumbersome and diversity of opinion is less helpful. Teams are usually trying to capture exactly what is on a page, so it will help to set a relatively low retirement rate for each image (i.e. 3 or 5) and be very clear in the tutorial how you would like volunteers to transcribe. Should they preserve spelling and punctuation or modernize it?',
+          aggregatedClassifications: '- Zooniverse does not currently offer aggregated classifications for text subjects. We can only report what each user transcribed for each subject. Before embarking on a transcription project be sure you have in-house expertise or access to expertise for combining multiple independent transcriptions into a single reading that you could use for research or to upload into a library or museum catalogue or content management system. For more information on Project Builder Data, please visit our [Data Digging code repository](https://github.com/zooniverse/Data-digging) as well as our [Data processing Talk board](https://www.zooniverse.org/talk/1322).'
+        },
+        linking: {
+          title: '#### Linking the workflow together',
+          intro: 'Now that all the tasks have been created, we\'ve got to string them together by specifying what happens *next*. Set your first task using the "First Task" drop-down menu below the "Add Task" button. Then, using the “Next task” drop-down under the “Choices” box, specify *what comes next*. In question tasks, you can specify different "Next Tasks" for each available answer (provided users can only select one answer).',
+          multiImageOptions: '**Multi-Image options:** If your tasks require users to see multiple subjects per task (like on [Snapshot Serengeti](https://www.snapshotserengeti.org)), decide how users will see them. The Flipbook option means users have to press a button to switch between subjects, while separate frames mean that each subject will be visible for the duration of the classification task.',
+          subjectRetirement: '**Subject retirement:** Decide how many people you want to complete each task. You can change this number at any point (particularly after beta review). We suggest starting out high, between 10 and 20.'
+        },
+        subjectSets: {
+          title: '### Subject Sets',
+          intro: 'On this page, you can add groups of data to be classified.',
+          summary: 'To do so, drag and drop items onto the drop zone in the browser and then upload. You can give each set a name so that you can easily distinguish between them.',
+          details: 'Subject sets can be pretty powerful, and sometimes complex. You can have a single subject set that you add to over time, or have multiple subject sets, say, from different years or places. You can have different subject sets for different workflows, but you don\'t have to. You can even have multiple images in a given subject. For more details and advice on creating and structuring subject sets and associated manifests, check out https://www.zooniverse.orghttps://help.zooniverse.org/getting-started/example and scroll down to DETAILS - Subject sets and manifest details, a.k.a. “What is a manifest?”'
+        },
+        furtherHelp: {
+          title: '## Further Help',
+          body: 'If you\'d like some further information, check out the [documentation behind building Kitteh Zoo](https://help.zooniverse.org/getting-started/example), that talks you through building this project in the Project Builder.\n\nIf this doesn\'t help, get in contact with the Zooniverse team via the [contact page](/about/contact).',
+          backToTop: '[Back to top](#how-to-create-a-project-with-our-project-builder)'
+        }
+      }
     }
   },
-  userSettings: {
+ userSettings: {
     account: {
-      displayName: 'Display name (required)',
-      displayNameHelp: 'How your name will appear to other users in Talk and on your Profile Page',
-      realName: 'Real name (optional)',
-      realNameHelp: 'Public; we’ll use this to give acknowledgement in papers, on posters, etc.',
+      displayName: 'Nickname (obbligatorio)',
+      displayNameHelp: 'Questo è il nome con cui apparirai agli altri utenti in Talk e nella tua pagina del profilo',
+      realName: 'Nome reale (facoltativo)',
+      realNameHelp: 'Pubblico; questo nome verrà utilizzato per ringraziare o citare i volontari. Es: pubblicazioni, poster scientifici, ecc...',
+	  interventions: 'Show project intervention notifications.',
+      interventionsHelp: 'Permetti ai progetti di notificare messaggi mentre stai classificando.',
+      interventionsPreferences: 'Preferenze di notifica',
       changePassword: {
-        heading: 'Change your password',
-        currentPassword: 'Current password (required)',
-        newPassword: 'New password (required)',
-        tooShort: 'That’s too short',
-        confirmNewPassword: 'Confirm new password (required)',
-        doesntMatch: 'These don’t match',
-        change: 'Change'
+        heading: 'Modifica della password',
+        currentPassword: 'Password attuale (campo obbligatorio)',
+        newPassword: 'Nuova password (campo obbligatorio)',
+        tooShort: 'La password è troppo corta',
+        confirmNewPassword: 'Ridigitare la nuova password (campo obbligatorio)',
+        doesntMatch: 'Le password non sono identiche',
+        change: 'Modificare'
       }
     },
     profile: {
-      dropImage: 'Drop an image here (or click to select).',
-      changeAvatar: 'Change avatar',
-      avatarImageHelp: 'Drop an image here (square, less than %(size)s KB)',
-      clearAvatar: 'Clear avatar',
+      dropImage: 'Trascina qui un\'immagine (oppure fai click per selezionarla).',
+      changeAvatar: 'Modifica avatar',
+      avatarImageHelp: 'Trascina qui un\'immagine (deve essere quadrata e più minore di %(size)s KB)',
+      clearAvatar: 'Elimina avatar',
       changeProfileHeader: 'Change profile header',
-      profileHeaderImageHelp: 'Drop an image here (any dimensions, less than %(size)s KB)',
+      profileHeaderImageHelp: 'Trascina qui un\'immagine (è accettata qualsiasi dimensione, e più piccola di %(size)s KB)',
       clearHeader: 'Clear header'
     }
   }
diff --git a/app/pages/notifications/notification-section.jsx b/app/pages/notifications/notification-section.jsx
index b1f5af82..ee96537d 100644
--- a/app/pages/notifications/notification-section.jsx
+++ b/app/pages/notifications/notification-section.jsx
@@ -31,11 +31,11 @@ export default class NotificationSection extends Component {
         name: 'Zooniverse'
       });
     } else {
-      apiClient.type('projects').get({ id: this.props.projectID, cards: true })
+      apiClient.type('projects').get(this.props.projectID)
       .catch((error) => {
         this.setState({ error });
       })
-      .then(([project]) => {
+      .then((project) => {
         this.setState({
           name: project.display_name,
           avatar: project.avatar_src
diff --git a/app/pages/project/classify.jsx b/app/pages/project/classify.jsx
index 3f751dbb..890f1eae 100644
--- a/app/pages/project/classify.jsx
+++ b/app/pages/project/classify.jsx
@@ -19,6 +19,7 @@ import Classifier from '../../classifier';
 import FinishedBanner from './finished-banner';
 import WorkflowAssignmentDialog from '../../components/workflow-assignment-dialog';
 import ProjectThemeButton from './components/ProjectThemeButton';
+import WorkflowSelection from './workflow-selection';
 import { zooTheme } from '../../theme';
 
 function onClassificationSaved(actualClassification) {
@@ -270,20 +271,30 @@ export class ProjectClassifyPage extends React.Component {
 
   render() {
     return (
-      <div
-        className={`${(this.props.theme === zooTheme.mode.light) ? 'classify-page' : 'classify-page classify-page--dark-theme'}`}
+      <WorkflowSelection
+        actions={this.props.actions}
+        location={this.props.location}
+        preferences={this.props.preferences}
+        project={this.props.project}
+        projectRoles={this.props.projectRoles}
+        translations={this.props.translations}
+        user={this.props.user}
       >
-        <Helmet title={`${this.props.project.display_name} » ${counterpart('project.classifyPage.title')}`} />
+        <div
+          className={`${(this.props.theme === zooTheme.mode.light) ? 'classify-page' : 'classify-page classify-page--dark-theme'}`}
+        >
+          <Helmet title={`${this.props.project.display_name} » ${counterpart('project.classifyPage.title')}`} />
 
-        {this.props.projectIsComplete &&
-          <FinishedBanner project={this.props.project} />}
+          {this.props.projectIsComplete &&
+            <FinishedBanner project={this.props.project} />}
 
-        {this.state.validUserGroup &&
-          <p className="anouncement-banner--group">You are classifying as a student of your classroom.</p>}
+          {this.state.validUserGroup &&
+            <p className="anouncement-banner--group">You are classifying as a student of your classroom.</p>}
 
-        {this.props.workflow ? this.renderClassifier() : <p>Loading workflow</p>}
-        <ProjectThemeButton />
-      </div>
+          {this.props.workflow ? this.renderClassifier() : <p>Loading workflow</p>}
+          <ProjectThemeButton />
+        </div>
+      </WorkflowSelection>
     );
   }
 }
diff --git a/app/pages/project/components/ProjectNavbar/ProjectNavbarContainer.jsx b/app/pages/project/components/ProjectNavbar/ProjectNavbarContainer.jsx
index b811cfa1..3f099e78 100644
--- a/app/pages/project/components/ProjectNavbar/ProjectNavbarContainer.jsx
+++ b/app/pages/project/components/ProjectNavbar/ProjectNavbarContainer.jsx
@@ -46,8 +46,8 @@ class ProjectNavbarContainer extends Component {
   }
 
   getProjectLinks() {
-    const { project, projectRoles, user, workflow } = this.props;
-    const links = getProjectLinks({ project, projectRoles, workflow, user });
+    const { project, projectRoles, user } = this.props;
+    const links = getProjectLinks({ project, projectRoles, user });
 
     return _.map(links, link => ({
       disabled: link.disabled || false,
@@ -115,8 +115,7 @@ ProjectNavbarContainer.propTypes = {
   translation: PropTypes.shape({
     display_name: PropTypes.string
   }),
-  user: PropTypes.object,
-  workflow: PropTypes.object
+  user: PropTypes.object
 };
 
 export default ProjectNavbarContainer;
diff --git a/app/pages/project/components/ProjectNavbar/components/NavLink/NavLink.spec.js b/app/pages/project/components/ProjectNavbar/components/NavLink/NavLink.spec.js
index 63bd8358..82b22620 100644
--- a/app/pages/project/components/ProjectNavbar/components/NavLink/NavLink.spec.js
+++ b/app/pages/project/components/ProjectNavbar/components/NavLink/NavLink.spec.js
@@ -27,10 +27,10 @@ describe('NavLink', function() {
 
   describe('when the link is disabled', function() {
     it('should be the StyledLinkPlaceholder component ', function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow: null, user: null });
+      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: null });
       const navLinksWithLabels = buildLinksWithLabels(navLinks);
       const classifyLink = navLinksWithLabels[1];
-      const wrapper = shallow(<NavLink url={classifyLink.url} label={classifyLink.label} disabled={classifyLink.disabled} />);
+      const wrapper = shallow(<NavLink url={classifyLink.url} label={classifyLink.label} disabled={true} />);
       expect(wrapper.name()).to.equal('styled.span');
     });
   });
@@ -39,7 +39,7 @@ describe('NavLink', function() {
     let wrapper;
     let firstLink;
     before(function() {
-      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, workflow, user: null });
+      const navLinks = getProjectLinks({ project: projectWithoutRedirect, projectRoles, user: null });
       const navLinksWithLabels = buildLinksWithLabels(navLinks);
       firstLink = navLinksWithLabels[0];
       wrapper = shallow(<NavLink url={firstLink.url} label={firstLink.label} />);
diff --git a/app/pages/project/home/project-home.jsx b/app/pages/project/home/project-home.jsx
index 1ab14020..eb94a95f 100644
--- a/app/pages/project/home/project-home.jsx
+++ b/app/pages/project/home/project-home.jsx
@@ -16,6 +16,7 @@ import ExternalLinksBlock from '../../../components/ExternalLinksBlock';
 
 const ProjectHomePage = (props) => {
   const projectIsNotRedirected = props.project && !props.project.redirect;
+  const canClassify = props.project.links.active_workflows && props.project.links.active_workflows.length > 0;
   const avatarSrc = props.researcherAvatar || '/assets/simple-avatar.png';
 
   const descriptionClass = classnames(
@@ -60,7 +61,7 @@ const ProjectHomePage = (props) => {
             <Link to={`/projects/${props.project.slug}/about`} className="project-home-page__button call-to-action__button call-to-action__button--learn-more">
               <Translate content="project.home.learnMore" />
             </Link>}
-          {showGetStartedLink &&
+          {canClassify && showGetStartedLink &&
             <VisibilitySplit splits={props.splits} splitKey='workflow.assignment' elementKey='link'>
               <Link
                 to={`/projects/${props.project.slug}/classify`}
diff --git a/app/pages/project/home/project-home.spec.js b/app/pages/project/home/project-home.spec.js
index d56ff722..1ce44c2e 100644
--- a/app/pages/project/home/project-home.spec.js
+++ b/app/pages/project/home/project-home.spec.js
@@ -26,7 +26,10 @@ const project = {
       site: 'facebook.com/',
       url: 'https://www.facebook.com/find-the-thing'
     }
-  ]
+  ],
+  links: {
+    active_workflows: ['1']
+  }
 };
 
 const talkSubjects = [
diff --git a/app/pages/project/index.jsx b/app/pages/project/index.jsx
index 0cebe86b..cdc4f422 100644
--- a/app/pages/project/index.jsx
+++ b/app/pages/project/index.jsx
@@ -15,7 +15,6 @@ import * as interventionActions from '../../redux/ducks/interventions';
 import * as translationActions from '../../redux/ducks/translations';
 import ProjectPage from './project-page';
 import ProjectTranslations from './project-translations';
-import WorkflowSelection from './workflow-selection';
 import getAllLinked from '../../lib/get-all-linked';
 
 counterpart.registerTranslations('en', require('../../locales/en').default);
@@ -367,34 +366,24 @@ class ProjectPageController extends React.Component {
           <ProjectTranslations
             project={this.state.project}
           >
-            <WorkflowSelection
-              actions={this.props.actions}
-              location={this.props.location}
+            <ProjectPage
+              {...this.props}
+              background={this.state.background}
+              guide={this.state.guide}
+              guideIcons={this.state.guideIcons}
+              loading={this.state.loading}
+              organization={this.state.organization}
+              owner={this.state.owner}
+              pages={this.state.pages}
               preferences={this.state.projectPreferences}
               project={this.state.project}
+              projectAvatar={this.state.projectAvatar}
+              projectIsComplete={this.state.projectIsComplete}
               projectRoles={this.state.projectRoles}
-              translations={this.props.translations}
-              user={this.props.user}
-            >
-              <ProjectPage
-                {...this.props}
-                background={this.state.background}
-                guide={this.state.guide}
-                guideIcons={this.state.guideIcons}
-                loading={this.state.loading}
-                organization={this.state.organization}
-                owner={this.state.owner}
-                pages={this.state.pages}
-                preferences={this.state.projectPreferences}
-                project={this.state.project}
-                projectAvatar={this.state.projectAvatar}
-                projectIsComplete={this.state.projectIsComplete}
-                projectRoles={this.state.projectRoles}
-                requestUserProjectPreferences={this.requestUserProjectPreferences.bind(this)}
-                splits={this.state.splits}
-                workflow={this.props.workflow}
-              />
-            </WorkflowSelection>
+              requestUserProjectPreferences={this.requestUserProjectPreferences.bind(this)}
+              splits={this.state.splits}
+              workflow={this.props.workflow}
+            />
           </ProjectTranslations>
         }
         {!!this.state.loading &&
diff --git a/app/pages/project/project-page.jsx b/app/pages/project/project-page.jsx
index a984d47a..9f136402 100644
--- a/app/pages/project/project-page.jsx
+++ b/app/pages/project/project-page.jsx
@@ -42,7 +42,6 @@ export default class ProjectPage extends React.Component {
           routes={this.props.routes}
           user={this.props.user}
           translation={this.props.translation}
-          workflow={this.props.workflow}
         />
         {(this.props.project.configuration && this.props.project.configuration.announcement) &&
           <div className="informational project-announcement-banner">
diff --git a/app/pages/project/project-page.spec.js b/app/pages/project/project-page.spec.js
index 57b49bf3..810c07b9 100644
--- a/app/pages/project/project-page.spec.js
+++ b/app/pages/project/project-page.spec.js
@@ -4,7 +4,7 @@ import { shallow, mount } from 'enzyme';
 import { expect } from 'chai';
 import sinon from 'sinon';
 import GeordiLogger from '../../lib/zooniverse-logging';
-import { project } from '../dev-classifier/mock-data';
+import { projectWithoutRedirect } from '../../../test/mockObjects';
 import ProjectPage from './project-page';
 import ProjectNavbar from './components/ProjectNavbar';
 import ProjectHomeContainer from './home/';
@@ -22,6 +22,8 @@ function Page() {
 }
 
 describe('ProjectPage', function () {
+  const project = projectWithoutRedirect;
+
   it('should render without crashing', function () {
     shallow(<ProjectPage><Page /></ProjectPage>);
   });
diff --git a/app/pages/project/workflow-selection.jsx b/app/pages/project/workflow-selection.jsx
index 8937bfbc..47af88d5 100644
--- a/app/pages/project/workflow-selection.jsx
+++ b/app/pages/project/workflow-selection.jsx
@@ -20,21 +20,14 @@ class WorkflowSelection extends React.Component {
     this.getSelectedWorkflow(this.props);
   }
 
-  componentWillUpdate(nextProps, nextState) {
-    const { preferences } = nextProps;
+  componentDidUpdate(prevProps, prevState) {
+    const { preferences, workflow } = this.props;
     const userSelectedWorkflow = (preferences && preferences.preferences) ? this.sanitiseID(preferences.preferences.selected_workflow) : undefined;
-    if (userSelectedWorkflow &&
-      this.props.workflow
-    ) {
-      if (!nextState.loadingSelectedWorkflow &&
-        userSelectedWorkflow !== this.props.workflow.id
-      ) {
-        this.getSelectedWorkflow(nextProps);
+    if (userSelectedWorkflow && workflow) {
+      if (!this.state.loadingSelectedWorkflow && userSelectedWorkflow !== workflow.id) {
+        this.getSelectedWorkflow(this.props);
       }
     }
-  }
-
-  componentDidUpdate(prevProps, prevState) {
     if (prevProps.project.id !== this.props.project.id) {
       this.getSelectedWorkflow(this.props);
     }
diff --git a/app/talk/board.cjsx b/app/talk/board.cjsx
index d5537d85..13c0080c 100644
--- a/app/talk/board.cjsx
+++ b/app/talk/board.cjsx
@@ -42,7 +42,6 @@ module.exports = createReactClass
     author_roles: {}
     subjects: {}
     board: {}
-    discussionsMeta: {}
     newDiscussionOpen: false
     loading: true
     moderationOpen: false
@@ -50,14 +49,63 @@ module.exports = createReactClass
   getDefaultProps: ->
     location: query: page: 1
 
-  componentWillReceiveProps: (nextProps) ->
-    unless nextProps.location.query.page is @props.location.query.page
-      @setDiscussions(nextProps.location.query.page ? 1)
-
-  componentWillMount: ->
+  componentDidMount: ->
     @setDiscussions(@props.location.query.page ? 1)
     @setBoard()
 
+  componentDidUpdate: (prevProps, prevState) ->
+    pageChanged = this.props.location.query.page isnt prevProps.location.query.page
+    discussionsChanged = @state.discussions.length isnt prevState.discussions.length
+    discussionPageChanged = @state.discussions[0]?.getMeta().page isnt prevState.discussions[0]?.getMeta().page
+    if pageChanged
+      @setDiscussions(@props.location.query.page ? 1)
+    if discussionsChanged or discussionPageChanged
+      subject_ids = []
+      author_ids = []
+      @state.discussions.forEach (discussion) ->
+        subject_ids.push discussion.focus_id if discussion.focus_id and discussion.focus_type is 'Subject'
+        author_ids.push discussion.latest_comment.user_id if discussion.latest_comment?
+      author_ids = author_ids.filter (id, i) -> author_ids.indexOf(id) is i
+      subject_ids = subject_ids.filter (id, i) -> subject_ids.indexOf(id) is i
+
+      awaitUsers = apiClient
+        .type 'users'
+        .get
+          id: author_ids
+        .then (users) =>
+          authors = users.reduce (authors, user) ->
+            authors[user.id] = user
+            authors
+          , {}
+
+      awaitRoles = talkClient
+        .type 'roles'
+        .get
+          user_id: author_ids
+          section: ['zooniverse', @props.section]
+          is_shown: true
+          page_size: 100
+        .then (roles) =>
+          author_roles = roles.reduce (author_roles, role) ->
+            author_roles[role.user_id] ?= []
+            author_roles[role.user_id].push role
+            author_roles
+          , {}
+
+      awaitSubjects = apiClient
+        .type 'subjects'
+        .get
+          id: subject_ids
+        .then (discussion_subjects) =>
+          subjects = discussion_subjects.reduce (subjects, subject) ->
+            subjects[subject.id] = subject
+            subjects
+          , {}
+
+      Promise.all([awaitUsers, awaitRoles, awaitSubjects])
+      .then ([authors, author_roles, subjects]) =>
+        @setState { authors, author_roles, subjects }
+
   logNewDiscuss: ->
     @context.geordi?.logEvent
       type: 'new-discussion'
@@ -70,46 +118,7 @@ module.exports = createReactClass
   setDiscussions: (page = @props.location.query.page) ->
     @discussionsRequest(page)
       .then (discussions) =>
-        subject_ids = []
-        author_ids = []
-        discussionsMeta = discussions[0]?.getMeta()
-        @setState {discussions, discussionsMeta, loading: false}
-        discussions.map (discussion) ->
-          subject_ids.push discussion.focus_id if discussion.focus_id and discussion.focus_type is 'Subject'
-          author_ids.push discussion.latest_comment.user_id if discussion.latest_comment?
-        author_ids = author_ids.filter (id, i) -> author_ids.indexOf(id) is i
-        subject_ids = subject_ids.filter (id, i) -> subject_ids.indexOf(id) is i
-
-        apiClient
-          .type 'users'
-          .get
-            id: author_ids
-          .then (users) =>
-            users.map (user) =>
-              @setState (prevState, props) ->
-                prevState.authors[user.id] = user
-
-        talkClient
-          .type 'roles'
-          .get
-            user_id: author_ids
-            section: ['zooniverse', @props.section]
-            is_shown: true
-            page_size: 100
-          .then (roles) =>
-            roles.map (role) =>
-              @setState (prevState, props) ->
-                prevState.author_roles[role.user_id] ?= []
-                prevState.author_roles[role.user_id].push role
-
-        apiClient
-          .type 'subjects'
-          .get
-            id: subject_ids
-          .then (discussion_subjects) =>
-            discussion_subjects.map (subject) =>
-              @setState (prevState, props) ->
-                prevState.subjects[subject.id] = subject
+        @setState {discussions, loading: false}
 
   boardRequest: ->
     id = @props.params.board.toString()
@@ -203,6 +212,7 @@ module.exports = createReactClass
 
   render: ->
     {board} = @state
+    discussionsMeta = @state.discussions[0]?.getMeta()
 
     <div className="talk-board">
       <Helmet title="#{board?.title} » #{counterpart 'projectTalk.title'}" />
@@ -313,5 +323,5 @@ module.exports = createReactClass
         </div>
       </div>
 
-      <Paginator page={+@state.discussionsMeta?.page} pageCount={@state.discussionsMeta?.page_count} />
+      <Paginator page={discussionsMeta?.page} pageCount={discussionsMeta?.page_count} />
     </div>
diff --git a/app/talk/lib/paginator.cjsx b/app/talk/lib/paginator.cjsx
index 4b2eaa9d..c7e3c5cc 100644
--- a/app/talk/lib/paginator.cjsx
+++ b/app/talk/lib/paginator.cjsx
@@ -88,10 +88,12 @@ module.exports = createReactClass
       </button>
 
       {if @props.pageSelector
+        firstPage = Math.max 1, page - 5
+        lastPage = Math.min pageCount, firstPage + 9
         <div className="paginator-page-selector">
           Page&nbsp;
           <select value={page} onChange={@onSelectPage} ref="pageSelect">
-            {[1..pageCount].map(@pageOption)}
+            {[firstPage..lastPage].map(@pageOption)}
           </select> of {pageCount}
         </div>
         }
diff --git a/package-lock.json b/package-lock.json
index 3b4b14aa..fe694912 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,21 +39,21 @@
       }
     },
     "@babel/core": {
-      "version": "7.1.5",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.5.tgz",
-      "integrity": "sha512-vOyH020C56tQvte++i+rX2yokZcRfbv/kKcw+/BCRw/cK6dvsr47aCzm8oC1XHwMSEWbqrZKzZRLzLnq6SFMsg==",
+      "version": "7.1.6",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.6.tgz",
+      "integrity": "sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
-        "@babel/generator": "^7.1.5",
+        "@babel/generator": "^7.1.6",
         "@babel/helpers": "^7.1.5",
-        "@babel/parser": "^7.1.5",
+        "@babel/parser": "^7.1.6",
         "@babel/template": "^7.1.2",
-        "@babel/traverse": "^7.1.5",
-        "@babel/types": "^7.1.5",
+        "@babel/traverse": "^7.1.6",
+        "@babel/types": "^7.1.6",
         "convert-source-map": "^1.1.0",
-        "debug": "^3.1.0",
-        "json5": "^0.5.0",
+        "debug": "^4.1.0",
+        "json5": "^2.1.0",
         "lodash": "^4.17.10",
         "resolve": "^1.3.2",
         "semver": "^5.4.1",
@@ -61,12 +61,12 @@
       },
       "dependencies": {
         "@babel/generator": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.5.tgz",
-          "integrity": "sha512-IO31r62xfMI+wBJVmgx0JR9ZOHty8HkoYpQAjRWUGG9vykBTlGHdArZ8zoFtpUu2gs17K7qTl/TtPpiSi6t+MA==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.6.tgz",
+          "integrity": "sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.1.5",
+            "@babel/types": "^7.1.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.10",
             "source-map": "^0.5.0",
@@ -74,9 +74,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.5.tgz",
-          "integrity": "sha512-WXKf5K5HT6X0kKiCOezJZFljsfxKV1FpU8Tf1A7ZpGvyd/Q4hlrJm2EwoH2onaUq3O4tLDp+4gk0hHPsMyxmOg==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.6.tgz",
+          "integrity": "sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==",
           "dev": true
         },
         "@babel/template": {
@@ -91,26 +91,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.5.tgz",
-          "integrity": "sha512-eU6XokWypl0MVJo+MTSPUtlfPePkrqsF26O+l1qFGlCKWwmiYAYy2Sy44Qw8m2u/LbPCsxYt90rghmqhYMGpPA==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz",
+          "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.1.5",
+            "@babel/generator": "^7.1.6",
             "@babel/helper-function-name": "^7.1.0",
             "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.1.5",
-            "@babel/types": "^7.1.5",
-            "debug": "^3.1.0",
+            "@babel/parser": "^7.1.6",
+            "@babel/types": "^7.1.6",
+            "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.10"
           }
         },
         "@babel/types": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.5.tgz",
-          "integrity": "sha512-sJeqa/d9eM/bax8Ivg+fXF7FpN3E/ZmTrWbkk6r+g7biVYfALMnLin4dKijsaqEhpd2xvOGfQTkQkD31YCVV4A==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.6.tgz",
+          "integrity": "sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==",
           "dev": true,
           "requires": {
             "esutils": "^2.0.2",
@@ -119,18 +119,33 @@
           }
         },
         "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
+          "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
           "dev": true,
           "requires": {
             "ms": "^2.1.1"
           }
         },
         "globals": {
-          "version": "11.8.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
-          "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
+          "version": "11.9.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
+          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
+          "dev": true
+        },
+        "json5": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
+          "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
           "dev": true
         },
         "ms": {
@@ -387,12 +402,12 @@
       },
       "dependencies": {
         "@babel/generator": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.5.tgz",
-          "integrity": "sha512-IO31r62xfMI+wBJVmgx0JR9ZOHty8HkoYpQAjRWUGG9vykBTlGHdArZ8zoFtpUu2gs17K7qTl/TtPpiSi6t+MA==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.6.tgz",
+          "integrity": "sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.1.5",
+            "@babel/types": "^7.1.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.10",
             "source-map": "^0.5.0",
@@ -400,9 +415,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.5.tgz",
-          "integrity": "sha512-WXKf5K5HT6X0kKiCOezJZFljsfxKV1FpU8Tf1A7ZpGvyd/Q4hlrJm2EwoH2onaUq3O4tLDp+4gk0hHPsMyxmOg==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.6.tgz",
+          "integrity": "sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==",
           "dev": true
         },
         "@babel/template": {
@@ -417,26 +432,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.5.tgz",
-          "integrity": "sha512-eU6XokWypl0MVJo+MTSPUtlfPePkrqsF26O+l1qFGlCKWwmiYAYy2Sy44Qw8m2u/LbPCsxYt90rghmqhYMGpPA==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz",
+          "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.1.5",
+            "@babel/generator": "^7.1.6",
             "@babel/helper-function-name": "^7.1.0",
             "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.1.5",
-            "@babel/types": "^7.1.5",
-            "debug": "^3.1.0",
+            "@babel/parser": "^7.1.6",
+            "@babel/types": "^7.1.6",
+            "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.10"
           }
         },
         "@babel/types": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.5.tgz",
-          "integrity": "sha512-sJeqa/d9eM/bax8Ivg+fXF7FpN3E/ZmTrWbkk6r+g7biVYfALMnLin4dKijsaqEhpd2xvOGfQTkQkD31YCVV4A==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.6.tgz",
+          "integrity": "sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==",
           "dev": true,
           "requires": {
             "esutils": "^2.0.2",
@@ -445,18 +460,18 @@
           }
         },
         "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
+          "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
           "dev": true,
           "requires": {
             "ms": "^2.1.1"
           }
         },
         "globals": {
-          "version": "11.8.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
-          "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
+          "version": "11.9.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
+          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
           "dev": true
         },
         "ms": {
@@ -783,9 +798,9 @@
       },
       "dependencies": {
         "globals": {
-          "version": "11.8.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
-          "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
+          "version": "11.9.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
+          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
           "dev": true
         }
       }
@@ -993,9 +1008,9 @@
       }
     },
     "@babel/plugin-transform-react-jsx": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz",
-      "integrity": "sha512-0TMP21hXsSUjIQJmu/r7RiVxeFrXRcMUigbKu0BLegJK9PkYodHstaszcig7zxXfaBji2LYUdtqIkHs+hgYkJQ==",
+      "version": "7.1.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.1.6.tgz",
+      "integrity": "sha512-iU/IUlPEYDRwuqLwqVobzPAZkBOQoZ9xRTBmj6ANuk5g/Egn/zdNGnXlSoKeNmKoYVeIRxx5GZhWmMhLik8dag==",
       "dev": true,
       "requires": {
         "@babel/helper-builder-react-jsx": "^7.0.0",
@@ -1152,9 +1167,9 @@
       }
     },
     "@babel/preset-env": {
-      "version": "7.1.5",
-      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.1.5.tgz",
-      "integrity": "sha512-pQ+2o0YyCp98XG0ODOHJd9z4GsSoV5jicSedRwCrU8uiqcJahwQiOq0asSZEb/m/lwyu6X5INvH/DSiwnQKncw==",
+      "version": "7.1.6",
+      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.1.6.tgz",
+      "integrity": "sha512-YIBfpJNQMBkb6MCkjz/A9J76SNCSuGVamOVBgoUkLzpJD/z8ghHi9I42LQ4pulVX68N/MmImz6ZTixt7Azgexw==",
       "dev": true,
       "requires": {
         "@babel/helper-module-imports": "^7.0.0",
@@ -2851,9 +2866,9 @@
       "optional": true
     },
     "caniuse-lite": {
-      "version": "1.0.30000906",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000906.tgz",
-      "integrity": "sha512-ME7JFX6h0402om/nC/8Lw+q23QvPe2ust9U0ntLmkX9F2zaGwq47fZkjlyHKirFBuq1EM+T/LXBcDdW4bvkCTA==",
+      "version": "1.0.30000907",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000907.tgz",
+      "integrity": "sha512-No5sQ/OB2Nmka8MNOOM6nJx+Hxt6MQ6h7t7kgJFu9oTuwjykyKRSBP/+i/QAyFHxeHB+ddE0Da1CG5ihx9oehQ==",
       "dev": true
     },
     "caseless": {
@@ -4320,9 +4335,9 @@
       "dev": true
     },
     "electron-to-chromium": {
-      "version": "1.3.83",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz",
-      "integrity": "sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA==",
+      "version": "1.3.84",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz",
+      "integrity": "sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==",
       "dev": true
     },
     "element-resize-detector": {
@@ -8464,9 +8479,9 @@
       }
     },
     "jsesc": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
-      "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
       "dev": true
     },
     "json-api-client": {
@@ -8934,9 +8949,9 @@
       }
     },
     "marked": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.1.tgz",
-      "integrity": "sha1-Bi9DuIsC7oCQHo6NjmpiDds6p1I=",
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.2.tgz",
+      "integrity": "sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA==",
       "dev": true
     },
     "md5.js": {
diff --git a/package.json b/package.json
index 95e2eb38..3f289849 100644
--- a/package.json
+++ b/package.json
@@ -54,13 +54,13 @@
   },
   "devDependencies": {
     "@babel/cli": "~7.1.5",
-    "@babel/core": "~7.1.5",
+    "@babel/core": "~7.1.6",
     "@babel/node": "^7.0.0",
     "@babel/plugin-proposal-class-properties": "^7.0.0",
     "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
     "@babel/plugin-transform-object-assign": "^7.0.0",
-    "@babel/plugin-transform-react-jsx": "^7.0.0",
-    "@babel/preset-env": "^7.1.5",
+    "@babel/plugin-transform-react-jsx": "^7.1.6",
+    "@babel/preset-env": "^7.1.6",
     "@babel/preset-react": "^7.0.0",
     "@babel/register": "~7.0.0",
     "babel-eslint": "~10.0.0",
@@ -90,7 +90,7 @@
     "file-loader": "~2.0.0",
     "html-webpack-plugin": "~3.2.0",
     "jsdom": "~13.0.0",
-    "marked": "~0.5.1",
+    "marked": "~0.5.2",
     "mini-css-extract-plugin": "~0.4.4",
     "nib": "~1.1.0",
     "nyc": "~13.1.0",


Test patch:
diff --git a/test/mockObjects.js b/test/mockObjects.js
index 2da4e9dd..6ba2e6be 100644
--- a/test/mockObjects.js
+++ b/test/mockObjects.js
@@ -41,14 +41,20 @@ export const projectWithoutRedirect = {
   id: '2',
   slug: 'zooniverse/find-the-thing',
   title: 'Find the Thing',
-  urls: [socialMediaUrl, externalUrl]
+  urls: [socialMediaUrl, externalUrl],
+  links: {
+    active_workflows: ['35']
+  }
 };
 
 export const projectWithRedirect = {
   id: '3',
   redirect: 'https://www.redirected-project.org',
   title: 'Find the Thing',
-  urls: [socialMediaUrl, externalUrl]
+  urls: [socialMediaUrl, externalUrl],
+  links: {
+    active_workflows: ['35']
+  }
 };
 
 export const workflow = { id: '35' };