Skip to content

Repository files navigation

Interactive CV — framework

Terminal-themed interactive CV with Tokyo Night aesthetic, bilingual ES/EN, deployed end-to-end on free tiers (Cloudflare Pages + Workers, Fly.io).

$ ls ~/
about.md   experience/   projects/   skills.json   education.md   contact.vcf

This repo is a framework — no personal data is hardcoded. Fork it, add your own personal/ directory with your data, and deploy your own interactive CV.

Stack

  • Frontend — Astro + TypeScript + Tailwind · Cloudflare Pages
  • Backend — Spring Boot 3 / Java 21 · Fly.io · generates PDF on demand
  • GitHub proxy — Cloudflare Worker caching the GitHub API
  • i18n — ES/EN via lang es|en command + auto-detection

Using as a fork

  1. Clone this repo:

    git clone https://github.com/NotPelos/interactive-cv.git my-cv
    cd my-cv
  2. Copy the profile template:

    cp apps/web/src/profile.template.ts apps/web/src/profile.ts

    Edit apps/web/src/profile.ts with your name, email, social links, and domain.

  3. Create your content by copying the example structure:

    cp -r personal.example/ personal/

    Edit the files in personal/content/ with your CV data. Add your photo as personal/avatar/avatar-raw.png.

  4. Install and run:

    pnpm install
    pnpm --filter web sync   # copies personal/ → src/content/, generates assets
    pnpm --filter web dev    # starts Astro at localhost:4321

See personal.example/README.md for the full content structure guide.

Monorepo layout

apps/
├── web/            # Astro — interactive terminal + recruiter view
│   ├── src/
│   │   ├── profile.template.ts   # placeholder profile (fork this)
│   │   ├── content/              # generated by sync-content.mjs
│   │   └── ...
│   └── scripts/
│       └── sync-content.mjs      # copies personal/ into the build
├── worker/         # Cloudflare Worker — GitHub API cache
└── api/            # Spring Boot — CV PDF + visits + Swagger
personal.example/   # example structure for personal/
docs/               # PRD, architecture, design, security, deployment
.claude/            # orchestration agents (Claude Code)

Local development

pnpm install
pnpm --filter web sync         # requires personal/ to exist
pnpm --filter web dev          # Astro at localhost:4321
pnpm --filter web:worker dev   # Worker at localhost:8787
cd apps/api && ./mvnw spring-boot:run  # Spring Boot at localhost:8080

Documentation

CI setup (for your fork)

CI needs access to your private content repo. Add a secret CV_CONTENT_PAT (a GitHub PAT with repo scope for your content repo) to your repo secrets.

License

MIT — the code, not the CV content (that belongs to the owner).


Original by NotPelos.

About

CV interactivo de NotPelos. Terminal hardcore Tokyo Night + microservicio Spring Boot. Todo en free tier.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages