Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
The Counsel는 법률 사무소가 고객·사건·문서·청문·업무·청구·팀·운영을 하나의 보안 시스템에서 관리하도록 돕는 법무 관리 플랫폼
The Counsel is a legal practice management platform that helps law firms manage clients, matters, documents, hearings, tasks, billing, teams and firm operations in one secure system.
비즈니스TypeScript · PLpgSQLGitHub @CloudTechAnalytics온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Production Ready! The Counsel is a modern legal practice management platform that helps law firms manage cases, clients, documents, hearings, tasks, billing, and team collaboration from one secure, centralized system.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Enterprise, multi-tenant legal practice management platform.
The Counsel is a production-grade SaaS for law firms — comparable in ambition to Clio, PracticePanther, MyCase and Litify — built on a fully Supabase backend (PostgreSQL + Row Level Security + Storage + Realtime + Edge Functions). There is no custom REST/Express server; every tenant's data is isolated and enforced at the database with RLS.
The product has two completely separate experiences:README 전문 보기 ↗Enterprise, multi-tenant legal practice management platform.
The Counsel is a production-grade SaaS for law firms — comparable in ambition to Clio, PracticePanther, MyCase and Litify — built on a fully Supabase backend (PostgreSQL + Row Level Security + Storage + Realtime + Edge Functions). There is no custom REST/Express server; every tenant's data is isolated and enforced at the database with RLS.
The product has two completely separate experiences:
| Who | Purpose | |
|---|---|---|
| CloudTech Platform Console | CloudTech staff (Platform Owner/Admin) | Manage the SaaS: organizations, subscriptions, plans, billing, analytics, audit — never a firm's legal data. |
| Organization Workspace | A law firm's own team | Run the practice: matters, clients, documents, hearings, calendar, tasks, staff. |
Routing switches layout by identity: a Platform Admin only ever sees /platform/*; a firm user only ever sees the workspace. No shared sidebar, no data leakage.
New to this codebase? Read docs/ARCHITECTURE.md first — it covers the repo/branch/environment layout (two separate GitHub repos, two separate Supabase projects for Testing/Production), the security model, and the specific gotcha classes that have bitten this project before. This README is setup instructions; that doc is the map.
Design language: editorial-prestige enterprise — warm ivory surfaces, rich charcoal sidebar, brass primary (#B38A3E), Playfair Display + Inter, generous spacing, soft shadows. Currency is Naira (₦).
Feature-based, strictly typed, reusable by default.
src/
app/ # router, navigation, layout wiring
features/
auth/ # login, session, permission engine
platform/ # CloudTech console (orgs, subscriptions, plans, billing, analytics…)
dashboard/ # firm executive dashboard
clients/ # individual & corporate clients
matters/ # matters + tracking timeline + notes + documents
documents/ # firm-wide document management
hearings/ # court calendar entries
calendar/ # month + agenda views over hearings
tasks/ # assignments, priorities, deadlines
staff/ # lawyers & staff profiles, avatars
notifications/# live activity feed + reminders
administration/ # firm members & roles (Firm Settings)
shared/ # ui primitives, components, hooks, lib, types
supabase/
migrations/ # ordered SQL: schema, RLS, functions, triggers, seed
functions/ # Edge Functions (admin-create-user, hard-delete-organization)
organization_id; RLS enforces isolation via helpers has_permission(org, perm), is_org_member(org), is_org_admin(org), is_platform_admin() (all SECURITY DEFINER).matters.create, documents.upload, staff.manage, …) attached to roles (Managing Partner → Paralegal → HR/Finance/Receptionist). The UI hides what a role can't do; RLS blocks it server-side.documents bucket (tenant-scoped by path) and public avatars bucket, both governed by storage policies.admin-create-user Edge Function (service role), so passwords never touch the browser.hard-delete-organization Edge Function, which purges the login accounts of members who exist only for that firm via the Auth Admin API before removing the organization row — auth.users isn't reachable from a plain SQL function.Platform Console — Dashboard (orgs, MRR/ARR, trials, health, activity) · Organizations (create with plan, suspend/activate, soft-delete → Trash → purge) · Organization Users (read-only directory) · Subscriptions (inline plan/status) · Plans & Pricing (editable + custom tiers) · Billing (revenue by plan, renewals) · Platform Analytics · Audit Logs · plus scaffolds for Support Tickets, System Health, Platform Users, Settings.
Organization Workspace — Dashboard (activity trend, KPIs) · Clients · Matters (auto matter numbers, detail with Tracking timeline, Documents, Notes) · Documents (upload PDF/Office/images, in-app preview) · Hearings · Calendar (month + agenda) · Tasks (assignments, due dates, overdue) · Lawyers & Staff (profiles, bar membership, avatars, assigned matters) · Notifications (live activity + reminders) · Firm Settings (members & roles).
npm install
Create a Supabase project, then copy the environment file and fill in your project values:
cp .env.example .env.local
VITE_SUPABASE_URL=https://<your-project>.supabase.co
VITE_SUPABASE_ANON_KEY=<your-anon-key>
The anon key is safe for the browser — RLS enforces all access.
Run the SQL migrations in supabase/migrations/ in order (Supabase SQL Editor, or supabase db push if linked). They create the schema, RLS policies, functions, triggers, and the documents / avatars storage buckets.
supabase functions deploy admin-create-user
In the Supabase dashboard → Authentication → Users → Add user (your email + password). The first user is auto-promoted to Platform Owner.
npm run dev
Open the printed URL, sign in as the Platform Owner, create an organization + its admin, then explore the firm workspace as that admin.
npm run build && npm run preview
Actively built module by module — each ships with schema, RLS, types, services, hooks, and UI before the next begins. See supabase/migrations/ for the authoritative, ordered database history.