├── .env.example ├── .eslintrc.json ├── .gitignore ├── README.md ├── components.json ├── convex ├── README.md ├── _generated │ ├── api.d.ts │ ├── api.js │ ├── dataModel.d.ts │ ├── server.d.ts │ └── server.js ├── _utils.ts ├── auth.config.ts ├── contact.ts ├── contacts.ts ├── conversation.ts ├── conversations.ts ├── friend_request.ts ├── friend_requests.ts ├── http.ts ├── message.ts ├── messages.ts ├── schema.ts ├── status.ts ├── tsconfig.json └── user.ts ├── next.config.mjs ├── package.json ├── postcss.config.mjs ├── public ├── next.svg └── vercel.svg ├── src ├── app │ ├── api │ │ ├── livekit │ │ │ └── route.ts │ │ └── type-indicator │ │ │ └── route.ts │ ├── calls │ │ ├── [room] │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── chats │ │ ├── [chatId] │ │ │ ├── error.tsx │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── favicon.ico │ ├── layout.tsx │ └── page.ts ├── components │ ├── call-content.tsx │ ├── chat-content.tsx │ ├── chat-footer.tsx │ ├── chat-header.tsx │ ├── chat-list-item.tsx │ ├── chat-list.tsx │ ├── chat-sidebar.tsx │ ├── chat-type-content.tsx │ ├── chats-layout.tsx │ ├── friend-request-card.tsx │ ├── group-sheet.tsx │ ├── meeting-room.tsx │ ├── message-item.tsx │ ├── mobile-chat-content.tsx │ ├── navigation-bar.tsx │ ├── new-group.tsx │ ├── profile-dialog-content.tsx │ ├── profile-sheet.tsx │ ├── shared-layout.tsx │ ├── sidebar-container.tsx │ └── ui │ │ ├── aspect-ratio.tsx │ │ ├── avatar.tsx │ │ ├── badge.tsx │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── dialog.tsx │ │ ├── dropdown-menu.tsx │ │ ├── form.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── navigation-menu.tsx │ │ ├── popover.tsx │ │ ├── resizable.tsx │ │ ├── scroll-area.tsx │ │ ├── separator.tsx │ │ ├── sheet.tsx │ │ ├── sonner.tsx │ │ ├── switch.tsx │ │ ├── textarea.tsx │ │ ├── toggle-group.tsx │ │ ├── toggle.tsx │ │ └── tooltip.tsx ├── hooks │ ├── use-is-desktop.ts │ ├── use-mutation-handler.tsx │ └── use-sidebar-width.ts ├── lib │ ├── pusher.ts │ └── utils.ts ├── middleware.ts ├── providers │ ├── convex-client-provider.tsx │ └── theme-provider.tsx ├── styles │ └── globals.css └── supabase │ └── supabaseClient.ts ├── tailwind.config.ts └── tsconfig.json /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/README.md -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/components.json -------------------------------------------------------------------------------- /convex/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/README.md -------------------------------------------------------------------------------- /convex/_generated/api.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/_generated/api.d.ts -------------------------------------------------------------------------------- /convex/_generated/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/_generated/api.js -------------------------------------------------------------------------------- /convex/_generated/dataModel.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/_generated/dataModel.d.ts -------------------------------------------------------------------------------- /convex/_generated/server.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/_generated/server.d.ts -------------------------------------------------------------------------------- /convex/_generated/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/_generated/server.js -------------------------------------------------------------------------------- /convex/_utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/_utils.ts -------------------------------------------------------------------------------- /convex/auth.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/auth.config.ts -------------------------------------------------------------------------------- /convex/contact.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/contact.ts -------------------------------------------------------------------------------- /convex/contacts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/contacts.ts -------------------------------------------------------------------------------- /convex/conversation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/conversation.ts -------------------------------------------------------------------------------- /convex/conversations.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/conversations.ts -------------------------------------------------------------------------------- /convex/friend_request.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/friend_request.ts -------------------------------------------------------------------------------- /convex/friend_requests.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/friend_requests.ts -------------------------------------------------------------------------------- /convex/http.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/http.ts -------------------------------------------------------------------------------- /convex/message.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/message.ts -------------------------------------------------------------------------------- /convex/messages.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/messages.ts -------------------------------------------------------------------------------- /convex/schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/schema.ts -------------------------------------------------------------------------------- /convex/status.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/status.ts -------------------------------------------------------------------------------- /convex/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/tsconfig.json -------------------------------------------------------------------------------- /convex/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/convex/user.ts -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/next.config.mjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/postcss.config.mjs -------------------------------------------------------------------------------- /public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/public/next.svg -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/public/vercel.svg -------------------------------------------------------------------------------- /src/app/api/livekit/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/api/livekit/route.ts -------------------------------------------------------------------------------- /src/app/api/type-indicator/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/api/type-indicator/route.ts -------------------------------------------------------------------------------- /src/app/calls/[room]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/calls/[room]/page.tsx -------------------------------------------------------------------------------- /src/app/calls/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/calls/layout.tsx -------------------------------------------------------------------------------- /src/app/calls/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/calls/page.tsx -------------------------------------------------------------------------------- /src/app/chats/[chatId]/error.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/chats/[chatId]/error.tsx -------------------------------------------------------------------------------- /src/app/chats/[chatId]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/chats/[chatId]/page.tsx -------------------------------------------------------------------------------- /src/app/chats/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/chats/layout.tsx -------------------------------------------------------------------------------- /src/app/chats/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/chats/page.tsx -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/page.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/app/page.ts -------------------------------------------------------------------------------- /src/components/call-content.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/call-content.tsx -------------------------------------------------------------------------------- /src/components/chat-content.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/chat-content.tsx -------------------------------------------------------------------------------- /src/components/chat-footer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/chat-footer.tsx -------------------------------------------------------------------------------- /src/components/chat-header.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/chat-header.tsx -------------------------------------------------------------------------------- /src/components/chat-list-item.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/chat-list-item.tsx -------------------------------------------------------------------------------- /src/components/chat-list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/chat-list.tsx -------------------------------------------------------------------------------- /src/components/chat-sidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/chat-sidebar.tsx -------------------------------------------------------------------------------- /src/components/chat-type-content.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/chat-type-content.tsx -------------------------------------------------------------------------------- /src/components/chats-layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/chats-layout.tsx -------------------------------------------------------------------------------- /src/components/friend-request-card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/friend-request-card.tsx -------------------------------------------------------------------------------- /src/components/group-sheet.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/group-sheet.tsx -------------------------------------------------------------------------------- /src/components/meeting-room.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/meeting-room.tsx -------------------------------------------------------------------------------- /src/components/message-item.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/message-item.tsx -------------------------------------------------------------------------------- /src/components/mobile-chat-content.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/mobile-chat-content.tsx -------------------------------------------------------------------------------- /src/components/navigation-bar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/navigation-bar.tsx -------------------------------------------------------------------------------- /src/components/new-group.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/new-group.tsx -------------------------------------------------------------------------------- /src/components/profile-dialog-content.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/profile-dialog-content.tsx -------------------------------------------------------------------------------- /src/components/profile-sheet.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/profile-sheet.tsx -------------------------------------------------------------------------------- /src/components/shared-layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/shared-layout.tsx -------------------------------------------------------------------------------- /src/components/sidebar-container.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/sidebar-container.tsx -------------------------------------------------------------------------------- /src/components/ui/aspect-ratio.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/aspect-ratio.tsx -------------------------------------------------------------------------------- /src/components/ui/avatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/avatar.tsx -------------------------------------------------------------------------------- /src/components/ui/badge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/badge.tsx -------------------------------------------------------------------------------- /src/components/ui/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/button.tsx -------------------------------------------------------------------------------- /src/components/ui/card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/card.tsx -------------------------------------------------------------------------------- /src/components/ui/dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/dialog.tsx -------------------------------------------------------------------------------- /src/components/ui/dropdown-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/dropdown-menu.tsx -------------------------------------------------------------------------------- /src/components/ui/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/form.tsx -------------------------------------------------------------------------------- /src/components/ui/input.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/input.tsx -------------------------------------------------------------------------------- /src/components/ui/label.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/label.tsx -------------------------------------------------------------------------------- /src/components/ui/navigation-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/navigation-menu.tsx -------------------------------------------------------------------------------- /src/components/ui/popover.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/popover.tsx -------------------------------------------------------------------------------- /src/components/ui/resizable.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/resizable.tsx -------------------------------------------------------------------------------- /src/components/ui/scroll-area.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/scroll-area.tsx -------------------------------------------------------------------------------- /src/components/ui/separator.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/separator.tsx -------------------------------------------------------------------------------- /src/components/ui/sheet.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/sheet.tsx -------------------------------------------------------------------------------- /src/components/ui/sonner.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/sonner.tsx -------------------------------------------------------------------------------- /src/components/ui/switch.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/switch.tsx -------------------------------------------------------------------------------- /src/components/ui/textarea.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/textarea.tsx -------------------------------------------------------------------------------- /src/components/ui/toggle-group.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/toggle-group.tsx -------------------------------------------------------------------------------- /src/components/ui/toggle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/toggle.tsx -------------------------------------------------------------------------------- /src/components/ui/tooltip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/components/ui/tooltip.tsx -------------------------------------------------------------------------------- /src/hooks/use-is-desktop.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/hooks/use-is-desktop.ts -------------------------------------------------------------------------------- /src/hooks/use-mutation-handler.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/hooks/use-mutation-handler.tsx -------------------------------------------------------------------------------- /src/hooks/use-sidebar-width.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/hooks/use-sidebar-width.ts -------------------------------------------------------------------------------- /src/lib/pusher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/lib/pusher.ts -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/lib/utils.ts -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/middleware.ts -------------------------------------------------------------------------------- /src/providers/convex-client-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/providers/convex-client-provider.tsx -------------------------------------------------------------------------------- /src/providers/theme-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/providers/theme-provider.tsx -------------------------------------------------------------------------------- /src/styles/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/styles/globals.css -------------------------------------------------------------------------------- /src/supabase/supabaseClient.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/src/supabase/supabaseClient.ts -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/tailwind.config.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laribright/signal-clone/HEAD/tsconfig.json --------------------------------------------------------------------------------