Skip to content

feat(journey): close SATEC and announce the URJC research role - #8

Merged
aMonteSl merged 2 commits into
mainfrom
feat/urjc-research-role
Oct 5, 2026
Merged

aMonteSl merged 2 commits into
mainfrom
feat/urjc-research-role

Conversation

@aMonteSl

@aMonteSl aMonteSl commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • SATEC Cloud & Systems N2 internship closed on 2026-09-28. Its copy is now in the past tense everywhere.
  • New work entry: Specialist Technician (Research) at URJC, in the project "Dependencias en colecciones complejas de módulos software" (PID2022-139551NB-I00, AEI; PIs J. M. González Barahona and F. Gortázar), starting 2026-10-08. It is combined with the UPM master's.
  • Automatic switch on the start date. Until 2026-10-07 the hero, profile and JSON-LD say "starting soon / upcoming". From 2026-10-08 they say "currently active", with no extra commit needed.
    • In the browser, the visitor's real date is applied after hydration through the existing useJourneyToday, now extracted to src/features/journey/useJourneyToday.ts.
    • In the static HTML, next.config.ts injects NEXT_PUBLIC_BUILD_DATE (Madrid time), which replaces the hard-coded CURRENT_DATE. The existing daily deploy cron (06:17 UTC) refreshes it.
  • Timeline: an entry that has not started yet draws as a dashed marker on its start date. Its detail card shows "Starts Oct 8, 2026 · Upcoming". This fixes the negative-width bar that an open entry starting after today used to produce.

Test plan

  • npm run check passes: lint, typecheck, translations, and the journey timeline check, which has a new upcoming-entry case.
  • npm run build passes. The prerendered / and /es/ show the upcoming copy for today's build date.
  • Static export opened with ?journeyToday=2026-10-05:
    • hero shows "Starting soon" / "Próxima incorporación";
    • profile pill says "Upcoming";
    • timeline shows a dashed green dot on Oct 8, and its card reads "Starts Oct 8, 2026 · Upcoming";
    • checked in EN and ES, on desktop and on mobile (vertical map).
  • Same with ?journeyToday=2026-10-08: "Currently active", the bar is active, and the card reads "Oct 2026 - Present · Active".
  • No console errors or hydration warnings.

Merge before 2026-10-08 so the "upcoming" phase goes live. After that the switch happens on its own.
The CV PDFs in public/cv/ still reflect the September 2026 revision and will be replaced later.

🤖 Generated with Claude Code

- SATEC Cloud & Systems N2 internship ends on 2026-09-28.
- New work entry: Specialist Technician in the URJC research project
  "Dependencias en colecciones complejas de módulos software"
  (PID2022-139551NB-I00, AEI), starting 2026-10-08.
- Hero, profile and JSON-LD copy switch from "upcoming" to "current" on
  the start date: in the browser with the visitor's date, and in the
  prerendered HTML through the build date (NEXT_PUBLIC_BUILD_DATE) that
  the daily deploy refreshes.
- The timeline draws entries that have not started yet as dashed markers
  on their start date, with a "Starts <date> · Upcoming" detail card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Typography and layout
- Load Inter through next/font: the CSS asked for it but never loaded it,
  so every OS fell back to its own system font.
- Hero: CTAs before the long bio so they sit above the fold on 1366x768
  and 1024x768 laptops; the bio is left-aligned on phones; balanced headings.
- Section headers share the max-w-6xl content column (no 32px offset at
  >=1600px); featured project media aligns to the top of its card.
- Skill cards: "View group" pinned to the bottom, container-query header so
  narrow cards keep their titles on one or two lines.
- Journey: the "today" label no longer covers the next year's label.
- Sidebar fits 1366x768 screens (smaller portrait and rows when short).

Motion
- MotionConfig reducedMotion="user" app-wide and no more
  `animate ? fadeInUp() : {}` spreads, which left elements stuck at
  opacity 0 for reduced-motion visitors after hydration.
- Hero entrance is pure CSS, so the first screen paints before hydration;
  the preload now targets the portrait actually rendered (hero-320).
- Softer, longer scroll-in entrances; real staggers instead of dead
  staggerChildren blocks; no duplicate entrance on secondary projects.
- Journey timeline draws in when it scrolls into view; infinite pulses are
  gated (in view, horizontal layout, reduced motion); the ongoing node
  breathes instead of blinking.
- No `transition-all` on framer-animated elements; non-clickable cards no
  longer lift on hover.

Performance
- Hero featured rotation drives its progress bar with a MotionValue and
  pauses off-screen (it re-rendered the Hero every frame, forever).
- Silk background: dpr 1, no MSAA, low-power GPU, ~30fps on-demand loop,
  reactive reduced-motion check, transparent fallback (no gradient pop-in).
- Drop the stale hand-written @react-three/fiber type shims.

Devices
- Notch-aware page gutter (px-gutter) for viewport-fit=cover, safe-area
  insets on header, drawer and floating menu button.
- Footer clears the floating menu button below xl; 44px touch targets on
  footer links, DOI chip and tablet header nav; tech tags at 11px.
- Base CSS moved to @layer base: one focus ring per element instead of
  outline + ring with 2px corners; ~150 lines of dead utilities removed.
- Manifest theme/background colour matches the site (#040304).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@aMonteSl
aMonteSl merged commit c7c599f into main Oct 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant