fix: update template references and improve documentation clarity

This commit is contained in:
Amruth Pillai
2026-10-03 14:49:28 +02:00
parent b13ab05777
commit 6d4a040d93
12 changed files with 396 additions and 54 deletions
+1 -1
View File
@@ -91,7 +91,7 @@ const pageLabel = "font-martian font-medium text-[calc(var(--pw)*.045)] leading-
/**
* 02 Design. The word "Design." changes its type as five templates wipe across the page in turn, then the scene
* zooms out to a contact sheet of all fifteen. The template tabs jump to each wipe.
* zooms out to a contact sheet of illustrative thumbnails. The template tabs jump to each wipe.
*
* Everything that moves with the scroll sits on its own layer (will-change), and the wipes slide clipped layers
* rather than animating clip-path. Otherwise every scrolled frame repaints the whole sticky stage, which Android
+2 -1
View File
@@ -5,6 +5,7 @@ import { useLingui } from "@lingui/react";
import { Trans } from "@lingui/react/macro";
import { useQuery } from "@tanstack/react-query";
import { useEffect, useState } from "react";
import { templateSchema } from "@reactive-resume/schema/templates";
import { Icon } from "@reactive-resume/ui/components/icon";
import { localeSchema } from "@reactive-resume/utils/locale";
import { cn } from "@reactive-resume/utils/style";
@@ -216,7 +217,7 @@ export function Support() {
// oxlint-disable-next-line react/purity -- The receipt shows the current calendar date on each render, including after midnight.
const receiptDate = new Date();
const nothing = i18n.number(0, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
const templates = i18n.number(15);
const templates = i18n.number(templateSchema.options.length);
const none = t({
message: "none",
comment: "Receipt line amount for something Reactive Resume doesn't have, e.g. ads.",
+58 -22
View File
@@ -4,7 +4,7 @@ description: "Release notes for Reactive Resume covering new features, resume bu
rss: true
---
<Update label="v6.0.0 — Unreleased" description="2026-10-01">
<Update label="v6.0.0 — Unreleased" description="2026-10-02">
<iframe
className="w-full aspect-video rounded-xl"
@@ -31,13 +31,16 @@ Reactive Resume v6 rebuilds the workspace around your documents: one library, a
an assistant whose edits you review, standalone cover letters, and an application tracker centered on your next step.
Forme replaces the PDF engine, with browser rendering shared across previews and downloads.
This unreleased entry covers **223 commits after `v5.3.2`**, audited through
[`bc92b8cf7`](https://github.com/reactive-resume/reactive-resume/commit/bc92b8cf7f8929ffeabfe79d8585da40d8f22d6d)
on **2026-10-01**. Publication and production deployment remain unverified. For a shorter orientation, read
This unreleased entry covers **240 commits after `v5.3.2`**, audited through
[`59167aae5`](https://github.com/reactive-resume/reactive-resume/commit/59167aae5269227001af2b89965711c92b765046)
on **2026-10-02**. Publication and production deployment remain unverified. For a shorter orientation, read
[What's new in v6](/guides/whats-new-in-v6).
## Documents, imports & recovery
- **Start a resume with your own name.** Blank and sample resumes now print the account holder’s name in Basics instead of the document title. The library name remains independent. [419c7309a](https://github.com/reactive-resume/reactive-resume/commit/419c7309a)
- **Retry document-library failures without mistaking them for an empty account.** Documents and Trash now show a connection error with **Try again** when loading fails. Type filters participate in the filtered empty state, long names and company labels stay within list columns, and search and first-run actions gain clearer focus and touch targets. [da65fbef1](https://github.com/reactive-resume/reactive-resume/commit/da65fbef1)
- **Keep linked letter details in account backups.** Account exports now resolve each letter’s linked sender and design values, preserving what the letter currently uses instead of stale stored copies. [bc92b8cf7](https://github.com/reactive-resume/reactive-resume/commit/bc92b8cf7)
- **Recover from an empty resume-copy dialog.** Opening **Copy a resume for a job** without an existing resume previously showed an empty source list and a disabled **Create and open** button. The dialog now explains the prerequisite and offers **Import or create a resume**, including when opened directly from an application. Returning to the copy flow keeps that application selected. Importing or creating a blank resume during preparation links it to the saved job. [bec152b7e](https://github.com/reactive-resume/reactive-resume/commit/bec152b7e), [3e7849e51](https://github.com/reactive-resume/reactive-resume/commit/3e7849e51)
@@ -60,6 +63,8 @@ on **2026-10-01**. Publication and production deployment remain unverified. For
## Resume editor & dates
- **Use Escape in both the editor and command palette.** Competing shortcut registrations previously prevented one handler from running. Escape now closes an open palette and clears the editor selection; a closed palette no longer intercepts the key. [b63170c5f](https://github.com/reactive-resume/reactive-resume/commit/b63170c5f)
- **Keep parser results tied to the open resume.** Switching documents could display another resume’s cached extracted text. Parser results now include the resume ID and reset with the rendered page. [bc92b8cf7](https://github.com/reactive-resume/reactive-resume/commit/bc92b8cf7)
<Frame caption="Write, Design and Check replace the builder's sidebars and dock">
@@ -81,7 +86,9 @@ on **2026-10-01**. Publication and production deployment remain unverified. For
## Design, templates & custom styles
- **Preview templates with your own content.** The redesigned gallery renders all 15 existing templates using your resume, with one-column, two-column and ATS-safe filters. Hover, focus or hold a card to preview its appearance; selecting applies it with Undo. This release changes the gallery and renderer, not the template count. [1ef7c9fa1](https://github.com/reactive-resume/reactive-resume/commit/1ef7c9fa1), [85352ee11](https://github.com/reactive-resume/reactive-resume/commit/85352ee11)
- **Choose two new templates: Porygon and Smeargle.** Porygon uses a Japanese résumé-inspired form with bordered header fields, a dedicated photo cell and ruled entries beneath solid section bars. Smeargle uses a magazine-style layout with an uppercase headline, large name, italic introduction and italic section headings. Both are one-column and ATS-safe, bringing the gallery to **17 templates**, with PDF and documentation previews and Semantic CSS support. [Choosing a template](/guides/choosing-a-template). [99ff19e4e](https://github.com/reactive-resume/reactive-resume/commit/99ff19e4e)
- **Preview templates with your own content.** The redesigned gallery renders all 17 templates using your resume, with one-column, two-column and ATS-safe filters. Hover, focus or hold a card to preview its appearance; selecting applies it with Undo. [1ef7c9fa1](https://github.com/reactive-resume/reactive-resume/commit/1ef7c9fa1), [85352ee11](https://github.com/reactive-resume/reactive-resume/commit/85352ee11)
- **Choose familiar resume typography.** Five presets use EB Garamond, Tinos, Source Serif 4 with Source Sans 3, Carlito and Lato. Body presets use available Regular/Bold weights. **Custom** opens the exact font controls and shows an existing custom pairing; unavailable weights are replaced with supported ones. [d3ed651d6](https://github.com/reactive-resume/reactive-resume/commit/d3ed651d6), [9a803305c](https://github.com/reactive-resume/reactive-resume/commit/9a803305c)
- **Adjust design through grouped controls.** Template, Type, Color, Page and Advanced collect font size, density, accents, margins, paper, language, icons, link underlines and exact values. Accent choices show contrast on white and offer a darker shade when contrast is low. Reset restores template defaults. [1ef7c9fa1](https://github.com/reactive-resume/reactive-resume/commit/1ef7c9fa1)
- **Fit overflow without deleting content.** Page warnings report how many lines spill beyond the planned pages and offer **Fit**. Fit tightens density, then margins, then text size, rerendering after each step and stopping at 9 pt. The complete adjustment is one undo step; content that still cannot fit needs editing. [1ef7c9fa1](https://github.com/reactive-resume/reactive-resume/commit/1ef7c9fa1)
@@ -156,7 +163,7 @@ on **2026-10-01**. Publication and production deployment remain unverified. For
- **Write letters on the shared editor shell.** Letters open at `/builder/letter/<id>` with Write and Design, autosave, document actions, an assistant, downloads and history. Recipient name, company and date are structured; existing free-form letters retain their layout. [fdad39c63](https://github.com/reactive-resume/reactive-resume/commit/fdad39c63), [82fa32790](https://github.com/reactive-resume/reactive-resume/commit/82fa32790)
- **Keep sender details linked, or use your own.** A linked letter follows its resume's contact details and can match its design. Switch those links off to edit independent values; when the resume is permanently deleted, the letter retains its copied values. Linked sender changes produce a device-local notice. [fdad39c63](https://github.com/reactive-resume/reactive-resume/commit/fdad39c63), [82fa32790](https://github.com/reactive-resume/reactive-resume/commit/82fa32790)
- **Give a letter its own typography, colors and page settings.** Independent letter design expands beyond choosing a template to include Type, Color and Page controls. Sender headers render in all 15 templates, including Azurill's full-width letter page. [49422e98f](https://github.com/reactive-resume/reactive-resume/commit/49422e98f), [aa9a5113c](https://github.com/reactive-resume/reactive-resume/commit/aa9a5113c), [17d25c5ff](https://github.com/reactive-resume/reactive-resume/commit/17d25c5ff)
- **Give a letter its own typography, colors and page settings.** Independent letter design expands beyond choosing a template to include Type, Color and Page controls. Sender headers render in all 17 templates, including Azurill's full-width letter page and the new Porygon and Smeargle layouts. [49422e98f](https://github.com/reactive-resume/reactive-resume/commit/49422e98f), [aa9a5113c](https://github.com/reactive-resume/reactive-resume/commit/aa9a5113c), [17d25c5ff](https://github.com/reactive-resume/reactive-resume/commit/17d25c5ff), [99ff19e4e](https://github.com/reactive-resume/reactive-resume/commit/99ff19e4e)
- **Draft from a resume and posting.** An empty letter offers a streaming AI draft based on its linked resume and application, with a Stop action and length controls. Existing letter content is preserved until you choose to change it. [fdad39c63](https://github.com/reactive-resume/reactive-resume/commit/fdad39c63), [82fa32790](https://github.com/reactive-resume/reactive-resume/commit/82fa32790)
- **Download matching application documents.** Download a letter as PDF, Word, Markdown or JSON, or download the resume and letter as two matching PDFs. A resume's download panel can include its application's linked letter in the same selected format. Letters also gain named versions and safe restore history. [82fa32790](https://github.com/reactive-resume/reactive-resume/commit/82fa32790), [fdad39c63](https://github.com/reactive-resume/reactive-resume/commit/fdad39c63)
@@ -215,6 +222,10 @@ on **2026-10-01**. Publication and production deployment remain unverified. For
## PDF, Word & Markdown rendering
- **Keep heading bars, rules and contact boxes when icons are hidden.** Block text previously lost its background, border and padding because the engine’s text primitive did not paint them. The adapter now wraps styled block text in a box, preserving template heading decorations and text-only contact styles, including the gap between section icons and titles. [581dafdfd](https://github.com/reactive-resume/reactive-resume/commit/581dafdfd)
- **Wrap Glalie contact details and align section icons with their titles.** Long email addresses and links previously overflowed Glalie’s contact border, while heading icons sat above the text. Contact text now keeps its box styles and wraps within the available row width; heading icons stay centered within the title’s line height. [87b5d695a](https://github.com/reactive-resume/reactive-resume/commit/87b5d695a)
- **Restore PDF exports on the development server.** The TypeScript loader could resolve the server image reader as a native addon, and shared PDF components could fall back to an incompatible JSX runtime. An explicit import extension and the workspace’s automatic JSX configuration restore server PDF rendering during development. [48d024cf3](https://github.com/reactive-resume/reactive-resume/commit/48d024cf3)
- **Preserve Unicode text and native ligatures in PDFs.** The patched Forme 0.26 engine preserves Arabic and Hindi text, vocalized Hebrew, Japanese, Latin ligatures and emoji across fallback fonts. Native ligatures remain enabled, and right-to-left list markers no longer need reversed punctuation. Browser and server rendering use the same patched engine; unsupported glyphs still require a suitable font. [bc92b8cf7](https://github.com/reactive-resume/reactive-resume/commit/bc92b8cf7)
- **Stop exports that would lose text.** Missing fonts or engine warnings about substituted or unrendered characters now fail PDF downloads and server exports with a retryable error instead of producing a silently incomplete file. [bc92b8cf7](https://github.com/reactive-resume/reactive-resume/commit/bc92b8cf7)
@@ -249,6 +260,9 @@ on **2026-10-01**. Publication and production deployment remain unverified. For
## Settings, appearance & public pages
- **Identify and revoke connected applications.** Settings → AI & developer lists OAuth applications by their registered names, shows granted permissions and lets you revoke access. Unnamed or unavailable clients remain listed by ID so they can still be revoked. Settings content and desktop navigation scroll independently. [78f4f8183](https://github.com/reactive-resume/reactive-resume/commit/78f4f8183), [0a0970160](https://github.com/reactive-resume/reactive-resume/commit/0a0970160)
- **Browse a lighter, more accessible homepage.** Design and sharing controls gain labels, FAQ questions use headings, decorative images load responsive smaller assets, and typed captions use fewer elements. Reduced-motion changes stop language rotation and pointer-driven lens motion; language transitions and copy feedback improve. PDF and Word downloads appear in search descriptions, multiline metadata is read correctly, and the footer and organization metadata include support and social links. The displayed template count follows the schema, and the donation receipt uses monospace type. [59167aae5](https://github.com/reactive-resume/reactive-resume/commit/59167aae5), [d9c121daa](https://github.com/reactive-resume/reactive-resume/commit/d9c121daa), [0ac6f81bf](https://github.com/reactive-resume/reactive-resume/commit/0ac6f81bf)
- **Use the Desk & Paper visual system.** Warm desk surfaces, paper pages, revised typography and color tokens replace the old app chrome. A self-hosted Material Symbols subset supplies interface icons, and the app sidebar and rail use the brand mark. Light, Dark and System appearance are available. [0f934bd84](https://github.com/reactive-resume/reactive-resume/commit/0f934bd84), [4485825df](https://github.com/reactive-resume/reactive-resume/commit/4485825df), [55a328436](https://github.com/reactive-resume/reactive-resume/commit/55a328436), [f82e9f33f](https://github.com/reactive-resume/reactive-resume/commit/f82e9f33f)
- **Find settings in three pages that save as you go.** Account gathers profile and security, Preferences gathers appearance, language and motion, and AI & developer gathers providers, API keys and MCP. Old settings URLs redirect, and project links move to the settings footer. [9f809890e](https://github.com/reactive-resume/reactive-resume/commit/9f809890e), [01e87a6f1](https://github.com/reactive-resume/reactive-resume/commit/01e87a6f1)
- **Recover sign-in and security changes reliably.** Backup codes accept the displayed hyphenated form; signup, reset and password-change forms enforce the server's eight-character minimum. Passkeys can be renamed and removal asks for confirmation. Unlinking a sign-in provider refreshes the account list, and custom OAuth appears only when its configuration is usable. [9a803305c](https://github.com/reactive-resume/reactive-resume/commit/9a803305c)
@@ -259,6 +273,11 @@ on **2026-10-01**. Publication and production deployment remain unverified. For
## Security & API correctness
- **Import, export and check documents through REST.** Resource-oriented endpoints support file imports, PDF/Word/Markdown/JSON exports for resumes and letters, resume checks, job-term matching and a public PDF readability check. Collection routes accept `limit`/`offset` and return `X-Total-Count`; PATCH routes support partial updates. Existing routes and response shapes remain available. OpenAPI identifies public operations and includes a separate authentication schema; server-side Word export now parses rich text without browser APIs. [Using the API](/guides/using-the-api). [57171c6fc](https://github.com/reactive-resume/reactive-resume/commit/57171c6fc)
- **Reach the remaining API workflows through MCP.** The original 43 tool names remain, with additional `api_` tools for document history and Trash, sharing, imports and exports, checks, assistant conversations, integrations and account actions. Tools publish input/output schemas and structured results. Resume patches can reject stale edits with `expectedUpdatedAt`; file operations accept owned storage references for larger uploads. Sensitive credential and account setup directs clients to the authenticated settings page. [Using the MCP server](/guides/using-the-mcp-server). [78f4f8183](https://github.com/reactive-resume/reactive-resume/commit/78f4f8183)
- **Limit integration access to the permissions you grant.** API keys and OAuth grants can carry read, write and delete permissions enforced across API and MCP operations. MCP accepts explicit API keys or bearer tokens, never account cookies. Revoked grants, ended sessions, disabled clients and banned accounts invalidate token access; cross-origin session requests are rejected. Legacy keys and identity-only grants retain account-wide access for compatibility. [78f4f8183](https://github.com/reactive-resume/reactive-resume/commit/78f4f8183), [57171c6fc](https://github.com/reactive-resume/reactive-resume/commit/57171c6fc)
- **Bound MCP requests, file access and streamed results.** MCP uses stateless POST requests with private, uncached responses, validates browser Origin, applies request and user limits, and shares PDF-rendering limits with REST exports. File references are restricted to the authenticated account’s storage paths. Collected assistant streams report truncation, while persistent threads retain replies; live resume tools return snapshots for polling. [78f4f8183](https://github.com/reactive-resume/reactive-resume/commit/78f4f8183)
- **Validate remote images before server PDF rendering.** Server image loading checks public destinations, pins validated addresses, revalidates redirects, and bounds request time and image size. This prevents remote image URLs from reaching private services. [bc92b8cf7](https://github.com/reactive-resume/reactive-resume/commit/bc92b8cf7)
- **Keep trashed and hidden content out of public sharing.** Trashed resumes are unavailable through public lookups, and hidden content is excluded from shared data. Script or style uploads are served as downloads rather than executable inline content. [23ea18241](https://github.com/reactive-resume/reactive-resume/commit/23ea18241), [61f481055](https://github.com/reactive-resume/reactive-resume/commit/61f481055)
@@ -270,8 +289,10 @@ on **2026-10-01**. Publication and production deployment remain unverified. For
## Self-hosting, performance & maintenance
- **Transform translation macros natively.** Lingui’s native transform handles the web app and PDF worker, replacing its Babel preset. Split-route modules are explicitly parsed as TSX so their query-string filenames do not break JSX parsing. React Compiler retains its compatible Babel integration. [36f2477c2](https://github.com/reactive-resume/reactive-resume/commit/36f2477c2)
- **Use one release migration and rollback script.** Intermediate v6 migrations are consolidated into `20261001042749_v6_release`. It performs v5 data conversions before removing legacy columns; its rollback restores v5-compatible letter sections and application/history fields in one transaction. See [Upgrading to v6](/self-hosting/upgrading-to-v6). [bc92b8cf7](https://github.com/reactive-resume/reactive-resume/commit/bc92b8cf7)
- **Run consistent workspace checks with Oxc.** Standalone Oxlint and Oxfmt replace the previous lint/format configuration. CI checks package boundaries and affected-package types, persists Turbo artifacts, and runs unit suites with one concurrent task. Dependency and translation updates are grouped with these maintenance changes. [0bdf8066c](https://github.com/reactive-resume/reactive-resume/commit/0bdf8066c), [fcfb18fe5](https://github.com/reactive-resume/reactive-resume/commit/fcfb18fe5), [3e14ecaab](https://github.com/reactive-resume/reactive-resume/commit/3e14ecaab)
- **Run consistent workspace checks with Oxc.** Standalone Oxlint and Oxfmt replace the previous lint/format configuration. CI checks package boundaries and affected-package types, persists Turbo artifacts, and runs unit suites with one concurrent task. Dependency and translation updates are grouped with these maintenance changes; obsolete design and redesign plan documents are removed. [0bdf8066c](https://github.com/reactive-resume/reactive-resume/commit/0bdf8066c), [fcfb18fe5](https://github.com/reactive-resume/reactive-resume/commit/fcfb18fe5), [3e14ecaab](https://github.com/reactive-resume/reactive-resume/commit/3e14ecaab), [8ab54c8ad](https://github.com/reactive-resume/reactive-resume/commit/8ab54c8ad)
- **Set up job search and AI alongside your instance.** A new [Job search and AI guide](/self-hosting/job-search-and-ai) covers Firecrawl, Tavily and Exa, links official Firecrawl, SearXNG and OpenAI setup instructions, explains shared services and personal keys, and includes container-network and local verification examples. SearXNG supplies JSON search results to self-hosted Firecrawl; Reactive Resume connects separately to Firecrawl and its AI provider. Docker, environment-variable and AI guides link to the setup. [bec152b7e](https://github.com/reactive-resume/reactive-resume/commit/bec152b7e), [3e7849e51](https://github.com/reactive-resume/reactive-resume/commit/3e7849e51)
@@ -1228,7 +1249,8 @@ production deployments.
- **Database migrations.** This release ships several new schema migrations to bring the resume model up to date. They run automatically on container start, but you should **back up your PostgreSQL database before upgrading** in case rollback is needed.
- **Custom CSS has been removed.** Because the resume PDF is no longer produced by a headless browser, raw CSS no longer applies to the exported document. A first-class template-customization story is on the roadmap for a future release.
- **Job Listings has been removed.** The JSearch/RapidAPI-backed job listings feature and its settings were removed in the v5.1.0 transition. The old job-search settings path now redirects to **Integrations**. To tailor a resume, paste a job description into the AI Agent; see [Using the AI Agent workspace](/guides/using-ai-agent#tailor-a-resume-to-a-supplied-job-description).
</Note>
</Note>
## Highlights
@@ -1333,7 +1355,8 @@ production deployments.
- Updated dependencies and lockfile.
- Synced translation catalogs from Crowdin.
</Update>
</Update>
<Update label="v5.0.17" description="9th April 2026">
## Features & Improvements
@@ -1351,7 +1374,8 @@ production deployments.
- Downgraded the Cosign installer action to v3 in the Docker build workflow for more reliable image signing.
- Synced translation catalogs from Crowdin. [#2864](https://github.com/reactive-resume/reactive-resume/pull/2864)
- Dependency and lockfile updates (including changes bundled with MCP and analysis work).
</Update>
</Update>
<Update label="v5.0.16" description="4th April 2026">
## Features & Improvements
@@ -1367,7 +1391,8 @@ production deployments.
- Synced translation catalogs across all supported locales.
- Updated dependencies and lockfile, including AI SDK, TipTap, TanStack Query, and Vite+ package aliases.
</Update>
</Update>
<Update label="v5.0.15" description="1st April 2026">
## Features & Improvements
@@ -1400,7 +1425,8 @@ production deployments.
- Updated self-hosting and environment variable documentation to include LinkedIn OAuth configuration.
- Synced translations across locales for the latest authentication and save-status messaging.
</Update>
</Update>
<Update label="v5.0.14" description="24th March 2026">
## Features
@@ -1410,7 +1436,8 @@ production deployments.
## Fixes
- Fixed an issue with the slider component for "Sidebar Width" in the resume builder. [#2830](https://github.com/reactive-resume/reactive-resume/issues/2830)
</Update>
</Update>
<Update label="v5.0.13" description="19th March 2026">
## Features & Improvements
@@ -1446,7 +1473,8 @@ production deployments.
- @lukadfagundes
- @Hephaisto-dev
</Update>
</Update>
<Update label="v5.0.12" description="17th March 2026">
## Features & Improvements
@@ -1477,7 +1505,8 @@ production deployments.
- @FrancocDev
- @obitton
- @jondycz
</Update>
</Update>
<Update label="v5.0.10" description="24th February 2026">
## Fixes
@@ -1506,7 +1535,8 @@ production deployments.
- Refactored auth utility from `originWith` to `withHostname` to preserve localhost/127.0.0.1 sibling trust.
- Updated dependencies and improved code style.
- Updated documentation and README files.
</Update>
</Update>
<Update label="v5.0.9" description="9th February 2026">
## Features & Improvements - Added Computer Modern web fonts to the font selector, allowing users to choose from
@@ -1536,7 +1566,8 @@ production deployments.
## Maintenance
- Updated dependencies to latest versions.
</Update>
</Update>
<Update label="v5.0.6" description="8th February 2026">
## Features & Improvements
@@ -1552,7 +1583,8 @@ production deployments.
- General bug fixes and minor improvements.
- Synced latest translations from Crowdin (notably: French, other languages).
- Updated dependencies to latest versions.
</Update>
</Update>
<Update label="v5.0.5" description="31st January 2026">
## Features & Improvements
@@ -1565,7 +1597,8 @@ production deployments.
- Fixed keyword spacing issue in the interests section. [#2631](https://github.com/reactive-resume/reactive-resume/pull/2631)
- Fixed AI connection test and improved error reporting for AI provider issues.
</Update>
</Update>
<Update label="v5.0.4" description="28th January 2026">
## Features & Improvements
@@ -1589,7 +1622,8 @@ production deployments.
- Updated package dependencies and fixed self-hosting guide links in README.
- Removed dead code and updated screenshots.
- Other bug fixes and minor improvements (#2542, #2573, #2598).
</Update>
</Update>
<Update label="v5.0.3" description="25th January 2026">
## Features & Improvements
@@ -1604,7 +1638,8 @@ production deployments.
- Homepage video optimized for faster loading without quality loss.
- Increased screenshot TTL for resumes to reduce unnecessary regenerations.
- Updated dependencies and translations to latest versions.
</Update>
</Update>
<Update label="v5.0.2" description="24th January 2026">
## Features & Improvements
@@ -1618,7 +1653,8 @@ production deployments.
- Updated JSON Schema for proper format.
- Updated Discord server invite link.
- Updated dependencies to latest versions.
</Update>
</Update>
<Update label="v5.0.1" description="23th January 2026">
## Maintenance & Fixes - Updated translations from Crowdin. - Added Community Spotlight section to the documentation.
-24
View File
@@ -17,14 +17,6 @@ A collection of blog posts and articles written by the community about Reactive
<CardGroup cols={2}>
{/* Add article cards here */}
{/\*
Example:
<Card title="Article Title" icon="newspaper" href="https://example.com/article">
A brief description of the article.
</Card>
*/}
</CardGroup>
<Info>No articles have been featured yet.</Info>
@@ -38,14 +30,6 @@ Video tutorials, reviews, and walkthroughs created by the community.
<CardGroup cols={2}>
{/* Add video cards here */}
{/\*
Example:
<Card title="Video Title" icon="youtube" href="https://youtube.com/watch?v=...">
A brief description of the video.
</Card>
*/}
</CardGroup>
<Info>No videos have been featured yet.</Info>
@@ -59,14 +43,6 @@ Posts and threads from social media platforms sharing experiences with Reactive
<CardGroup cols={2}>
{/* Add social media cards here */}
{/\*
Example:
<Card title="Post Title" icon="twitter" href="https://twitter.com/...">
A brief description of the post.
</Card>
*/}
</CardGroup>
<Info>No social media posts have been featured yet.</Info>
@@ -12,7 +12,7 @@ The two products use different authoring models. Overleaf is an online LaTeX edi
| Consideration | Reactive Resume | Overleaf |
| ---------------- | ------------------------------------------------------------------- | --------------------------------------------------------- |
| Primary workflow | Visual resume editing with structured sections | LaTeX source editing and compilation |
| Template model | 15 built-in resume templates with font, colour, and layout settings | Community CV and resume LaTeX templates |
| Template model | 17 built-in resume templates with font, colour, and layout settings | Community CV and resume LaTeX templates |
| Source control | Resume JSON export, not LaTeX source | Direct editing of LaTeX project files |
| Collaboration | No shared editing; public links with optional password for readers | Project collaboration with plan-dependent limits |
| Output | PDF, Word (DOCX), Markdown, and Reactive Resume JSON | Compiled document PDFs and project source |
+1
View File
@@ -69,6 +69,7 @@
"pages": [
"getting-started",
"getting-started/quickstart",
"guides/video-guides",
"guides/whats-new-in-v6",
"guides/using-the-command-bar",
"guides/keyboard-shortcuts",
+4
View File
@@ -63,6 +63,10 @@ account from **Settings**, and delete your account at any time. The source code
<Card title="What's new in v6" icon="star" href="/guides/whats-new-in-v6">
Used Reactive Resume before? See what changed and where things moved.
</Card>
<Card title="Video guides" icon="circle-play" href="/guides/video-guides">
Watch short walkthroughs of creating, improving and sharing a resume, writing a cover letter and tracking
applications.
</Card>
<Card title="Self-host with Docker" icon="docker" href="/self-hosting/docker">
Run Reactive Resume on your own server.
</Card>
+1 -1
View File
@@ -99,7 +99,7 @@ You don't need to save. Under the document name, the status changes to **Saving
<Frame caption="Design mode's template gallery">
<img
src="/images/getting-started/quickstart/design-template-gallery.webp"
alt='The Template tab in Design mode with filters for All, One column, Two columns and ATS-safe, the text "15 of 15 shown", and previews of the Azurill (selected), Bronzor, Chikorita and Ditgar templates filled with the sample resume.'
alt="The Template tab in Design mode with filters for All, One column, Two columns and ATS-safe, a template counter, and previews of the Azurill (selected), Bronzor, Chikorita and Ditgar templates filled with the sample resume."
/>
</Frame>
+3 -3
View File
@@ -1,6 +1,6 @@
---
title: "Choosing a template"
description: "Browse the 15 Reactive Resume templates drawn with your own content, preview one on the page, and apply it without losing any of your work."
description: "Browse the 17 Reactive Resume templates drawn with your own content, preview one on the page, and apply it without losing any of your work."
---
A template decides the layout of your resume: where the header sits, whether there is a sidebar, and how headings and entries look. You can switch templates at any time. Your content, fonts and colors stay the same.
@@ -21,7 +21,7 @@ A template decides the layout of your resume: where the header sits, whether the
<Frame caption="The template gallery, with filters and the current template checked">
<img
src="/images/guides/choosing-a-template/template-gallery.webp"
alt="The Template group in the Design panel, showing the All, One column, Two columns and ATS-safe filters, a count of 15 of 15 shown, and thumbnails of the Azurill, Bronzor, Chikorita and Ditgar templates with Azurill checked"
alt="The Template group in the Design panel, showing the All, One column, Two columns and ATS-safe filters, a template counter, and thumbnails of the Azurill, Bronzor, Chikorita and Ditgar templates with Azurill checked"
/>
</Frame>
@@ -38,7 +38,7 @@ The chips above the thumbnails narrow the list:
| **Two columns** | Templates with a separate sidebar column. |
| **ATS-safe** | Templates with one reading order and plain text headings, which applicant tracking systems read cleanly. |
The counter on the right (for example "7 of 15 shown") tells you how many templates match.
The counter on the right (for example "7 of 17 shown") tells you how many templates match.
## Preview and apply a template
+231
View File
@@ -0,0 +1,231 @@
---
title: "Video Guides"
description: "Short video walkthroughs for creating and importing resumes, improving your design, checking PDFs, using AI, writing cover letters and tracking job applications."
icon: "circle-play"
---
Watch a task from start to finish in under a minute. These YouTube Shorts show you how to use Reactive Resume.
New here? Start with **Create an account** and **Create your first resume**, then pick the task you need.
## Start your resume
<CardGroup cols={2}>
<Card title="Create an account">
Sign up and choose the username for your public resume link.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/O3n6_a5N2IA"
title="Create an account — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/creating-an-account) · [Watch on YouTube](https://www.youtube.com/shorts/O3n6_a5N2IA)
</Card>
<Card title="Create your first resume">
Start from a sample, replace its details, choose a template and download a PDF.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/ufQ_ofhlU8k"
title="Create your first resume — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/getting-started/quickstart) · [Watch on YouTube](https://www.youtube.com/shorts/ufQ_ofhlU8k)
</Card>
<Card title="Import an existing resume">
Bring in a PDF, LinkedIn export or JSON file, then review the imported sections.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/4LoWWE3_Ujc"
title="Import an existing resume — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/importing-resumes) · [Watch on YouTube](https://www.youtube.com/shorts/4LoWWE3_Ujc)
</Card>
<Card title="Add work experience">
Add an Experience section and fill in your positions, companies and dates.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/bYh32r69x3k"
title="Add work experience — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/editing-entries) · [Watch on YouTube](https://www.youtube.com/shorts/bYh32r69x3k)
</Card>
</CardGroup>
## Improve your resume
<CardGroup cols={2}>
<Card title="Fit your resume on one page">
See where your resume overflows and use Fit to one page to adjust the design.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/yxzyhE5xOhU"
title="Fit your resume on one page — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/fitting-content-on-a-page) · [Watch on YouTube](https://www.youtube.com/shorts/yxzyhE5xOhU)
</Card>
<Card title="Fix issues found by Check">
Find issues on the page and apply fixes to help hiring software read your resume.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/XUVKGe0UUFY"
title="Fix issues found by Check — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/checking-your-resume) · [Watch on YouTube](https://www.youtube.com/shorts/XUVKGe0UUFY)
</Card>
<Card title="Check any resume PDF">
Use the standalone ATS checker to inspect a PDF and see the text software reads.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/AFiIi9w3hO4"
title="Check any resume PDF — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/using-the-ats-checker) · [Watch on YouTube](https://www.youtube.com/shorts/AFiIi9w3hO4)
</Card>
<Card title="Use the AI assistant">
Connect your own AI provider, ask for a change and review each proposed edit.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/TN1x7Gb_kxw"
title="Use the AI assistant — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/using-the-assistant) · [Watch on YouTube](https://www.youtube.com/shorts/TN1x7Gb_kxw)
</Card>
</CardGroup>
## Apply and share
<CardGroup cols={2}>
<Card title="Tailor your resume for a job">
Copy your resume for a saved job and compare it with the posting in Job match.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/wsVo4ZMxEcE"
title="Tailor your resume for a job — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/tailoring-a-resume-for-a-job) · [Watch on YouTube](https://www.youtube.com/shorts/wsVo4ZMxEcE)
</Card>
<Card title="Write a matching cover letter">
Create a letter, link an application and match the design to your resume.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/r_rXHZcoTGA"
title="Write a matching cover letter — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/writing-a-cover-letter) · [Watch on YouTube](https://www.youtube.com/shorts/r_rXHZcoTGA)
</Card>
<Card title="Share your resume with a link">
Publish a resume link, add a password if needed and see views and downloads.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/zM0gvZJHd34"
title="Share your resume with a link — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/sharing-your-resume-publicly) · [Watch on YouTube](https://www.youtube.com/shorts/zM0gvZJHd34)
</Card>
<Card title="Track your job applications">
Save a job posting, mark it as applied and keep the version of the resume you sent.
<iframe
className="w-full rounded-xl"
style={{ aspectRatio: "9 / 16", maxWidth: "20rem", margin: "0 auto" }}
src="https://www.youtube-nocookie.com/embed/TdbN-oSQ5Ks"
title="Track your job applications — Reactive Resume video guide"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
[Read the guide](/guides/tracking-job-applications) · [Watch on YouTube](https://www.youtube.com/shorts/TdbN-oSQ5Ks)
</Card>
</CardGroup>
@@ -0,0 +1,93 @@
# Reactive Resume v6 launch media research
Research date: 2026-10-02. Question: which media should accompany a founder's organic launch announcement on LinkedIn, X, and Show HN?
Recommended launch package: **single product image or short PDF document carousel on LinkedIn; product image on the first X post and native demo video as a follow-up; working app/demo link on Show HN, with optional media on the destination.** These are editorial recommendations informed by the evidence, not guaranteed reach rankings. Most observations are from 2025 or early 2026.
## LinkedIn: evidence and recommendation
**For a personal founder account, a strong product image or document carousel is the better supported reach default. Native video remains useful for demonstrating the product; there is no reliable evidence here that GIFs win reach.** This is a judgment from the studies below, not a guaranteed algorithm rule.
### Metricool: personal profiles, with actual impression data
Released April 14, 2026; 673,658 posts from 63,108 accounts worldwide, comparing January–February 2025 with January–February 2026. First edition including both personal profiles and company pages. [Metricool release and sample](https://metricool.com/press-release-linkedin-study-2026/).
The personal-profile table on printed page 28 gives these **averages per post**, visually checked against the PDF chart:
| Format | Impressions | Interactions | Engagement rate |
| ----------------- | ----------: | -----------: | --------------: |
| Document carousel | 1,451.19 | 20.86 | 1.44% |
| Single image | 1,186.74 | 21.51 | 1.81% |
| Text | 1,045.15 | 12.20 | 1.06% |
| Poll | 717.71 | 2.82 | 0.39% |
| Video | 605.57 | 10.87 | 1.80% |
| Multi-image | 338.42 | 12.56 | 3.71% |
Carousel/image impressions were approximately 2.40×/1.96× video. Multi-image's highest engagement rate coincided with the lowest impressions: engagement does not equal distribution. Impressions count displays, including repeats. Outliers stayed in; zero-impression/zero-interaction posts were excluded. Personal-profile engagement excludes clicks. Means do not isolate format from audience, content, or creator differences. The methodology does not clearly document exclusion of all promoted content. [Metricool study, pp. 28 and 41](https://metricool.com/wp-content/uploads/Linkedin-Study-2026-EN.pdf).
Personal analytics are restricted to posts published through Metricool, creating selection bias. [Metricool analytics scope](https://help.metricool.com/linkedin-personal-profile-metrics-h3usk).
### Buffer: engagement evidence, not a LinkedIn reach comparison
March 2026 report, 52M+ Buffer posts; latest data December 3, 2025. LinkedIn median engagement: carousel **21.77%**, video **7.35%**, image **6.52%**. No LinkedIn format reach table; video-for-reach is explicitly speculation. Profile/page split undisclosed; metrics differ from Metricool. [Buffer report](https://buffer.com/resources/state-of-social-media-engagement-2026/). Companion methodology inconsistently specifies followers as denominator. [Companion page](https://buffer.com/social-media-benchmarks/state-of-social-media-engagement-2026).
### Socialinsider: company pages only
Published March 16, 2026, with quarterly updates. Sample: **1.3M posts, 16,645 business pages, January 2024–December 2025**. Main “2026” benchmarks are actually 2025 observations; Q2 2026 engagement is a separate update.
2025 average engagement by impressions: document **7.00%**, multi-image **6.45%**, video **6.00%**, image **5.30%**. Average impressions for pages with 1–5K followers: document **525**, multi-image **490**, video **355**, image **315**; 5–10K: **550 / 1,210 / 590 / 430** respectively. These support documents or images as plausible alternatives, but cannot establish founder-profile behavior. The prose says multi-image wins for all pages below 50K; its own 1–5K table instead puts documents first. Claimed 36% decline concerns video views, not every format's reach. [Socialinsider original benchmarks and methodology](https://www.socialinsider.io/social-media-benchmarks/linkedin).
### AuthoredUp: corroborating profile data, with weaker methodological disclosure
Updated September 2, 2026; **3M+ personal-profile posts, March 2025–February 2026**. Reported reach multipliers relative to each profile's median: document **1.39×**, image **1.20×**, video **0.86×**; engagement multipliers **1.30× / 1.33× / 0.93×**. Images lead below 5K followers; documents lead at 20K–50K and 50K+. This makes a single image especially reasonable for a smaller founder audience.
Caveats: no account count, uncertainty intervals, fully reproducible aggregation method, or clear reach-field definition. Some prose contradicts tables: polls have higher reach than documents; image engagement multiplier exceeds document. Use reported tables as corroboration, not its universal algorithm explanations. [AuthoredUp format analysis](https://authoredup.com/blog/best-performing-content-on-linkedin).
The **36,946-video** duration subset reports >3-minute videos at **1.21×** typical video reach, versus 30–60 seconds at **0.95×**. However, its video guide dates the sample March 2025–February 2026, while its format article dates it October 2025–March 2026. This is insufficient justification to lengthen a launch trailer. Length also covaries with topic and creator. [AuthoredUp video analysis](https://authoredup.com/blog/linkedin-video-posts), [conflicting sample window](https://authoredup.com/blog/best-performing-content-on-linkedin).
### What official LinkedIn guidance establishes
LinkedIn reported **36% year-over-year growth in video watching** in February 2025. Platform-wide growth does not establish greater reach per launch post. [LinkedIn product announcement](https://www.linkedin.com/pulse/up-36-over-last-year-video-linkedin-booming-time-now-somasundaram-yqbzc/).
Its March 12, 2026 engineering article describes ranking using professional relevance and historical reading, skips, dwell, likes, comments, and shares. It does not publish a universal media-format multiplier. [LinkedIn feed engineering](https://www.linkedin.com/blog/engineering/feed/engineering-the-next-generation-of-linkedins-feed).
GIF uploads are supported, but none of the studies above isolates GIF performance. Support is not evidence of superior reach. [LinkedIn supported media](https://www.linkedin.com/help/linkedin/answer/a564109).
### Practical LinkedIn choice for this launch
- **Main anniversary post:** use a sharp image showing the actual v6 editor and finished resume. If a carousel is easy to reuse, make a short PDF with a launch cover, editor, templates, and two or three substantial features. Keep the personal six-year story in the caption. Single image is the simplest defensible option; carousel helps readers explore multiple changes.
- **Follow-up demonstration:** upload the existing showreel natively, with a readable cover, captions/on-screen explanation, and useful product action immediately. A suggested 30–60-second cut is an editorial choice for this launch, not a proven LinkedIn optimum. Do not pad it to match a duration benchmark.
- **GIF:** use only if one brief loop explains a feature more clearly. No evidence warrants choosing it for a reach boost.
- **Measure:** impressions/reach, outbound visits, and new signups. Engagement and video views are supporting metrics. A sequential launch and follow-up cannot isolate format effects because timing and audience fatigue differ.
All quantitative format studies here are observational. They describe their own user samples and dates; none randomly assigns the same Reactive Resume post to video, GIF, and image.
## X: evidence and recommendation
Buffer's March 5, 2026 report gives median engagement rates of **3.56% text, 3.40% images, 2.96% video, 2.25% links**. Its primary windows cover 2025, with latest observations through December 3. These are Buffer users' posts and engagement rates, not format-specific reach rankings. The evidence supports images as an engagement default, without proving greater distribution. [Original Buffer report](https://buffer.com/resources/state-of-social-media-engagement-2026/).
Metricool's 2026 cross-platform study covers **1,123,528 X posts from 15,116 accounts** in 2025. Video average interactions rose from **81.15 to 110.01**. Its X section does not supply a comparable video/image/GIF impression table. Absolute interaction averages cannot settle the reach question or contradict a median engagement-rate comparison by themselves. [Metricool report, pp. 4 and 58–59](https://metricool.com/wp-content/uploads/Social-Media-Study-2026-EN.pdf).
An older official X Business article reports **55% more engagements for GIF posts versus posts without GIFs**, from an internal study of 3.7M users. It uses 2019 examples, lacks a study window and detailed methodology, and does not compare GIFs against images or videos or measure reach. Treat it as historical marketing evidence, not a 2026 format ranking. [Original X Business article](https://business.x.com/de/blog/6-ways-gifs-twitter-strategy).
Official X Help says native videos and GIFs both autoplay, subject to viewers' settings; autoplay is not a GIF-only advantage. [X Help](https://help.x.com/en/using-x/x-videos).
**Practical choice:** attach a readable screenshot or product launch image to the first post. Use a native MP4 demonstration in a follow-up or thread reply. A 15–30-second cut, showing a useful action immediately and understandable without sound, is an editorial suggestion, not a proven optimal duration. GIF is reasonable for one short repeating action; no current primary comparison found establishes it as the reach winner.
## Show HN: product access matters more than attachment format
The standard Show HN listing displays titles and links, without native image/video/GIF feed attachments. This is a direct observation of the current first-party interface, not an engagement study. A thumbnail on the destination does not create a thumbnail in this list. [Current Show HN listing](https://news.ycombinator.com/show).
Show HN's official guidance prioritizes something readers can actually try, preferably without signup/email barriers, and rejects landing-page-only submissions. Major overhauls can qualify; small version updates generally do not. [Show HN guidelines](https://news.ycombinator.com/showhn.html).
**Practical choice:** submit the working app or accessible demo. Show a clear screenshot and optional short demo video on that destination. Keep the real product easy to reach. No credible controlled media-format reach comparison found for Show HN.
If the submission links directly to a video, HN asks for **[video]** in the title. Current general guidelines also prohibit generated or AI-edited submissions/comments, so the previous AI-written HN draft should be treated as planning notes; the author should write the final HN text themselves. [HN guidelines](https://news.ycombinator.com/newsguidelines.html).
## Creative and measurement choices for this launch
- Make the static asset useful by itself: readable v6 editor and finished resume, product name/version, and a short free/open-source message. These are creative recommendations, not measured guarantees.
- For LinkedIn, distinguish a PDF document carousel from a post containing several separate images; the studies report materially different impression results.
- If using video, upload the file natively on LinkedIn/X, add a cover and captions/on-screen text, and start with the product's useful behavior. Do not require watching a long intro before seeing the app. LinkedIn supports custom thumbnails and captions. [LinkedIn video help](https://www.linkedin.com/help/linkedin/answer/a7174587).
- Compare post impressions, visits to the app, and useful downstream actions such as starting/exporting a resume. Do not treat autoplay video views as equivalent to visitors or unique people reached.
- An image announcement followed by a video demo is a distribution plan, not an A/B experiment: content, time, exposure, and audience differ.
+1 -1
View File
@@ -10,7 +10,7 @@ const config = createVitestProjectConfig({
export default {
...config,
// Rendering and rasterizing real PDFs is far slower than Vitest's 5s default: the all-template
// date characterization renders 15 templates in one test, and the picture-fit override case
// date characterization renders every template in one test, and the picture-fit override case
// rasterizes twice. Both land within a second or two of the default on a CI runner.
test: { ...config.test, testTimeout: 30_000 },
oxc: { jsx: { runtime: "automatic" as const } },