// Master skill for Breath of Now development. Provides comprehensive project context, architecture guidelines, and development workflows. Auto-invoked for all development tasks in the project.
| name | breathofnow-dev |
| description | Master skill for Breath of Now development. Provides comprehensive project context, architecture guidelines, and development workflows. Auto-invoked for all development tasks in the project. |
Este Ă© o skill master para desenvolvimento do ecossistema Breath of Now - uma plataforma privacy-first e offline-first de micro-apps para vida consciente.
Breath of Now Ă© um ecossistema de micro-apps sob M21 Global, Lda.
| App | Estado | Descrição |
|---|---|---|
| ExpenseFlow | â Live | GestĂŁo de despesas |
| FitLog | â Live | Registo de treinos |
| InvestTrack | đ§Ș Beta | Tracking de investimentos |
| RecipeBox | đ Em breve | GestĂŁo de receitas |
| LabelScan | đ Em breve | Scanner de etiquetas |
| Camada | Tecnologia |
|---|---|
| Framework | Next.js 14 (App Router) |
| Linguagem | TypeScript (strict mode) |
| Styling | Tailwind CSS |
| State | Zustand (apenas UI) |
| Local DB | Dexie.js (IndexedDB) |
| Backend | Supabase (auth + sync opcional) |
| i18n | next-intl |
| PWA | next-pwa (Workbox) |
| Hosting | Vercel |
breathofnow/
âââ .claude/ # Documentação Claude Code
â âââ skills/ # Skills para Claude
â âââ commands/ # Comandos slash
â âââ PROJECT.md # VisĂŁo geral
â âââ RULES.md # Regras de cĂłdigo
â âââ supabase-schema.md # Schema da BD
âââ messages/ # Ficheiros de tradução (4 idiomas)
âââ src/
â âââ app/[locale]/ # PĂĄginas localizadas
â âââ components/
â â âââ ui/ # Design system
â â âââ shell/ # App shell unificado
â â âââ layout/ # Header, Footer
â âââ lib/
â â âââ storage/ # NEW: Storage API unificada
â â âââ subscription/ # NEW: GestĂŁo de tiers
â â âââ db/ # Dexie database
â â âââ supabase/ # Clientes Supabase
â â âââ sync/ # Sync engine
â âââ hooks/ # Custom hooks (incl. useSubscription)
â âââ stores/ # Zustand stores
â âââ types/ # TypeScript types
âââ docs/
âââ ARCHITECTURE.md # Arquitetura detalhada
// â
CORRECTO: Usar Storage API
import { storage, NAMESPACES } from '@/lib/storage';
const expenses = await storage.getAll(NAMESPACES.EXPENSES);
// â ERRADO: Acesso direto ao Dexie
import { db } from '@/lib/db';
const expenses = await db.expenseTransactions.toArray();
// â
CORRECTO: Usar hook
import { useSubscription } from '@/hooks';
const { tier, isPro, checkAppAccess } = useSubscription();
// â ERRADO: Verificação manual
const isPro = user?.tier === 'pro';
// â
CORRECTO
const t = useTranslations('namespace');
<h1>{t('title')}</h1>
// â ERRADO
<h1>Welcome</h1>
// â
CORRECTO: Tipos de @/types
import type { AppId, User } from '@/types';
// â ERRADO: any types
const handleClick = (data: any) => { ... }
| Free | Pro | |
|---|---|---|
| Preço | âŹ0 | âŹ4.99/mĂȘs |
| Apps | 2 apps | Todas |
| Storage local | â | â |
| Cloud sync | â | â |
| Ads | Sim | NĂŁo |
#5a7d5a (Warm Sage Green)#b19373 (Warm Sand)#df7459 (Soft Terracotta)font-display)font-body)font-mono)Em @/components/ui/:
import { storage, NAMESPACES } from '@/lib/storage';
storage.get(namespace, key) // Obter item
storage.set(namespace, key, val) // Guardar item
storage.delete(namespace, key) // Apagar item
storage.getAll(namespace) // Obter todos
storage.query(namespace, filter) // Query com filtro
storage.clear(namespace) // Limpar namespace
import { useSubscription } from '@/hooks';
const {
tier, // 'free' | 'pro'
isPro, // boolean
canSync, // boolean
showAds, // boolean
selectedApps, // AppId[]
checkAppAccess, // (appId) => boolean
} = useSubscription();
| CĂłdigo | Idioma | Prioridade |
|---|---|---|
| en | English | Primary |
| pt | PortuguĂȘs | Alta |
| es | Español | Média |
| fr | Français | Média |
npm run dev # Desenvolvimento
npx tsc --noEmit # Type check
npm run lint # Lint
npm run build # Build
.claude/PROJECT.md - VisĂŁo geral detalhada.claude/RULES.md - Regras de cĂłdigo (incluindo Storage API)docs/ARCHITECTURE.md - Arquitetura v4.claude/supabase-schema.md - Schema da BDLembra-te: Cada feature deve alinhar com a missĂŁo de ajudar pessoas a viver mais conscientemente enquanto respeita a sua privacidade.