A simple, private website for your curriculum vitae
Designed for securing and sharing sensitive documents, links and downloads with small groups of people. Built in modern javascript. Intended for deployment to a serverless environment.
- file based - no databases or remote I/O
- zero javascript on the front-end, minimal dependencies otherwise
- limit access to documents with passphrases and time-limits
- URLs structured for no-nonsense metrics
- markdown-rendered pages and templates
- API access built-in
- deploys to Cloudflare Pages in <2mins
- HMAC-backed stateless authentication
See it in action: @theprojectsomething.com ← use the passphrase "let me in"
CVMS is currently optimised for deployment to Cloudflare Pages - designed to play very nicely at the low-end of the generous free tier. To deploy the site per the example below you'll need a Cloudflare account (also free).
- Clone the repo
git clone https://github.com/theprojectsomething/cvms.git
cd cv
- Install the app
npm install
- Publish to the edge 1
npm run publish
- Visit the published url and log in with the passphrase
let me in
You can enable basic, domain-scoped analytics for your application by following the instructions in env.local.example
to include the relevant information.
To view your admin-only analytics dashboard, first update the passphrase in routes/analytics/auth.json
(the default value is "analytics") and then re-deploy the application. Once deployed, enter your updated passphrase on the homepage. Analytics metrics will begin populating soon after deployment.
Further detail coming soon ...
- basic analytics for routes (CF GraphQL API)
- admin route to view stats
- component attributes / variables / placeholders
- markdown components
- live editing: edit routes / markdown (GH API)
Footnotes
-
A note for the wary: For those who live life far from the edge, or who simply prefer to test things locally before publishing to the world-wide-web, use
npm run dev
in place of step 3. ¯\_ (ツ)_/¯ ↩