Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/santiagonieto09/portafolio/llms.txt

Use this file to discover all available pages before exploring further.

The activity feed shows the 8 most recent public events from the GitHub public events API, giving visitors an up-to-date view of active development. Events are fetched server-side and embedded in the initial page payload, so the feed is visible immediately without any client-side loading state.

ActivityFeed component

Source: src/components/portfolio/activity-feed.tsx ActivityFeed accepts a pre-mapped list of activity items:
function ActivityFeed({ items }: { items: ActivityItem[] })
The component returns null when the items array is empty (e.g. when the GitHub API returns no public events). Otherwise it renders a <section> with a heading and an ordered list (<ol>) of ActivityRow sub-components. Each ActivityRow renders a card with two columns: Left column — Summary text (item.summary) in bold and the repository name with optional branch appended as {repoName}/{branch} in a monospace style. Right column — A relative timestamp (useRelativeTime(item.createdAt)) hidden on mobile (hidden sm:inline) and an external-link button (<ExternalLink>) that opens item.repoUrl in a new tab. The aria-label on the button distinguishes between branch links (“Ver los commits de la rama en ”) and plain repository links (“Abrir el repositorio en GitHub”).

ActivityItem type

Defined in src/domain/github/types.ts:
interface ActivityItem {
  id: string;
  type: string;
  repoName: string;
  repoUrl: string;   // branch URL for push events, repo URL otherwise
  branch: string | null;
  createdAt: string;
  summary: string;
}
FieldDescription
idGitHub event ID — used as the React list key
typeRaw GitHub event type string (e.g. "PushEvent")
repoNameowner/repo short name from the event’s repo.name field
repoUrlBranch commits URL for push events; plain repository URL otherwise
branchBranch name for events that target a specific branch; null otherwise
createdAtISO 8601 timestamp from the event
summaryHuman-readable description of the event (Spanish)

Event types and summaries

The describeEvent() server-side helper maps each raw GitHub event type to its Spanish summary string:
Event typeSummary
PushEvent"{n} commit(s) publicados"n is payload.commits.length
CreateEvent"Creó {ref_type}"ref_type is payload.ref_type (e.g. "branch", "tag")
ReleaseEvent"Publicó el release {tag_name}"tag_name from payload.release.tag_name
WatchEvent"Marcó el repositorio con una estrella"
ForkEvent"Hizo un fork del repositorio"
PullRequestEvent"Pull request {action}"action from payload.action
IssuesEvent"Issue {action}"action from payload.action
OtherEvent type string with the "Event" suffix stripped (e.g. "DeleteEvent""Delete")

Branch linking

The branchFrom() helper extracts a branch name from an event payload and constructs a contextual URL:
  • PushEvent — Branch is extracted from payload.ref by stripping the refs/heads/ prefix (e.g. refs/heads/mainmain). The repoUrl is set to https://github.com/{repoName}/commits/{branch} so the link opens the commit history for that branch.
  • CreateEvent of ref_type === "branch" — Branch is payload.ref. URL is the branch commits page.
  • PullRequestEvent — Branch is the base branch from payload.pull_request.base.ref.
  • All other events — branch is null and repoUrl is the plain https://github.com/{repoName}.
The GitHub events API returns up to 30 public events per request. The portfolio trims this to the 8 most recent (.slice(0, 8)) to keep the feed concise. Private repository events and events from organisations are not included — only public user events are visible.

Build docs developers (and LLMs) love