←

ulfblk - Bloques Reciclables

Ecosistema open source de 28 paquetes composables multi-stack (Python + TypeScript). Infraestructura reutilizable para construir APIs, SaaS multitenant, bots y dashboards.

fullstackOpen Source2026-03-21
pythontypescriptfastapinextjsreactuvpnpmturborepo

Que es

Un monorepo con 28 paquetes independientes y composables para construir proyectos web y APIs. Cada paquete resuelve un problema especifico (auth, multitenancy, billing, AI/RAG, messaging) y se puede usar solo o combinado con otros. Instala lo que necesites, ignora el resto.

Los paquetes exportan infraestructura, no logica de negocio: tu defines tus modelos y relaciones, ulfblk provee los patrones probados.

Paquetes Python (19 en PyPI)

PaqueteDescripcion
ulfblk-coreApp factory, middleware, schemas, logging, health checks
ulfblk-api-keysAPI key auth, prefix hashing, cache, CRUD router
ulfblk-authJWT RS256, RBAC, brute force protection, Fernet credentials
ulfblk-dbSQLAlchemy async, mixins, Alembic migrations
ulfblk-multitenantPostgreSQL RLS transparente via contextvars
ulfblk-redisCache + streams + consumer groups
ulfblk-gatewayAPI Gateway, rate limiting, proxy, circuit breaker
ulfblk-ai-ragChromaDB vector store, Ollama + OpenAI LLMs, RAG pipeline
ulfblk-automationRule engine, condition evaluator, action models
ulfblk-billingStripe checkout, subscriptions, webhook processor
ulfblk-calendarGoogle Calendar + memory providers, two-way sync
ulfblk-schedulingSlots, availability, conflicts, timezone-aware, concurrency control
ulfblk-channelsWhatsApp, Telegram, Email clients + webhook verification
ulfblk-notificationsEmail + push + templates
ulfblk-ci-githubGitHub Actions workflow generators + validators
ulfblk-ci-gitlabGitLab CI workflow generators
ulfblk-testingShared pytest fixtures
ulfblk-docker-devDocker Compose para desarrollo local
ulfblk-docker-prodDocker multi-stage optimizado para produccion

Paquetes TypeScript (9 en npm)

PaqueteDescripcion
@ulfblk/typesTypeScript types base (entity, api, auth, tenant)
@ulfblk/api-clientHTTP client con interceptors + token management (zero deps)
@ulfblk/uiTailwind CSS preset + cn() utility + design tokens
@ulfblk/auth-reactAuth hooks + providers + guards (RBAC)
@ulfblk/dashboardLayout, sidebar, header, data tables, tenant selector
@ulfblk/adminReact Admin DataProvider + AuthProvider
@ulfblk/calendar-uiSlotPicker, WeekView, DaySelector, useCalendar
@ulfblk/chat-uiMessageBubble, ChatContainer, ChatInput, useChat
@ulfblk/formsFormWizard, WizardStep, TextField, useFormWizard

Los 3 paquetes de GUI (calendar-ui, chat-ui, forms) usan 'use client', hooks headless, i18n via props con defaults en espanol, y Tailwind CSS variables.

Recetas

Combinaciones documentadas y testeadas de paquetes para arrancar rapido:

RecetaPaquetesDescripcion
API simplecoreFastAPI minima con health checks (6 tests E2E)
Bot de citascore + db + scheduling + calendar + channelsBooking con deteccion de intents y sync (8 tests)
MVP sin logincore + db + types + api-clientFull-stack Next.js 16 + FastAPI sin auth
SaaS multitenantcore + auth + db + multitenant + dashboardApp multitenant real con PostgreSQL RLS
EduSynccore + auth + db + scheduling + calendar + channels + 11 masSaaS educativo con 17 bloques (31 tests)
Bot WhatsAppcore + channels + ai-ragWebhook + RAG chatbot

Por que existe

La mayoria de proyectos arrancan copiando boilerplate de proyectos anteriores. ulfblk formaliza eso: paquetes testeados, versionados e independientes que se componen segun lo que necesites. Extraidos de sistemas en produccion (CRM de 11 microservicios, plataforma inmobiliaria de 9 microservicios).

Diferenciador: el unico paquete de multitenancy con PostgreSQL RLS para FastAPI en el ecosistema.

Decisiones tecnicas

  • Monorepo dual: uv workspaces (Python) + pnpm workspaces + Turborepo (TypeScript)
  • Cada paquete es independiente: sin dependencias circulares, solo ulfblk-core es obligatorio
  • Tests por paquete: cada package tiene sus propios tests, CI con 4 jobs en GitHub Actions
  • Composable, no framework: instala lo que necesitas, ignora lo demas

Te late algo similar?

Cuentame tu proyecto por WhatsApp

WhatsApp