Skip to content

Medalcode/PortfolioMedalcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

95 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PortfolioMedalcode

๐ŸŽฏ Overview

PortfolioMedalcode is a minimalist and modern template designed for developers and digital creatives. Its dark-toned aesthetic with mint green accents offers a clean, elegant, and functional visual experience, ideal for portfolios, dashboards, or tech landing pages.

AutoKanban Compatible This repository adheres to the Meta Project Standard. All development progress is tracked automatically via the Bitacora.md file.

๐Ÿ“‹ Development Log: Check out the Bitacora.md to see the latest updates and roadmap.

๐Ÿ“ Project Structure

โ””โ”€โ”€ ๐Ÿ“PortfolioMedalcode โ””โ”€โ”€ ๐Ÿ“src โ”œโ”€โ”€ ๐Ÿ“features # Feature modules (Domain logic) โ”œโ”€โ”€ ๐Ÿ“shared # Shared resources (Core UI/Utils) โ”œโ”€โ”€ ๐Ÿ“layouts # Global App Layouts โ”œโ”€โ”€ ๐Ÿ“pages # Astro Routing โ””โ”€โ”€ ๐Ÿ“content # Content Collections โ””โ”€โ”€ ๐Ÿ“docs # Architecture & AI Governance โ”œโ”€โ”€ ๐Ÿ“„ agents.md # AI Agent Roles โ”œโ”€โ”€ ๐Ÿ“„ skills.md # Parametric AI Skills โ””โ”€โ”€ ๐Ÿ“„ ARCHITECTURE.md โ”œโ”€โ”€ astro.config.mjs โ”œโ”€โ”€ package.json โ””โ”€โ”€ tsconfig.json

๐Ÿ› ๏ธ Technology Stack

  • Framework: Astro v5.6.1
  • UI Library: Preact v10.26.2
  • Styling: TailwindCSS v4.0.8
  • Icons: astro-icon v1.1.5
  • Syntax Highlighting: PrismJS v1.30.0
  • Animations: tailwindcss-animated v2.0.0
  • Analytics: @vercel/speed-insights v1.2.0

โœจ Key Features

  1. ๐Ÿš€ Pro Performance

    • New: astro:assets image optimization with AVIF/WebP support.
    • New: Native View Transitions for smooth, app-like navigation.
    • Static site generation (SSG) for blazing fast load times.
    • Partial hydration with Preact.
  2. ๐Ÿ“ฑ PWA & Offline Ready

    • New: Full Progressive Web App (PWA) support.
    • New: Service Worker for offline capabilities and caching.
    • New: Installable on mobile and desktop devices.
  3. ๐Ÿ’ป Modern Development Experience

    • TypeScript support
    • Hot module replacement
    • ESLint & Prettier integration
  4. ๐Ÿ” SEO & Analytics

    • New: Enhanced JSON-LD Rich Snippets (Person Schema).
    • New: Dynamic RSS Feed generation using Content Collections.
    • Built-in sitemap generation
    • Vercel Speed Insights
  5. ๐ŸŽจ Styling & UI

    • TailwindCSS v4 with utility-first styling.
    • New: Reading Time estimation for blog posts.
    • New: AJAX Contact Form with immediate feedback and security.
    • New: Copy Code functionality with visual feedback.
    • Animated components with tailwindcss-animated (Scroll Reveal).
    • Enhanced Dark Mode with anti-FOUC protection.
    • Custom 404 Error Page with auto-language detection.
    • Responsive design.
  6. ๐ŸŒ Internationalization

    • Multi-language support (English/Spanish)
    • New: Intuitive Language Picker (ES | EN toggle)
    • New: Smart Navigation with mobile support
    • JSON-LD Structured Data for SEO (Person Schema)

๐Ÿ›ก๏ธ Reliability & Security Standards

All projects in this portfolio adhere to strict engineering constraints to ensure production readiness:

๐Ÿ—๏ธ Quality Assurance

  • Type Safety: 100% TypeScript codebase preventing runtime type errors.
  • Input Validation: Runtime schema validation (Zod) on all API boundaries to reject malformed payloads early.
  • CI/CD Ready: Automated pipelines ensure build integrity on every push.

๐Ÿ”’ Security & Limits

  • Non-Custodial Design: No sensitive tokens (GitHub/AWS) are persisted on disk; everything is injected via process environment.
  • Hard Limits: All gateways force payload caps (e.g., 1MB) and timeout enforcement (30s) to prevent resource exhaustion.
  • Fail-Open Strategy: Critical services (like Cache) are designed to bypass silently on failure to maintain availability.

๐Ÿš€ Getting Started

  1. ๐Ÿ“ฆ Installation

    ๐Ÿš€Astro Installation

    npm create astro@latest -- --template Medalcode/PortfolioMedalcode

    or

    ๐Ÿ”งManual Installation

    Clone Repository

    git clone https://github.com/Medalcode/PortfolioMedalcode.git

    Install Dependencies

    npm install
  2. โšก Development

    npm run dev
  3. ๐Ÿ—๏ธ Build

    npm run build
  4. ๐Ÿ‘€ Preview

    npm run preview

๐Ÿงฐ Development Scripts

Code Quality

# Lint your code
npm run lint

# Auto-fix linting issues
npm run lint:fix

# Format code with Prettier
npm run format

# Check code formatting
npm run format:check

# Type checking
npm run check
npm run type-check

# Testing
npm run test          # Run unit tests
npm run test:coverage # Run tests with coverage

Recommended Workflow

Before committing:

npm run format        # Format code
npm run lint:fix      # Fix linting issues
npm run check         # Verify types
npm run build         # Test build

โš™๏ธ Configuration

The project is configured through several key files:

  • astro.config.mjs: Main Astro configuration
  • tailwind.config.js: TailwindCSS configuration
  • tsconfig.json: TypeScript configuration

๐ŸŽจ Customization

๐Ÿ“„ Adding New Pages

Create new .astro files in the src/pages directory. The file name will determine the route.

๐Ÿ”ง Adding New Languages or Technologies

To incorporate a new programming language or technological tool into the site's capsules, follow these steps:

  1. ๐Ÿ–ผ๏ธ Add the SVG icon: Place the SVG file of the language or tool in the src/icons folder.

    > **๐Ÿ’ก Recommendation**: For SVG icons, I recommend using [SVGL](https://svgl.app/), an excellent library of high-quality vectors that offers optimized icons for most popular languages and technologies.
    
  2. ๐Ÿ“ Register the language: Open the utils/languages.ts file and add a new entry to the languages object following this format:

    html: {
        name: "HTML 5",
        iconName: "html",
    },

    Where:

    • html: Is the unique identifier for the language
    • name: Is the name that will be displayed visibly in the interface
    • iconName: Is the name of the SVG file without the extension (must match exactly with the file name in src/icons)

Once these steps are completed, the new language or technology will be available for use in the site's capsules. You can select it when creating or editing projects or posts, and the corresponding icon will be displayed correctly in the interface.

If you encounter any issues during this process, try restarting the development server. In some cases, changes to configuration files or static resources require a restart to be detected correctly.

To verify that the new language has been added correctly, check the list of available technologies in the user interface after restarting the server.


๐Ÿงท Favicon Setup

To customize your site's favicon and web app icons, you can generate all the necessary variants using favicon.io. Upload your logo or icon, and the tool will create a full set of optimized files for various devices and platforms.

Place the generated files in the ๐Ÿ“‚ public directory as follows:

๐Ÿ“‚ public
โ”œโ”€โ”€ ๐Ÿ“„ android-chrome-192x192.png
โ”œโ”€โ”€ ๐Ÿ“„ android-chrome-512x512.png
โ”œโ”€โ”€ ๐Ÿ“„ apple-touch-icon.png
โ”œโ”€โ”€ ๐Ÿ“„ favicon-16x16.png
โ”œโ”€โ”€ ๐Ÿ“„ favicon-32x32.png
โ”œโ”€โ”€ ๐Ÿ“„ favicon.ico
โ””โ”€โ”€ ๐Ÿ“„ site.webmanifest

๐Ÿ’ก Donโ€™t forget to update the contents of site.webmanifest to match your appโ€™s name, description, and theme color for a complete PWA experience.


๐ŸŽจ Styling

  • Use TailwindCSS classes for styling
  • Add custom styles in src/styles/global.css

๐Ÿงฉ Components

  • Create reusable components in src/components
  • Import icons using astro-icon

๐Ÿš€ Deployment

The site is configured for deployment on Vercel, but can be deployed to any static hosting service.

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿงพ Proyectos aรฑadidos recientemente

  • GitSpy โ€” API intermedia para GitHub con sistema de cachรฉ (Redis), cola de eventos (BullMQ), control de rate limits y una suite de tests completa. Ficha de contenido aรฑadida en src/content/projects/en/gitspy.md y src/content/projects/es/gitspy.md. Repositorio: GitHub
  • Colabb โ€” Terminal Linux moderna escrita en C++ con GTK3, integrando asistencia de IA (Totem) para sugerencias contextuales y explicaciรณn de errores en tiempo real. Ficha de contenido aรฑadida. Repositorio: GitHub
  • AutoKanban โ€” Visualizador estรกtico que transforma archivos Bitacora.md de GitHub en tableros Kanban interactivos usando la API de GitSpy. Repositorio: GitHub
  • Pathwise โ€” (Ex-Panoptes) Ecosistema de navegaciรณn profesional inteligente con Dashboard Web, Extensiรณn y Motor IA para optimizar la bรบsqueda de empleo. Repositorio: GitHub
  • FinLogic โ€” Plataforma de ingenierรญa de datos financieros con arquitectura "Lightweight Ingest, Heavy Analysis" usando DuckDB y FastAPI. Repositorio: GitHub

About

PortfolioMedalcode is a minimalist and modern template designed for developers and digital creatives. Its dark-toned aesthetic with mint green accents offers a clean, elegant, and functional visual experience, ideal for portfolios, dashboards, or tech landing pages.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors