Esta guía te ayudará a configurar tu entorno de desarrollo local para Fasttify.
- Node.js: Versión 20.18.3 o superior
- pnpm: Versión 10.18.0 o superior (gestor de paquetes)
- AWS CLI: Configurado con credenciales válidas
- Git: Para clonar el repositorio
- Cuenta AWS con permisos para AWS Amplify Gen2
- Acceso a servicios: DynamoDB, Lambda, S3, CloudFront, SES, Cognito
git clone https://github.com/Fasttify/fasttify.git
cd fasttify# Instalar pnpm globalmente si no lo tienes
npm install -g pnpm@10.18.0
# Instalar dependencias del proyecto
pnpm installCrea un archivo .env.local en la raíz del proyecto:
# AWS Amplify
NEXT_PUBLIC_S3_URL="YOU BUCKET URL"
NEXT_PUBLIC_AWS_REGION="YOU AWS REGION"
BUCKET_NAME="YOU BUCKET NAME"
AWS_REGION="YOU AWS REGION"
CLOUDFRONT_MULTI_TENANT_DISTRIBUTION_ID="YOU CLOUDFRONT MULTI TENANT DISTRIBUTION ID"
CLOUDFRONT_DISTRIBUTION_ID="YOU CLOUDFRONT DISTRIBUTION ID"
JWT_SECRET="YOU JWT KEY"
LAMBDA_EMAIL_BULK="YOU LAMBDA FOR EMAILS"
ANALYTICS_WEBHOOK_JWT_SECRET="YOU GENERATE API KEY"
# Desarrollo
APP_ENV=development
NEXT_PUBLIC_APP_ENV=development
TEMPLATES_DEV_ROOT=packages/example-themes/fasttify/theme
DEV_CACHE_ENABLED=true
POLAR_ACCESS_TOKEN=YOU POLAR ACCESS TOKEN
POLAR_WEBHOOK_SECRET=YOU POLAR WEBHOOK SECRET
POLAR_ORGANIZATION_ID=YOU POLAR ORGANIZATION ID
SUCCESS_URL=YOU SUCCESS URL
USER_POOL_ID=YOU USER POOL ID
RUST_BACKTRACE=1x
# Instalar Amplify CLI Gen2
npm install -g @aws-amplify/backend-cli
# Inicializar sandbox de desarrollo
npx ampx sandbox --identifier tu-identificador --stream-function-logs# Servidor de desarrollo con Turbopack
pnpm run dev
# Build del proyecto
pnpm run build
# Tests unitarios
pnpm run test
# Tests con coverage
pnpm run test:coverage
# Linting
pnpm run lint
# Verificación de tipos TypeScript
pnpm run type-check# Iniciar sandbox de desarrollo
pnpm run sandbox
# Deploy a sandbox
pnpm run sandbox:deploy
# Ver logs de funciones Lambda
pnpm run sandbox:logs# Instalar dependencias en todos los workspaces
pnpm run workspace:install
# Actualizar dependencias
pnpm run workspace:update
# Build de todos los packages
pnpm run build:packages
# Tests de todos los packages
pnpm run test:packagesfasttify/
├── amplify/ # Backend AWS Amplify Gen2
│ ├── auth/ # Configuración de autenticación
│ ├── data/ # Esquemas GraphQL y funciones IA
│ ├── functions/ # Funciones Lambda
│ └── storage/ # Configuración S3
├── app/ # Next.js App Router
│ ├── (main-layout)/ # Landing y páginas públicas
│ ├── (setup-layout)/ # Wizard de configuración
│ ├── [store]/ # Rutas dinámicas de tiendas
│ └── api/ # API Routes
├── packages/ # Workspaces del monorepo
│ ├── liquid-forge/ # Motor de plantillas Liquid
│ ├── orders-app/ # Gestión de pedidos
│ ├── theme-editor/ # Editor de temas
│ └── tenant-domains/ # Gestión de dominios
├── components/ # Componentes UI reutilizables
├── lib/ # Servicios y utilidades
└── docs/ # Documentación
# Sincronizar plantillas para una tienda específica
pnpm run template-sync -- start STORE_ID
# El sistema observa cambios y sincroniza automáticamente# Compilar plantillas de email
pnpm run email:compile
# Probar sistema de emails
pnpm run email:test
# Desarrollo completo de emails
pnpm run email:devInstala las siguientes extensiones:
- ES7+ React/Redux/React-Native snippets
- TypeScript Importer
- Tailwind CSS IntelliSense
- Prettier - Code formatter
- ESLint
El proyecto incluye configuración de Prettier. Asegúrate de tener:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}# Desarrollo con logs detallados
DEBUG=* pnpm run dev
# Build con análisis de bundle
ANALYZE=true pnpm run build# Ver logs en tiempo real
pnpm run sandbox:logs
# Logs específicos de una función
npx ampx logs --function-name nombre-funcion# Limpiar node_modules y reinstalar
rm -rf node_modules
rm pnpm-lock.yaml
pnpm install# Configurar credenciales AWS
aws configure
# O usar variables de entorno
export AWS_ACCESS_KEY_ID=tu-access-key
export AWS_SECRET_ACCESS_KEY=tu-secret-key
export AWS_DEFAULT_REGION=us-east-1# Reinicializar sandbox
npx ampx sandbox --identifier nuevo-identificadorIMPORTANTE: Genera un secret seguro:
# Generar secret seguro
openssl rand -base64 64Asegúrate de usar la región correcta (us-east-2):
# Verificar región actual
aws configure get region
# Cambiar región si es necesario
aws configure set region us-east-1Una vez configurado el entorno de desarrollo: