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)
| Paquete | Descripcion |
|---|---|
ulfblk-core | App factory, middleware, schemas, logging, health checks |
ulfblk-api-keys | API key auth, prefix hashing, cache, CRUD router |
ulfblk-auth | JWT RS256, RBAC, brute force protection, Fernet credentials |
ulfblk-db | SQLAlchemy async, mixins, Alembic migrations |
ulfblk-multitenant | PostgreSQL RLS transparente via contextvars |
ulfblk-redis | Cache + streams + consumer groups |
ulfblk-gateway | API Gateway, rate limiting, proxy, circuit breaker |
ulfblk-ai-rag | ChromaDB vector store, Ollama + OpenAI LLMs, RAG pipeline |
ulfblk-automation | Rule engine, condition evaluator, action models |
ulfblk-billing | Stripe checkout, subscriptions, webhook processor |
ulfblk-calendar | Google Calendar + memory providers, two-way sync |
ulfblk-scheduling | Slots, availability, conflicts, timezone-aware, concurrency control |
ulfblk-channels | WhatsApp, Telegram, Email clients + webhook verification |
ulfblk-notifications | Email + push + templates |
ulfblk-ci-github | GitHub Actions workflow generators + validators |
ulfblk-ci-gitlab | GitLab CI workflow generators |
ulfblk-testing | Shared pytest fixtures |
ulfblk-docker-dev | Docker Compose para desarrollo local |
ulfblk-docker-prod | Docker multi-stage optimizado para produccion |
Paquetes TypeScript (9 en npm)
| Paquete | Descripcion |
|---|---|
@ulfblk/types | TypeScript types base (entity, api, auth, tenant) |
@ulfblk/api-client | HTTP client con interceptors + token management (zero deps) |
@ulfblk/ui | Tailwind CSS preset + cn() utility + design tokens |
@ulfblk/auth-react | Auth hooks + providers + guards (RBAC) |
@ulfblk/dashboard | Layout, sidebar, header, data tables, tenant selector |
@ulfblk/admin | React Admin DataProvider + AuthProvider |
@ulfblk/calendar-ui | SlotPicker, WeekView, DaySelector, useCalendar |
@ulfblk/chat-ui | MessageBubble, ChatContainer, ChatInput, useChat |
@ulfblk/forms | FormWizard, 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:
| Receta | Paquetes | Descripcion |
|---|---|---|
| API simple | core | FastAPI minima con health checks (6 tests E2E) |
| Bot de citas | core + db + scheduling + calendar + channels | Booking con deteccion de intents y sync (8 tests) |
| MVP sin login | core + db + types + api-client | Full-stack Next.js 16 + FastAPI sin auth |
| SaaS multitenant | core + auth + db + multitenant + dashboard | App multitenant real con PostgreSQL RLS |
| EduSync | core + auth + db + scheduling + calendar + channels + 11 mas | SaaS educativo con 17 bloques (31 tests) |
| Bot WhatsApp | core + channels + ai-rag | Webhook + 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