TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Construye constancia, un día a la vez.
Translation pending
ProductivityTypeScript · PLpgSQLGitHub @FranklyBautistaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Habit tracker multiplataforma con TypeScript y Next.js para crear hábitos diarios, registrar avances y visualizar rachas, calendarios y estadísticas, con sincronización entre web, móvil y escritorio.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Habit tracker personal multiplataforma. El desarrollo empezó con una web responsive instalable como PWA en Next.js y ahora avanza hacia la app móvil con Expo; toda la lógica independiente de interfaz se comparte mediante un workspace de pnpm. PLANIFICACION_HABIT_TRACKER.md es la fuente de verdad del alcance y del estado de cada fase. MVP web/PWA v1 (Fases 0–7) completado. Fase 8 (app móvil con Expo) en su tramo final: la app Android funciona contra producción y empieza la beta interna; faltan la prueba en iOS y cerrar la beta.Read the full README ↗
Habit tracker personal multiplataforma. El desarrollo empezó con una web responsive instalable como PWA en Next.js y ahora avanza hacia la app móvil con Expo; toda la lógica independiente de interfaz se comparte mediante un workspace de pnpm.
PLANIFICACION_HABIT_TRACKER.md es la fuente de verdad del alcance y del estado
de cada fase.
MVP web/PWA v1 (Fases 0–7) completado. Fase 8 (app móvil con Expo) en su tramo final: la app Android funciona contra producción y empieza la beta interna; faltan la prueba en iOS y cerrar la beta.
docs/product
(alcance, historias, wireframes, sistema visual y fixtures)./hoy, /habitos, /calendario,
/estadisticas y /ajustes, con navegación inferior en móvil y lateral en
escritorio, estados vacíos/carga/error y modo claro./verificar
(el enlace del correo sigue funcionando); las rutas privadas validan la identidad en el servidor mediante
el middleware proxy.ts y clientes Supabase separados para navegador y
servidor./auth/callback); si el correo ya tenía cuenta, Google se vincula a ella.
Requiere activar el proveedor en Supabase: ver
docs/setup/SUPABASE.md.docs/decisions/0001-supabase-sync.md):
sin UI optimista, revalidación tras cada mutación y al recuperar foco/conexión,
y migración explícita de los datos locales a la primera cuenta.public/sw.js) con caché
versionado que no almacena respuestas autenticadas, y página offline de solo
lectura (/offline).main); lista de verificación de despliegue y rollback en
docs/setup/DEPLOY.md.@axe-core/playwright): flujo de
hábitos, PWA y flujo Supabase.import_local_data.habit_archive_periods, rellenada por un trigger).reorder_habits.Limitación conocida: sin hardware Apple, la instalación en iOS y el recorrido en Safari quedan sin verificar; es un riesgo aceptado y documentado en la Fase 7 que debe resolverse antes de cerrar el criterio de salida de la Fase 8.
apps/mobile con Expo SDK 57, Expo Router (rutas tipadas) y TypeScript;
reutiliza @habit-tracker/domain y @habit-tracker/database.expo-secure-store.expo-web-browser + PKCE,
vuelta por habittracker://auth/callback), con el mismo cliente OAuth Web que
la web; verificado en local, llega al APK con el próximo build.expo-notifications: hasta 5 por dispositivo, con
hora manual y alarmas exactas en Android 12+.development para desarrollar y preview (APK
independiente contra Supabase de producción) para la beta interna.apps/desktop).packages/design-tokens y packages/ui-web se crearán cuando su fase lo
requiera.corepack enable
corepack install --global [email protected]
pnpm install
Instala siempre desde la raíz del repo, nunca dentro de apps/*.
pnpm supabase:start
pnpm dev
La web queda disponible en http://localhost:3000. Exporta
NEXT_PUBLIC_SUPABASE_URL y NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY con los
valores de pnpm exec supabase status (ver .env.example y
docs/setup/SUPABASE.md).
pnpm supabase:start
cp apps/mobile/.env.example apps/mobile/.env # rellena con `supabase status`
pnpm --filter @habit-tracker/mobile start
Para un teléfono físico usa la IP LAN de tu máquina en vez de localhost.
Detalles, builds de EAS y distribución en
apps/mobile/README.md.
pnpm lint # ESLint en todos los paquetes
pnpm typecheck # todos los paquetes (incluye apps/mobile)
pnpm test # Vitest en todos los paquetes
pnpm test:e2e # build + Playwright de la web
pnpm build # build de producción de la web
La primera ejecución E2E requiere instalar Chromium y sus dependencias:
pnpm --filter @habit-tracker/web exec playwright install --with-deps chromium
Para aplicar o comprobar el formato de Prettier (obligatorio antes de commitear, junto con lint):
pnpm format
pnpm format:check
La revisión de calidad, accesibilidad, rendimiento y deuda conocida del
prototipo está en docs/quality/FASE_5.md.
pnpm supabase:start # levanta la pila local (Docker)
pnpm db:reset # reconstruye la BD desde migraciones + seed
pnpm db:test # pruebas pgTAP de supabase/tests/
pnpm db:lint / pnpm db:advisors
pnpm db:types # regenera packages/database/src/database.types.ts
El login con Google está desactivado en local por defecto
([auth.external.google] enabled = false); para probarlo hacen falta las
credenciales de Google en el .env de la raíz y activarlo solo en tu copia, como
explica docs/setup/SUPABASE.md.
La guía reproducible de base de datos, separación de entornos y variables está en
docs/setup/SUPABASE.md. Usa .env.example
solo como referencia; nunca copies secretos al repositorio y no añadas
SUPABASE_SERVICE_ROLE_KEY (las variables NEXT_PUBLIC_* / EXPO_PUBLIC_*
viajan en el bundle del cliente).
habit_tracker/
├── apps/
│ ├── web/ # Next.js 16 con App Router (PWA desplegada)
│ └── mobile/ # Expo SDK 57 + Expo Router (Fase 8, beta Android)
├── packages/
│ ├── database/ # Tipo Database generado desde Supabase
│ └── domain/ # Entidades Zod, fechas, rachas y métricas (sin UI)
├── supabase/ # config, migraciones, seed y pruebas pgTAP
├── docs/
│ ├── product/ # Alcance, wireframes, sistema visual y fixtures
│ ├── quality/ # Revisión de calidad del prototipo
│ ├── setup/ # Guías de Supabase y despliegue
│ └── decisions/ # ADRs (0001: Supabase como fuente de verdad)
├── package.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
└── PLANIFICACION_HABIT_TRACKER.md
Las carpetas de escritorio (apps/desktop) y los paquetes de UI compartida se
crearán al comenzar sus fases para evitar estructura vacía.
GitHub Actions ejecuta formato, lint, typecheck, pruebas y build en cada pull
request y en los cambios enviados a main.