Repository navigation
Releases: jorritvanderheide/new-leaf
Release list
New Leaf 0.8.0
- The bar with the language, the look and the pages floats over the
preview, and the PDF scrolls under it. On a phone the PDF shows up to the
version's header; on a larger screen it is cut off at the bar. - The CV menu shows the CV's photo instead of its initials, when it has one.
New Leaf 0.7.3
- On a phone, a zoomed preview reaches the edges of the screen, and the bar
with the language and the look keeps its space while the PDF scrolls
under it. - Keyboard shortcuts are shown as Ctrl (Ctrl+K, Ctrl+Z) instead of ⌘, in
the editor and the README. Ctrl works on a Mac too, as does ⌘. - Questions before something that can't be undone (stopping sharing,
deleting a CV or a shared version, replacing your CV with a backup or a
resume, removing your photo, discarding a new item), and the section for a
new item, are asked in dialogs like the editor's others, instead of the
browser's own. A tap outside one closes just that dialog. - A new item in a section with single dates, such as publications, closes
without asking to discard it when nothing was typed in it yet. - A backup has the CV's share links again. Since 0.7.0 they were left out,
so restoring a backup on a server took the CV's links offline.
New Leaf 0.7.2
- Sections can be dragged into a new order on a touchscreen too, by their
handle. - The "Add an item to another section" box has room before its "+".
- The rainbow button for a colour of your own is gone from Look for now; it
didn't work as it should. An accent you already picked stays. - A name over two lines has them about as long, and closer together, in the
PDF and on share pages. - On a phone, pinching the preview zooms the PDF rather than the whole
editor, and the pages are drawn sharp again once you let go.
New Leaf 0.7.1
- A new share link's address is 12 random characters, without the version's
name: that told whoever got a link what the version was made for, such as
another company's application. Links you already shared keep their address.
New Leaf 0.7.0
- A backup is checked as fully as opening the CV would: one with versions
that can't be read is refused, instead of restoring and then never
opening. - A backup may unpack to at most 100 MB and 5,000 files, so a small zip
can't fill the disk. - A photo may be at most 40 megapixels. A small file can claim to be a huge
image, which would take the server gigabytes to open; one already there is
left out of PDFs and share pages. - An item named after a long organisation, over 64 characters, can be saved:
its id is shortened. JSON Resume imports with one failed altogether. - A JSON Resume job with only an end date is imported as ending then, not as
going on until now. - Two small races: deleting two CVs at once could remove the last one, and a
restore could briefly take the CV's share pages offline. - One share page per link, with every language on it. It opens in the
language you choose when sharing (the version's, unless you pick another),
and visitors switch with the language buttons, on the same page and without
script. Addresses you already shared keep working:/<slug>/<lang>/sends
visitors on. A link is one file now,links/<slug>.md, withname,lang
andexpires. - One default accent. A version or link saved without an accent was teal,
from before green was the default; the migration writes teal into those, so
green is the default everywhere. - The CV format is now 2; CVs and backups move over when opened or restored.
- The NixOS option
manageInEditoris nowmanage, as the flag-manage. The
old name keeps working, with a warning, until 2.0. new-leaf serveneeds-public-url: it used to default to
https://cv.example.com, which made share links point there. The NixOS
module and the container always set it.- The container image is also tagged
X.YandX, so you can follow a major
version; release candidates no longer movelatest.
New Leaf 0.6.1
- Security: behind
tailscale serve, a tailnet user could sign in as
another by sending anX-Real-IPheader with their address. That
affects the NixOS module'stailscaleServeand the container; nginx was
safe. Update if you use either. - Security: a restored backup could take over another CV's share page. A
restored share link now keeps its address only if no other CV uses it. - Security: on your own computer, New Leaf only answers this computer,
also when-listenis set to an address the network can reach. Before, a
request from elsewhere that claimed to be forlocalhostgot in. - With
ownersOnly, acv.jsonthat can't be read closes its CV instead of
opening it to everyone. - Configured CVs (
users) can be given as a full tailnet login, for exactly
that login, which matters withownersOnlyon a tailnet with people from
other domains.
New Leaf 0.6.0
Changes
- A format version for CVs. The profile's shared fields (name, contact
details, links, languages and the defaults for new versions) are now in
content/_index.md, withformat: 1, and_index.<lang>.mdonly holds the
text. CVs and backups from before are moved over when they're opened or
restored. A New Leaf from before this release shows a CV that has been moved
over without its name and contact details, so download a backup before going
back to one. - Share links end in the server's time zone, instead of always in
Europe/Amsterdam. Set it with-timezone(NEW_LEAF_TIMEZONE, or
services.new-leaf.timeZone, which followstime.timeZone). The container
image's own time zone is UTC. - PDFs that machines read well. The name, sections and items are tagged
as headings, the sections are bookmarks, and the photo has alt text, so
screen readers and applicant tracking systems get the CV's structure. The
PDFs look exactly as before. - JSON Resume, in and out. Import one on the Profile page to start from a
CV made elsewhere, or download yours in one of its languages. Sections that
JSON Resume doesn't have go out as projects, and come back where they were. - CVs for their owners only, as an option for a tailnet shared with people
who shouldn't edit each other's CVs:-owners-only, or
services.new-leaf.ownersOnly. You own the CVs you make, and a configured
CV is owned by the person it's named after. A CV without owners stays open
to everyone until someone adds themselves. /healthzon the editor, for monitoring:ok, or503and what's
wrong. It needs no tailnet identity.- A stricter content security policy for the editor, without
unsafe-eval: Alpine is now its CSP build. A CV's text can't be run as
script anyway, and now no expression can be evaluated from a string either. - Better with a screen reader. In the preview, each item is a group
named after it, with Edit and Hide buttons that show when they have focus,
and the pages are named. In the outline, Alt+↑/↓ on a section's handle says
where the section went, the All and None buttons say which section they're
for, and a missing translation is read out. - The title of an item being edited now also shows for a CV without English
or Dutch. - A new logo.
New Leaf 0.5.0
New Leaf 0.5.0
The first public release, and a pre-release. New Leaf keeps one CV and turns it into a version for every application: its own items, section order, language and look, with the PDF next to it as you work. It runs on your own computer, or on a server for everyone on your Tailscale network, with share links on the web.
What it does
- Items, once. Everything you have done is an item, with its dates, organisation, place and a Markdown description. Fix a typo once and every version has it.
- A version per application. Tick the items it shows, drag the sections into the order that suits it, and pick its language and look. New items join the versions that show everything, not the ones you tailored.
- The PDF next to it. Click anything in the preview to edit it or hide it from this version. The item list shows where each page starts, and the page count says how many lines you are over, or how much room is left. Fit on sets the spacing as generous as still fits on the pages you pick.
- Looks. An accent colour, a sans-serif or serif typeface, the photo's shape and the spacing, for the PDF and the share page alike. A look can be the starting point for new versions.
- One language or two. English, Dutch, German, French, Spanish, Italian or Portuguese, chosen per CV. With two, each item has text in both, and a warning shows what is still missing.
- Share links (on a server). A web page with the PDF, in each of your languages, at an address nobody can guess. It follows the version as you change it, until a date you choose or until you stop sharing.
- Also: light and dark mode, more than one CV, backups you can restore on another computer or a server, undo for a version's choices, ⌘K to find anything, and a layout that works on a phone.
Installation
On your own computer: download the archive for your system below, unpack it and run new-leaf (new-leaf.exe on Windows). Typst, which makes the PDFs, is in the archive. The programs are not signed: on macOS, right-click new-leaf and choose Open the first time; on Windows, choose More info and Run anyway.
With Nix: nix run git+https://codeberg.org/BW20/new-leaf.
On a server: see Self-hosting. The NixOS module sets it up either with Tailscale alone (no domain, web server or open port) or with nginx on your own domains. There is a Docker setup too, with the image at ghcr.io/jorritvanderheide/new-leaf:0.5.0.
What it writes
Your CV is a folder of Markdown files with YAML front matter, plus a JSON file per version, in ~/.local/share/new-leaf on Linux, ~/Library/Application Support/new-leaf on macOS and %AppData%\new-leaf on Windows. On your own computer New Leaf only answers on localhost, connects to nothing, and runs Typst in a temporary folder that can't see your other files. On a server it asks Tailscale who a visitor is, and nothing else; share links are static files.
This is a pre-release
Everything is tested, but some of it only on my own machines:
- The German, French, Spanish, Italian and Portuguese words New Leaf adds to a CV (section titles, months) haven't been read by native speakers yet. Corrections are very welcome.
- The Tailscale-only setup and the Docker setup haven't yet run against a real tailnet with Funnel.
Please open an issue if something doesn't work.
Checking your download
Every archive and the container image come with a signed build provenance attestation:
gh attestation verify new-leaf-0.5.0-linux-amd64.tar.gz --repo jorritvanderheide/new-leaf