
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
react-vitae
Advanced tools
react-vitae is a set of strongly typed and battle tested React components and hooks that enable you to connect a json-resume schema to your components and build great looking resumes from a standardized schema.
You can install react-vitae with NPM or Yarn.
npm install --save react-vitae or yarn add react-vitae
The main react-vitae package includes the TypeScript types for the standard JSON resume schema and a set of components.
The JSON resume repo provides all the tools to create and validate your resume file.
If using TypeScript, you can use the type suggestion and auto-completion feature of your IDE to create the schema using the provided types.
import { Resume } from 'react-vitae';
const resume: Resume = {};
The components need the resume file to be provided at the root of your application, if you have used redux or react-router before, this pattern should be familiar.
import { ResumeProvider } from 'react-vitae';
const resume = {};
export const App = () => (
<ResumeProvider resume={resume}>
{/* Your application goes here */}
</ResumeProvider>
);
The package exports a set of custom hooks to retrieve the resume or part of it.
useResume retrieves the main resume.useBasic retrieves the basic resume information.useWork retrieves the work experiences.useVolunteer retrieves the volunteer experiences.useEducation retrieves the education information.useAwards retrieves the list of awards.usePublications retrieves the list of publications.useSkills retrieves the list of skills.useLanguages retrieves the list of languages.useInterests retrieves the list of interests.useReferences retrieves the list of professional references.useProjects retrieves the list of projects.All have the same signature: useElement(): type and return type specific type they represent.
The package exports a set of hocs to retrieve the resume or part of it and inject them in an augmented component.
withResume retrieves the main resume.withBasic retrieves the basic resume information.withWork retrieves the work experiences.withVolunteer retrieves the volunteer experiences.withEducation retrieves the education information.withAwards retrieves the list of awards.withPublications retrieves the list of publications.withSkills retrieves the list of skills.withLanguages retrieves the list of languages.withInterests retrieves the list of interests.withReferences retrieves the list of professional references.withProjects retrieves the list of projects.All hocs will add a new prop to the augmented component named after the type in lowercase, for example.
import { withResume } from 'react-vitae';
const Component = ({ resume }) => {
// ...
};
export default withResume(Component);
The package exports a set of components to retrieve the resume or part of it and use them with the render prop pattern.
WithResume retrieves the main resume.WithBasic retrieves the basic resume information.WithWork retrieves the work experiences.WithVolunteer retrieves the volunteer experiences.WithEducation retrieves the education information.WithAwards retrieves the list of awards.WithPublications retrieves the list of publications.WithSkills retrieves the list of skills.WithLanguages retrieves the list of languages.WithInterests retrieves the list of interests.WithReferences retrieves the list of professional references.WithProjects retrieves the list of projects.They will all execute the render prop function with an object containing the resume element named after the retreived type in lowercase, for example.
import { WithResume } from 'react-vitae';
export const Component = () => (
<WithResume>
{({ resume }) => {
// ...
}}
</WithResume>
);
React-Vitae previously included two ready made themes to quickly create resumes with. These themes are deprecated and are only kept for reference.
See each theme's readme for instruction on usage and how to install them.
Any Pull Request will be reviewed and merged if it looks good, all help is appreciated!
Running npm install in the project's root directory will install everything you need for development.
npm lint will run eslint in all packages at once.
npm test will run the tests in all packages at once.
Publishing is done manually at the moment using the npm publish command.
FAQs
Build a personal resume in seconds with JSON resumes and React
We found that react-vitae demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.