layout home hero name text tagline image actions Asena A modern ioc web-framework for bun Fast, easy and Spring-like src alt /asena-logo.svg Asena theme text link brand Get started /docs/get-started theme text link alt View on GitHub https://github.com/AsenaJs/Asena features title details ⚡ High Performance Built on Bun runtime with up to 295k req/sec. SIMD-accelerated routing and zero-copy file serving for maximum speed. title details 🎯 Full IoC Container Field-based dependency injection for all components. Clean architecture with decorators for services, controllers, and middleware. title details 🔌 Pluggable Adapters Choose between Ergenecore (native Bun) or Hono adapter. Switch adapters without changing your business logic. title details 🌐 WebSocket Support Built-in WebSocket handling with namespace management. Create real-time applications with ease. title details 🛡️ Type-Safe Validation Integrated Zod validation with automatic error handling. Request validation at route, controller, or global level. title details 📦 Official Packages Logger, Drizzle ORM integration, and CLI tools. Everything you need to build production-ready applications. Built with Asena ScrumPokerReal-time planning poker for agile teamsREST APIWebSocketProductionCheckCryptoCrypto adress validationREST APIMigrationWebsocket View All Projects → <style> .showcase-section { max-width: 1152px; margin: 3rem auto 4rem; padding: 0 1.5rem; text-align: center; } .showcase-title { font-size: 1.75rem; font-weight: 600; margin-bottom: 1.5rem; color: var(--vp-c-text-1); } .showcase-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; } .showcase-card { display: flex; flex-direction: column; align-items: center; padding: 1.5rem; background: var(--vp-c-bg-soft); border: 1px solid var(--vp-c-divider); border-radius: 8px; text-decoration: none; transition: all 0.2s ease; } .showcase-card:hover { border-color: var(--vp-c-brand-1); transform: translateY(-2px); box-shadow: 0 8px 16px -4px rgba(0, 0, 0, 0.1); } .card-logo { margin-bottom: 1rem; } .crypto-brand { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; font-family: system-ui, -apple-system, sans-serif; font-weight: 600; font-size: 1.375rem; } .ctext { color: var(--vp-c-text-1); } .ctext-grad { background: linear-gradient(135deg, #4dabf7, #339af0); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .card-desc { font-size: 0.875rem; color: var(--vp-c-text-2); margin: 0 0 1rem 0; line-height: 1.5; } .card-tags { display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap; } .ctag { padding: 0.25rem 0.625rem; background: var(--vp-c-brand-soft); color: var(--vp-c-brand-1); border-radius: 4px; font-size: 0.75rem; font-weight: 500; } .view-all { display: inline-block; padding: 0.5rem 1rem; color: var(--vp-c-brand-1); text-decoration: none; font-size: 0.875rem; font-weight: 500; transition: color 0.2s ease; } .view-all:hover { color: var(--vp-c-brand-2); } @media (max-width: 768px) { .showcase-section { margin: 2rem auto 3rem; } .showcase-title { font-size: 1.5rem; } .showcase-grid { grid-template-columns: 1fr; } } </style>