Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
반려동물 해외 출국 — 보호자 셀프서비스
Translation pending
BusinessTypeScript · JavaScriptGitHub @off2030OnlineOwner 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
Loading the full README. The saved excerpt is shown below.
반려동물 해외 이동 검역 사업의 별도 두 앱: • 펫무브워크 (apps/admin) — 동물병원·에이전시 스태프용 B2B SaaS 웹앱. 현재 prod 운영 중. • 펫무브 / PETMOVE (apps/portal) — 보호자(고객)용 B2C 유료 모바일 앱. 웹(petmove.co.kr) + iOS/Android 네이티브(Capacitor remote URL). 베타 출시 직전. DB·인증·도메인 규칙만 공유. UI·server actions·도메인 모델은 분리. 한 앱의 코드를 다른 앱에서 직접 import 하지 않는다. 폴더별 작업 룰은 apps/admin/CLAUDE.md / apps/portal/CLAUDE.md. .env.local 3개 필요 (gitignored): • apps/admin/.env.local • apps/portal/.env.local • (없으면 dev 서버 부팅 시 Supabase env 누락 에러) apps/ /.env.example 참고. Supabase 공개 키 + service role 필요.Read the full README ↗
반려동물 해외 이동 검역 사업의 별도 두 앱:
apps/admin) — 동물병원·에이전시 스태프용 B2B SaaS 웹앱. 현재 prod 운영 중.apps/portal) — 보호자(고객)용 B2C 유료 모바일 앱. 웹(petmove.co.kr) + iOS/Android 네이티브(Capacitor remote URL). 베타 출시 직전.DB·인증·도메인 규칙만 공유. UI·server actions·도메인 모델은 분리. 한 앱의 코드를 다른 앱에서 직접 import 하지 않는다. 폴더별 작업 룰은 apps/admin/CLAUDE.md / apps/portal/CLAUDE.md.
petmove/
├── apps/
│ ├── admin/ Next.js 16 — B2B 스태프 콘솔 (현재 prod)
│ └── portal/ Next.js 16 + Capacitor — B2C 보호자 앱
│ · 웹: https://petmove.co.kr (예정)
│ · iOS/Android: 앱스토어 (com.petmove.portal)
├── packages/
│ ├── auth/ @petmove/auth — Supabase browser/server/admin 클라이언트
│ │ · 서브패스: `.` (브라우저+admin), `./server` (next/headers 의존)
│ ├── domain/ @petmove/domain — 도메인 로직·타입·데이터
│ │ · procedure-checks, destination-config, fields, share-*
│ │ · /data/*.json (breeds, colors, destinations)
│ └── ui/ @petmove/ui — 공용 UI primitives
│ · PageShell, ListRow, PillButton, DateTextField, Calendar, ...
├── supabase/migrations/ 93개 SQL 마이그 — Seoul 프로젝트 (ugywxiyivfzflqkcnqvu)
├── scripts/
│ ├── lint-rls.mjs RLS 무한 재귀 (42P17) 사전 검출
│ ├── lint-all.mjs turbo lint + lint-rls 통합
│ └── backfill-case-customer-links.mjs 기존 케이스 ↔ 보호자 이메일 매칭 백필
├── docs/
│ ├── portal-plan.md Phase 11.0 portal 개발 계획 단일 출처
│ ├── portal-deploy-checklist.md Vercel + Capacitor + App Store/Play 배포 매뉴얼
│ ├── saas-migration.md 전체 SaaS 전환 로드맵
│ ├── design-system.md Editorial 디자인 토큰
│ └── legal/{terms,privacy}.md 약관·개인정보처리방침 (1차 초안)
└── .github/workflows/ci.yml push/PR 마다 lint (eslint + RLS) + tsc 자동
git clone https://github.com/off2030/petmove.git
cd petmove
pnpm install
pnpm db:link # Supabase Seoul 프로젝트 연결
.env.local 3개 필요 (gitignored):
apps/admin/.env.localapps/portal/.env.localapps/<app>/.env.example 참고. Supabase 공개 키 + service role 필요.
pnpm --filter @petmove/admin dev # admin → localhost:3001
pnpm --filter @petmove/portal dev # portal → localhost:3002
pnpm build # turbo build (admin + portal)
pnpm lint # turbo lint (eslint) + lint:rls 둘 다 항상 실행
pnpm lint:rls # RLS 재귀 정적 분석 단독 실행
pnpm exec tsc --noEmit -p apps/admin # 패키지별 타입체크
pnpm db:diff # 로컬 ↔ 원격 스키마 차이 미리보기
pnpm db:push # 마이그 적용 (운영 DB)
pnpm db:reset # 로컬 supabase 만 — 원격 영향 X
cd apps/portal
pnpm cap:sync # 웹 → native 동기화
pnpm cap:open:android # Android Studio 열림
pnpm cap:open:ios # macOS 에서만 — Xcode 열림
pnpm backfill:case-links # dry-run (변경 X)
pnpm backfill:case-links:apply # 실제 INSERT
com.petmove.portal (등록 전 임시. Apple Dev 가입 후 등록 시도)pnpm exec cap add ios 한 번 실행 필요@petmove/auth 서브패스 분리client component 가 @petmove/auth 만 import 해도 Next 가 server.ts (next/headers
의존) 를 client bundle 에 끌고 가서 build 실패. exports 를 두 개로 분리:
@petmove/auth — browser + admin 클라이언트@petmove/auth/server — createClient (서버 전용, next/headers)자세히: packages/auth/README.md.
정책 본문에 inline from public.<other_table> subquery 가 있고 그 테이블 정책도
원래 테이블을 같은 패턴으로 참조하면 Postgres 가 무한 평가 → SSR 500.
해결: 교차 테이블 체크를 SECURITY DEFINER 함수로 우회 (is_org_member,
is_case_customer 등 패턴). 사례:
supabase/migrations/20260511000001_fix_cases_customer_rls_recursion.sql.
예방: pnpm lint:rls 가 양방향 사이클 자동 검출. CI 가 push 마다 실행.
비공개 / 상업용.