Skip to content

Building the software

10x Resume candidates can use just ↗︎ commands as described below to install package dependencies and build packages in their workspace.

Install package dependencies

The 10x Resume .justfile provides a setup command which installs package dependencies with pnpm ↗︎.

Steps

  1. To install dependencies, run the following command from the git workspace
    (e.g. ~/10xresume/dev)

    Terminal window
    just setup

    This may take a while the first time it’s run as downloads packages from npm and creates the various node_modules directories.

    Sample output
    % just setup
    pnpm install --reporter=append-only
    Scope: all 24 workspace projects
    Progress: resolved 1, reused 0, downloaded 0, added 0
    Packages/Cache |  WARN  deprecated @types/mime@4.0.0
    Progress: resolved 44, reused 38, downloaded 3, added 0
    Progress: resolved 163, reused 149, downloaded 6, added 0
    ...
    Progress: resolved 987, reused 860, downloaded 14, added 874
    Progress: resolved 987, reused 860, downloaded 14, added 874, done
    devDependencies:
    + @blueprintjs/core 5.16.3
    + turbo 2.3.3
    + typescript 5.7.3
    Done in 17.4s

Build packages

The 10x Resume .justfile provides a build command which will build all the 10x Resume packages.

Steps

  1. To build the packages, run the command

    Terminal window
    just build
    Sample output
    Terminal window
    % just build
    pnpm install --reporter=append-only
    Scope: all 24 workspace projects
    Lockfile is up to date, resolution step is skipped
    Already up to date
    Done in 1.9s
    [ ! -e .env ] && cp .env.local .env
    pnpm run build
    > 10xresume@ build /Users/demo/10xresume/dev
    > dotenvx run -- turbo build --log-order=grouped
    [dotenvx@1.19.2] injecting env (18) from .env
    turbo 2.3.3
    Packages in scope: @repo/Access, @repo/Access-browser, @repo/Access-node, ...
    Running build in 23 packages
    Remote caching disabled
    @repo/Details-css:build: cache miss, executing 7b609dfde46ba168
    @repo/Details-css:build:
    @repo/Details-css:build: > @repo/Details-css@ build /Users/demo/10xresume/dev/Packages/Details-css
    @repo/Details-css:build: > css-typed Details.module.css && mkdir -p dist && cp Details.* dist
    @repo/Details-css:build:
    @repo/Access:build: cache miss, executing cecd771012320de0
    @repo/Access:build:
    @repo/Access:build: > @repo/Access@ build /Users/demo/10xresume/dev/Packages/Access
    @repo/Access:build: > tsc
    @repo/Details:build: cache miss, executing 213a292b9e263e89
    @repo/Details:build:
    @repo/Details:build: > @repo/Details@ build /Users/demo/10xresume/dev/Packages/Details
    @repo/Details:build: > tsc
    @repo/Details-render:build: cache miss, executing 116906f456eb2181
    @repo/Details-render:build:
    @repo/Details-render:build: > @repo/Details-render@ build /Users/demo/10xresume/dev/Packages/Details-render
    @repo/Details-render:build: > esbuild Render.tsx --platform=node --bundle --outdir=dist && mv dist/Render.js dist/Render.cjs
    @repo/Details-render:build:
    @repo/Details-render:build:
    @repo/Details-render:build: dist/Render.js 822.8kb
    @repo/Details-render:build: dist/Render.css 3.4kb
    @repo/Details-render:build:
    @repo/Details-render:build: Done in 56ms
    @repo/Cache:build: cache miss, executing f14667d3878cb962
    @repo/Cache:build:
    @repo/Cache:build: > @repo/Cache@ build /Users/demo/10xresume/dev/Packages/Cache
    @repo/Cache:build: > tsc
    @repo/Access-browser:build: cache miss, executing 9dc84e83686646b0
    @repo/Access-browser:build:
    @repo/Access-browser:build: > @repo/Access-browser@ build /Users/demo/10xresume/dev/Packages/Access-browser
    @repo/Access-browser:build: > pnpm run env && tsc
    @repo/Access-browser:build:
    @repo/Access-browser:build:
    @repo/Access-browser:build: > @repo/Access-browser@ env /Users/demo/10xresume/dev/Packages/Access-browser
    @repo/Access-browser:build: > dotenvx get -f ../../.env | jq -M '{LADLEACCESS}' > .ladle/DOTENV.json
    @repo/Access-browser:build:
    @repo/Cli:build: cache miss, executing e19156ec91e2de92
    @repo/Cli:build:
    @repo/Cli:build: > @repo/Cli@ build /Users/demo/10xresume/dev/Apps/Cli
    @repo/Cli:build: > concurrently 'pnpm run build:tsc' 'pnpm run build:build'
    @repo/Cli:build: [0]
    @repo/Cli:build: [0] > @repo/Cli@ build:tsc /Users/demo/10xresume/dev/Apps/Cli
    @repo/Cli:build: [0] > tsc
    @repo/Cli:build: [1] > @repo/Cli@ build:build /Users/demo/10xresume/dev/Apps/Cli
    @repo/Cli:build: [1] > tsup --onSuccess 'mv dist/10x.js dist/10x'
    @repo/Cli:build: [1]
    @repo/Cli:build: [1] CLI Building entry: 10x.ts
    @repo/Cli:build: [1] CLI Using tsconfig: tsconfig.json
    @repo/Cli:build: [1] CLI tsup v8.3.5
    @repo/Cli:build: [1] CLI Using tsup config: /Users/demo/10xresume/dev/Apps/Cli/tsup.config.ts
    @repo/Cli:build: [1] CLI Target: node20
    @repo/Cli:build: [1] CLI Cleaning output folder
    @repo/Cli:build: [1] CJS Build start
    @repo/Cli:build: [1] CJS dist/10x.js 2.89 MB
    @repo/Cli:build: [1] CJS Build success in 772ms
    @repo/Cli:build: [1] pnpm run build:build exited with code 0
    @repo/Cli:build: [0] pnpm run build:tsc exited with code 0
    @repo/App:build: cache miss, executing 0a009124da22d8ee
    @repo/App:build:
    @repo/App:build: > @repo/App@ build /Users/demo/10xresume/dev/Apps/App
    @repo/App:build: > pnpm run env && concurrently 'pnpm run build:tsc' 'pnpm run build:build'
    @repo/App:build:
    @repo/App:build: > @repo/App@ env /Users/demo/10xresume/dev/Apps/App
    @repo/App:build: > dotenvx get -f ../../.env | jq -M '{ACCESS,WORKER}' > DOTENV.json
    @repo/App:build:
    @repo/App:build: [1] > @repo/App@ build:build /Users/demo/10xresume/dev/Apps/App
    @repo/App:build: [1] > dotenvx run -f ../../.env -- vite build
    @repo/App:build: [1]
    @repo/App:build: [0] > @repo/App@ build:tsc /Users/demo/10xresume/dev/Apps/App
    @repo/App:build: [0] > dotenvx run -f ../../.env -- tsc --noEmit
    @repo/App:build: [0]
    @repo/App:build: [0] [dotenvx@1.19.2] injecting env (18) from ../../.env
    @repo/App:build: [1] [dotenvx@1.19.2] injecting env (18) from ../../.env
    @repo/App:build: [1] Apps/App/vite.config.ts defineConfig command build mode production worker off
    @repo/App:build: [1] vite v5.4.11 building for production...
    @repo/App:build: [1] transforming...
    @repo/App:build: [0] pnpm run build:tsc exited with code 0
    @repo/App:build: [1] ✓ 5616 modules transformed.
    @repo/App:build: [1] rendering chunks...
    @repo/App:build: [1] computing gzip size...
    @repo/App:build: [1] dist/index.html 3.06 kB │ gzip: 1.00 kB
    @repo/App:build: [1] dist/static.html 3.06 kB │ gzip: 1.00 kB
    ...
    @repo/App:build: [1] dist/assets/index-Dbplf1cB.js 274.95 kB │ gzip: 93.45 kB
    @repo/App:build: [1] dist/assets/index-DBZ0NyaA.js 284.47 kB │ gzip: 96.00 kB
    @repo/App:build: [1] dist/assets/index-CHeHR3_P.js 2,581.77 kB │ gzip: 808.25 kB
    @repo/App:build: [1]
    @repo/App:build: [1] ✓ built in 17.17s
    @repo/App:build: [1] pnpm run build:build exited with code 0
    Tasks: 8 successful, 8 total
    Cached: 0 cached, 8 total
    Time: 29.227s
    just env
    dotenvx run -- ./Apps/Cli/dist/10x env
    [dotenvx@1.19.2] injecting env (18) from .env
    DOWNLOAD 00000000.download
    ENCFILE 00000000.enc
    DATADIR ./Job/Data
    BUILDDIR ./Job/Portfolio/build
    APPID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    DBNAME enquiry
    CUSERNAME 00000000candidate
    CPASSWORD xxxxxxxxxxxxxxxxxxxx
    RUSERNAME 00000000
    RPASSWORD xxxxxxxxxxxxxxxxxxxx
    EMAIL candidate00000000@10xresume.com
    LINKPREFIX https://localhost:5173/?00000000
    LINKSUFFIX #/l/xxxxxxxxxxxxxxxxxxxxxx
    LINK https://localhost:5173/?00000000#/l/xxxxxxxxxxxxxxxxxxxxxx
    STATICLINK https://localhost:5173/static?00000000#/l/xxxxxxxxxxxxxxxxxxxxxx
    BOOKMARK https 5173 - 00000000 - xxxxxxxxxxxxxxxxxxxxxx - xxxxxxxxxxxxxxxxxxxx

Examine the .env file

  • Directorydev
    • .env

The build command also creates a default .env file if one isn’t present.

The .env file contains configuration details pertaining to an enquiry including

  • A unique 8 digit code for the enquiry
  • The date the enquiry was created
  • The name of the company and title of the position for the enquiry
  • Userbase access credentials for the candidate and reviewer
  • The 10x Resume link to include in the generated pdf
  • The 10x Resume access url for the registry of Userbase enquiry databases
  • The key which encrypts the enquiry information stored in the registry
  • How the 10x Resume single-page application should serve the content

The default values suffice for developing and testing 10x Resume content locally.

Candidates use the 10x Resume CLI to provide the values for an actual enquiry.

Steps

  1. Run the following command to view the .env file settings

    Terminal window
    just env
    Sample output
    % just env
    dotenvx run -- ./Apps/Cli/dist/10x env
    [dotenvx@1.19.2] injecting env (18) from .env
    DOWNLOAD 00000000.download
    ENCFILE 00000000.enc
    DATADIR ./Job/Data
    BUILDDIR ./Job/Portfolio/build
    APPID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    DBNAME enquiry
    CUSERNAME 00000000candidate
    CPASSWORD xxxxxxxxxxxxxxxxxxxx
    RUSERNAME 00000000
    RPASSWORD xxxxxxxxxxxxxxxxxxxx
    EMAIL candidate00000000@10xresume.com
    LINKPREFIX https://localhost:5173/?00000000
    LINKSUFFIX #/l/xxxxxxxxxxxxxxxxxxxxxx
    LINK https://localhost:5173/?00000000#/l/xxxxxxxxxxxxxxxxxxxxxx
    STATICLINK https://localhost:5173/static?00000000#/l/xxxxxxxxxxxxxxxxxxxxxx
    BOOKMARK https 5173 - 00000000 - xxxxxxxxxxxxxxxxxxxxxx - xxxxxxxxxxxxxxxxxxxx