Rougemine.com - online resume
What could be more pleasant than totally over-engineering your online resume when you're a Web Developer in 2017 ?
The previous version was based on PHP,
the version before on Node.js, CoffeeScript, Vagrant and gulp (2013! :-).
For this one I opted for a "full React" setup - including static files rendering. Sure, we have the great create-react-app to bootstrap a React project without pain, but I wanted to experiment things manually.
So, in order to generate only 2 HTML pages and 2 PDF files, I had the pleasure to use the following technologies:
- An "api" tiny Node.js app, which dumps the content of the YAML files I copy-pasted from my previous CV versions into 2 JSON files (one for each language) in the
It uses "*.mjs" files, enabled in the Node.js world thanks to @std/esm (the Node.js API for ES Modules is still experimental at the moment).
- A React app, powered by a classic Webpack+Babel configuration. Because this CV has to be over-engineered by tradition, Redux is here of course.
Webpack generates a JS file (the React app itself), CSS and img assets, and an almost empty "index.html" file as well - it only use these assets.
- A "React Server Side Rendering" Node.js app, powered by its own Webpack configuration - we need Babel and its friends to be able to render stuff like ECMAscript Modules or JSX in Node.js.
This app is responsible for the generation of complete "index.en.html" and "index.fr.html" files, based on the "index.html" generated by Webpack for the React app. These HTML files are fully populated with the HTML output of the React app, which then hydrates itself in the browser from this content.
Is it really over-engineered?
$ ll node_modules/ | wc -l 823
Yes it is!
# For a prod build with Google Analytics tracking: $ make install $ make build GA_TRACKING_ID=UA-XXXXXXXX-X
For development, see the NPM scripts defined in the root package.json file.
Excepted files in the "webapp/assets/img/icons/" folder, this app is licensed under the MIT license.