
Discover crm products found across trusted public sources.
Bika.ai, the first AI organizer for vibe working. Build your own agentic AI team combines AI agents, automation, databases, dashboards, and documents.

Blastifi lets small businesses send personalized WhatsApp messages to their entire contact list without API fees. Import contacts from CSV, create templates with {name} personalization, and our Chrome extension handles automated sending via WhatsApp Web. Used by doctors, restaurants, real estate agents, and salons. Free plan forever. Basic $2/month. Pro $3/month. No bots, no API costs, 100% legal.

The Open Source Front / Attio meets N8N Alternative. Learn more » Website · Issues An open-source AI-powered email support ticket service for Shopify businesses. Integrates with Gmail and Outlook to provide automated customer support with workflow automation. Features AI-powered automated response generation (OpenAI, Anthropic, Google, Groq) Gmail & Outlook email integration Shopify integration for customer context Workflow automation engine Knowledge base for AI context Real-time notifications Multi-tenant organization support Comprehensive ticket management Advanced filtering and searching Screenshots Tech Stack Framework: Next.js 16.1 with React Server Components API: tRPC v11 with React Query Database: PostgreSQL with Drizzle ORM UI: TailwindCSS v4 with shadcn/ui components Forms: React Hook Form with Zod validation Caching: Redis Build: Turborepo Real-time: Pusher Deployment: SST (AWS) / Docker / Railway Package Manager: pnpm Prerequisites Node.js 22 or later pnpm 10.17 or later PostgreSQL database Redis Quick Start 1-Click Docker Setup (Recommended) Run a single command to install and start Auxx.ai: bash <(curl -sL https://raw.githubusercontent.com/Auxx-Ai/auxx-ai/main/docker/scripts/install.sh) The install script automatically: Checks dependencies (Docker, Docker Compose v2, curl, openssl) Downloads docker-compose.yml and .env.example Generates all secrets (database password, Redis password, auth secret, Ed25519 keypair, etc.) Detects port conflicts and prompts for alternatives Starts all containers and waits for health checks Opens the app in your browser Pin a specific version: VERSION=0.1.64 bash <(curl -sL https://raw.githubusercontent.com/Auxx-Ai/auxx-ai/main/docker/scripts/install.sh) Once running, visit http://localhost:3000 and follow the setup wizard. First-time Setup When you first run the application, you'll be guided through a setup wizard to: Create a super admin account Configure your organization details Set up initial settings Environment Variables Category Variables Database DATABASE_URL Redis REDIS_HOST, REDIS_PORT, REDIS_PASSWORD Auth AUTH_GOOGLE_*, AUTH_GITHUB_* Gmail GOOGLE_CLIENT_*, GOOGLE_PUBSUB_* Outlook OUTLOOK_CLIENT_*, OUTLOOK_WEBHOOK_* Shopify SHOPIFY_API_KEY, SHOPIFY_API_SECRET AI Models OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY, GROQ_API_KEY Email Provider EMAIL_PROVIDER, MAILGUN_* or SMTP_* Storage S3_BUCKET, S3_REGION, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY Payments STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET Real-time PUSHER_* See individual .env.example files for complete configuration options. Project Structure ├── apps/ │ ├── web/ # Main Next.js application │ ├── api/ # API server │ ├── worker/ # Background job processor │ ├── kb/ # Knowledge base app │ ├── lambda/ # AWS Lambda functions │ ├── docs/ # Documentation site │ ├── homepage/ # Marketing site │ └── build/ # Build utilities │ ├── packages/ │ ├── database/ # Drizzle ORM schema & migrations │ ├── ui/ # Shared UI components (shadcn) │ ├── lib/ # Shared utilities │ ├── config/ # Shared configuration │ ├── services/ # Business logic services │ ├── sdk/ # Auxx SDK │ ├── email/ # Email handling │ ├── redis/ # Redis client │ ├── credentials/ # Credentials management │ ├── billing/ # Stripe billing │ ├── workflow-nodes/ # Workflow automation nodes │ ├── logger/ # Logging utilities │ ├── seed/ # Database seeding │ ├── eslint-config/ # Shared ESLint config │ └── typescript-config/# Shared TypeScript config │ ├── infra/ # Infrastructure configs ├── scripts/ # Utility scripts └── docs/ # Additional documentation Development Common Commands # Start all apps in development mode pnpm dev # Build all packages pnpm build # Lint and format pnpm lint pnpm lint:fix pnpm format # Run tests pnpm test pnpm test:ui # With Vitest UI pnpm test:coverage # With coverage report Database Commands (Drizzle) # Generate migrations after schema changes pnpm db:generate # Run migrations pnpm db:migrate # Open Drizzle Studio (database GUI) pnpm db:studio # Reset database pnpm db:reset # Seed database pnpm seed pnpm seed:dev # Development seed pnpm seed:test # Test data seed Contributing Contributions are welcome! Please feel free to submit a Pull Request. Fork the repository Create your feature branch (git checkout -b feature/amazing-feature) Commit your changes (git commit -m 'Add some amazing feature') Push to the branch (git push origin feature/amazing-feature) Open a Pull Request Support If you encounter any problems or have questions, please open an issue on GitHub.
Sign up · Docs · Book demo · Website · Feature requests · Contribute · Hiring Macro is the all-in-one workspace that combines email, messages, docs, tasks, code, agents, calls, and CRM into a single fast interface. With shared team-level memory, everything in your workspace is @linked and queryable, so you and your agents never lose context. Macro has raised $30m led by a16z. We are based in NYC. Features Full documentation lives at docs.macro.com: Email: the fastest, smartest email client. The best of Superhuman, Gmail, and Outlook in one keyboard-first inbox. Multi-account, unified, with shared inboxes. Messages: team chat built for focused deep work. Channels and DMs for focused technical discussions. Tasks: keyboard-first tasks built around chat messages that agents can close. Nothing stranded elsewhere. Docs: collaborative, version-controlled, markdown-native docs built for agents. Real-time and built on CRDTs. Canvas: 2D board with embedded @links to tasks, files, and emails. Agents: unified team-level memory, the most knowledgeable "person" at your company. Takes action on your behalf. Calls: recorded, transcribed, and logged to team memory. File storage: auto-imported from email and channels, fully searchable. Pull requests: linked to tasks, embeddable in channels, available to agents. CRM: contact objects, custom properties, email sync, enrichment. A few ideas make the blocks work as one system: Bidirectional @linking: @mention a doc in a message and both know about each other. Your workspace becomes a web of context you can navigate in either direction. Channel-based permissions: anything you @mention in a channel is automatically shared with its members. Join a channel, gain access; leave, lose it. No permission-request dance. Unified memory: agents remember what your whole team is doing across email, messages, tasks, docs, and calls, not just your own chat history. Refreshed nightly. One inbox: emails, channel messages, task assignments, @mentions, and agent responses all land in one place, split into Signal and Noise. Built for speed: keyboard-first everywhere. Additional Resources: Getting started: setup and the core workflow Key concepts: blocks, mentions, properties, and permissions Keyboard shortcuts: the complete reference Agents & MCP: connect AI clients to your workspace FAQ: comparisons, licensing, self-hosting, and data questions Changelog: what shipped each month Getting started Sign up and connect your Gmail or Google Workspace account. Macro runs in any modern browser, with an iOS app for your phone. The getting started guide takes you from a fresh account to a working setup in about 15 minutes. Coming from Notion, Slack, Superhuman, or Linear? See Switch to Macro. Agents & MCP Your coding agents can use Macro too. Point Claude Code, Codex, or any MCP client at your workspace: claude mcp add --transport http macro https://mcp-server.macro.com/mcp See MCP setup and agent recipes for what they can do once connected. Repository layout apps/ contains the web/desktop application and product documentation site. services/ contains deployable services, workers, and Lambda handlers. crates/ contains reusable Rust libraries, models, and clients. packages/ contains shared JavaScript and TypeScript packages. docker/, tooling/, docs/, and static_assets/ contain repository support files. The Cargo and Bun workspaces are rooted at the repository top level. See Running locally for setup and development commands. Security Enterprise-grade security. Zero data retention with model providers, including no training on customer data. SOC 2 Type II certified. We welcome responsible security reports and pay bounties in accordance with severity and impact. Send reports to [email protected].
Macau328 merupakan link resmi layanan AI Chatbot Support untuk menghadirkan customer service otomatis, respons cepat, bantuan 24 jam, dan solusi komunikasi digital terbaik bagi bisnis Anda.

Scarlett is your AI co-worker in Slack — a real colleague that does the work. She connects to 3,000+ tools, automates your workflows, and ships tasks end to end. Powered by Claude.

Userelm — Free Peer-to-Peer Team Workspace userelm.com · user elm · user realm · GitHub A fully local-first, end-to-end encrypted workspace that runs entirely in the browser. No cloud lock-in, no per-seat fees, no data leaving your devices unless you choose to share it. Free forever. Built with Yjs (CRDTs) for conflict-free real-time collaboration and WebRTC for direct peer-to-peer sync between team members. Modules Module Description CRM Contacts, companies, deals pipeline, and activity log Finance Invoices and expense tracking HR Team directory, employee profiles, leave management Boards Kanban boards with drag-and-drop cards, priorities, and assignees Support Customer support ticketing with comments, internal notes, and assignment Chat Real-time team chat floating panel, synced over the same WebRTC link Architecture apps/ web/ Next.js 15 frontend (App Router) — deployed on Firebase App Hosting signaling/ Self-hosted y-webrtc signaling server — deployed on Firebase App Hosting packages/ platform/ Shared data layer — schemas, queries, mutations (Yjs) shared/ Shared utility types How data works All workspace data lives in a Yjs document — a CRDT-based data structure that merges concurrent edits automatically and without conflicts. The document is persisted locally in IndexedDB via y-indexeddb, so the app works fully offline. When online, changes sync directly peer-to-peer over WebRTC (via y-webrtc), encrypted with a shared room key derived from the invite URL. WebRTC signaling is handled by the self-hosted signaling server (apps/signaling/) deployed on Firebase App Hosting. It relays WebSocket handshakes only and never sees your encrypted data. If no custom signaling URL is configured, the client falls back to the public wss://signaling.yjs.dev, wss://y-webrtc-eu.fly.dev, and wss://y-webrtc-us.fly.dev servers. WebRTC connections use TURN-only relay (iceTransportPolicy: relay) via a Metered TURN server, ensuring connectivity behind any NAT or firewall. Room metadata (name, invite secret hash, owner email) is stored in Firebase Firestore and only accessed by the Next.js API routes. Room creation is protected by Cloudflare Turnstile to prevent abuse. Local-first guarantees Property How it's achieved Works offline IndexedDB persistence — full read/write without a server No workspace data on server All content is in the browser; Firestore only holds room metadata Conflict-free sync Yjs CRDTs — last-write-wins per field, with intent preservation E2E encryption WebRTC data channels encrypted with the shared room secret No account needed Identity is a random ID generated once per browser (localStorage) Getting started Prerequisites Node.js 20+ pnpm 9+ Install pnpm install Environment variables Create apps/web/.env.local: # Firebase Admin SDK (for Firestore room management) FIREBASE_PROJECT_ID=your-project-id FIREBASE_CLIENT_EMAIL=your-service-account@project.iam.gserviceaccount.com FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n" # JWT signing secret (any random string, min 32 chars) JWT_SECRET=your-random-secret-here # Self-hosted signaling server WebSocket URL (omit to use public fallback servers) NEXT_PUBLIC_SIGNALING_URL=wss://your-signaling-server.run.app # Cloudflare Turnstile (bot protection on room creation) NEXT_PUBLIC_TURNSTILE_SITE_KEY=your-site-key TURNSTILE_SECRET_KEY=your-secret-key # TURN server credentials for NAT traversal (relay-only mode) TURN_URL=turns:global.relay.metered.ca:443?transport=tcp TURN_USERNAME=your-username TURN_PASSWORD=your-password Note: In development, Firestore rate limiting is bypassed so you can create rooms freely without hitting limits. Omit NEXT_PUBLIC_SIGNALING_URL to fall back to public signaling servers. Development pnpm dev The app runs at http://localhost:3000. Deployment (Firebase App Hosting) This project is configured for Firebase App Hosting, which provides native Next.js SSR support. The monorepo has two App Hosting backends — the Next.js web app and the signaling server. First-time setup Install the Firebase CLI: npm install -g firebase-tools Log in: firebase login Create the web backend: firebase apphosting:backends:create (target apps/web) Create the signaling backend: firebase apphosting:backends:create (target apps/signaling) Set environment secrets (web backend) firebase apphosting:secrets:set FIREBASE_PROJECT_ID firebase apphosting:secrets:set FIREBASE_CLIENT_EMAIL firebase apphosting:secrets:set FIREBASE_PRIVATE_KEY firebase apphosting:secrets:set JWT_SECRET firebase apphosting:secrets:set TURNSTILE_SECRET_KEY firebase apphosting:secrets:set TURN_USERNAME firebase apphosting:secrets:set TURN_PASSWORD Deploy firebase apphosting:backends:deploy Firebase App Hosting auto-detects Next.js and handles SSR, API routes, and static assets without any additional configuration. The signaling backend runs as a single-instance Node.js service (in-memory topic map — see apps/signaling/apphosting.yaml). Firestore setup Create a Firestore database in your Firebase project and add these collections (they are created automatically on first use): Collection Purpose rooms Workspace metadata (name, hashed secret, owner, status) rate-limit-buckets IP/email rate limiting for room creation abuse-reports Abuse reports submitted via the settings page Recommended Firestore security rules (API routes use the Admin SDK, so client-side access should be blocked): rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } } Invite & room model Each workspace is identified by a room ID and protected by a shared secret embedded in the invite URL fragment (#room=<id>&key=<secret>). The secret: Is never sent to any server (it's in the URL hash, not the query string) Is used as the y-webrtc encryption password so only people with the link can read the traffic Is stored in localStorage so returning members don't need to re-enter it Is bcrypt-hashed before storage in Firestore (the plaintext is never persisted server-side) Card assignment & member emails When joining a room, members can optionally enter their email address. This is stored locally in localStorage under the key room-members:<roomId> and shared with peers via Yjs awareness. These emails power: Kanban card assignment — assign cards to known members Support ticket assignment — route tickets to team members Email addresses are never sent to any server. UI features Real-time notifications The sidebar bell icon shows updates from teammates since your current session started — new contacts, companies, deals, tickets, invoices, expenses, and employees created or deleted by others. Clicking a notification navigates directly to the affected record. Record counts Each navigation item displays a live count of records in that section, updated in real-time as teammates add or remove items. Table / card view toggle All record list pages support switching between a table view and a card grid view using the toggle in the toolbar. Your preference is remembered per section in localStorage. Section Default view Contacts Table Companies Grid Tickets Table Team Grid Invoices Table Expenses Table Module data model Each module owns a set of named Yjs Maps (defined in packages/platform/src/modules/<module>/schema.ts). Modules export: schema.ts — TypeScript interfaces and enum constants queries.ts — pure read functions (Yjs Map → typed rows) mutations.ts — transactional write functions module.ts — sidebar registration (title, icon, nav links) Adding a new module means implementing these four files and registering the module in packages/platform/src/core/modules.ts. Stack Layer Technology Frontend Next.js 15, React 19, TypeScript Styling Tailwind CSS v4, shadcn/ui Data sync Yjs, y-webrtc, y-indexeddb Signaling Self-hosted WebSocket server (apps/signaling/) on Firebase App Hosting TURN / relay Metered TURN (turns:global.relay.metered.ca), relay-only mode Bot protection Cloudflare Turnstile (room creation) Room metadata Firebase Firestore (Admin SDK) Hosting Firebase App Hosting Monorepo pnpm workspaces Rate limits Room creation is rate-limited per IP (10/hour) and per email (10/day) in production. Rate limit state is stored in Firestore and resets automatically. In development mode (NODE_ENV=development) all rate limits are bypassed.
Our AI finds products from public sources, then rotates exposure so useful newcomers have a fair chance to be seen.
Learn how discovery works
