Contribution workflow
Fork the repository
Fork marcoszinga94/Argentista on GitHub, then clone your fork locally:
Create a branch
Create a descriptive branch for your change:Use a short, lowercase, hyphen-separated name that describes what the branch does (e.g.,
add-tipo-cambio-page, fix-inflacion-chart).Make your changes
Follow the code conventions below. Run the build frequently to catch type errors early:
Code conventions
React components
Use
.jsx extension. Use useState and useEffect hooks. Fetch data from APIs inside useEffect. No class components.Astro components
Use
.astro extension. Import React components with the client:load directive for interactivity.Styling
Use Tailwind CSS utility classes exclusively. Do not write custom CSS files or inline style attributes.
Naming
PascalCase for component files and function names (e.g.,
DolarCard.jsx). camelCase for all other functions and variables.Additional rules
- No code comments unless explicitly requested in the task.
- Never expose API keys or secrets in source code. Use environment variables.
- File extensions matter —
.jsxfor React,.astrofor Astro. Do not mix them.
Component conventions
React components (.jsx)
React components handle data fetching and interactive UI. They use hooks and render JSX:
Astro components (.astro)
Astro components define page structure and import React components with client:load for client-side hydration:
The
client:load directive is required for any React component that uses useState, useEffect, or browser APIs. Without it, the component renders as static HTML with no interactivity.