Zync.is Multi tenant - multi user - White label Option Tech Stack: Landing Page + Auth: Astro + React * Astro for SEO and performance, everything public facing * React for auth and interactive islands App: Vite + React + Hono * react-router for navigation * zustand for state * tanstack-query for data fetching Structure: zync-monorepo/ └── apps/ ├── zync-www/ # Built with Astro (Deploys to zync.is Cloudflare pages) ├── zync-app/ # Built with VITE + REACT (Deploys to app.zync.is Cloudflare workers) └── zync-api/ # Built with HONO (Deploys to zync.is/api Cloudflare workers) *********************************************** ************** AGENTIC FRAMEWORK ************** *********************************************** Skill files /zc-ui-dev - including all the ui rules, f.e. use only our shared components, never use hardcoded colors in css use only variables instead, etc. /zc-server-dev - including all server development cloudflare information /zc- for each of the integrations we will have (Morning, iCount, Rivhit, Invoice4u, Easycount, Telegram, Slack, etc...) Create the ui-dev and server-dev skill files before starting development, in these skill files put relevant rules so agents will follow them from the beginning. after each wave of development run /learn-from-mistakes to append newly learned rules to skillfiles and when prompted by me add new consraints and rules to the skills, make skills self-learning and trigger adding new information when presented with new information that contradicts the skills. *********************************************** ************** FRONTEND ************** *********************************************** Mockups of UI in @screenshots/ need to desigh the UI accordingly. First create a design-system page that will include all of the elements we have in the system, use /componentizer skill to make sure that the site is using a design-system, create the primitives first, then use ONLY the primitives in the design-system to build the site like lego bricks. no raw html, only reusable components. When creating new primitives, always register them in design-system page first after building them, and mention them in the /zc-ui-dev skill for future agents to have knowledge to use it Core App Shell: - Sidebar navigation: Categorized, expanded - Workspace: Dashboard, Projects, Tasks, Time Tracking, Calendar, Analytics. - Business: Customers, Marketing, Support Center. - Financials: Invoices, Expenses, Contractor Payouts, Billing. - Resources: Knowledge Base, Reports. - Settings - Header: - Global search (implement https://github.com/dip/cmdk for search) - Notifications - User/account controls - Persistent UI state: - Sidebar collapse state stored locally. - Task filters stored in URL search params. Zync Admin Dashboard: https://admin.zync.is/ - Separate `SYSTEM_ADMIN` control plane from tenant/customer admin. * Overview https://admin.zync.is/overview * Reports https://admin.zync.is/reports * Analytics https://admin.zync.is/analytics * Tenants https://admin.zync.is/tenants Tenants management - Show existing tenants with Subscription Tier, Join Date, * click on tenant shows tenant info https://admin.zync.is/tenant/ [TAB] Full Tenant data, including Join date, Sub tier, LTV, https://admin.zync.is//tenant//overview [TAB] Audit https://admin.zync.is/tenant//audit - Payments - Tier History - Services log * All AI services like OCR and translation * AI Assistant * all billable services (like storage, mails, etc) * add/delete user in tenant [TAB] Tenant User Management: https://admin.zync.is/tenant//users - Pending user approval queue. - Active/frozen user management. - User freeze reason. [TAB] Tenant Roles https://admin.zync.is/tenant//users/roles - View/Edit/Add/Remove Roles - Manage granular access matrix per role - Roles https://admin.zync.is/roles - View/Edit/Add/Remove Roles for Zync admins and staff - Manage granular access matrix per role - Tax Rates https://admin.zync.is/tax-rates - Manage all statutory tax rates for each supported country (Israel v1) - Same methodology as VAT rate history: DB table with effective_from dates, no code deploy needed when rates change - Tax types (Israel): VAT (מע"מ), Corporate Income (מס חברות), Personal Income brackets 1-6, Withholding Default (ניכוי מס במקור) - VAT section links to existing vat_rates table; all other taxes use tax_rates table - Each rate: type, %, effective from date, bracket threshold (for personal income), notes (source law citation) - Immutable history: cannot delete/edit past rates; add new entry to supersede - Reports (income tax estimate, withholding summary) read from this table — no hardcoded percentages - SUPER_ADMIN only - User deletion safeguards. - Invitation management. - Admin stats: - total users - pending approvals - active users - frozen users - invitations Tenant Admin Dashboard https://app.zync.is/ - Overview https://app.zync.is/overview - Customers https://app.zync.is/customers - Marketing https://app.zync.is/marketing - Overview /marketing/overview (Campaign metrics, recent leads) - Pipeline (Kanban) /marketing/pipeline - Drag-and-drop board (New, Contacted, Qualified, Proposal, Won) - Lead detail side-panel (Activity, convert to customer action) - Capture Forms /marketing/forms (Embeddable white-label landing pages) - Catalogs & Proposals /marketing/catalogs (Templates, tracking UTMs) - Campaigns /marketing/campaigns (Mailing lists, broadcasts) - Analytics /marketing/analytics (UTM resolution, funnels) - Projects https://app.zync.is/projects - Time Tracking https://app.zync.is/time - Financials - Invoices https://app.zync.is/invoices - Expenses https://app.zync.is/expenses - Overview - Upload Invoices https://app.zync.is/expenses/upload - OCR sub-module. (Take from ~/Projects/Virtuac project, already complete code) - Categories https://app.zync.is/expenses/categories - AI Suggestions for categorization. Private/Business expense hint + How much tax to expect back. (Take from ~/Projects/Virtuac project, already complete code) - History https://app.zync.is/expenses/history list of all expenses with all data in table, with option to edit - Reports https://app.zync.is/expenses/reports - Billing https://app.zync.is/billing - Billing & Finance page - Billing stats cards - Spending forecast. - Invoice ledger - Subscriptions list - Recent invoices table on dashboard - Invoice statuses and due dates. - Subscription lifecycle display. - Contractor Payouts https://app.zync.is/payouts - Resources - Knowledge Base https://app.zync.is/kb - Home https://app.zync.is/kb/home (Global search, pinned SOPs, recent docs) - Internal Wiki https://app.zync.is/kb/internal - Nested folder tree navigation - Rich text / Markdown document editor - Client Vaults https://app.zync.is/kb/vaults - Secure file storage assigned to specific projects/customers - Upload interface with drag-and-drop, PDF viewer modal - Settings https://app.zync.is/kb/settings (Access controls, sharing link management) - Reports https://app.zync.is/reports - Analytics https://app.zync.is/analytics - Settings https://app.zync.is/settings - Business profile https://app.zync.is/settings/business - Invoice/business identifiers - Finance provider credentials/settings - Support/contact channels - Integration defaults - Organization-level preferences - Idle timer threshold for time tracking - Billing rules: - fixed price - hourly - retainer - overtime enabled/disabled - Users https://app.zync.is/users - Pending user approval queue. - Active/frozen user management. - User freeze reason. - Locale (i18n) /settings/locale - Site Language: (English/Hebrew) for now, later will add more i18n files for more languages - Country of origin: Default for now Israel (We don't have another) but with country adapters we will add many more in the future - Integrations /settings/integrations/ * App Store visual layout of modules (Enabled/Disabled) * Status cards for each: provider name, connection status, last sync, mappings, sync logs. proforma/tax flow) - Billing Adapters (Morning, Isracard, Upay, iCount Pay) - Projects /settings/integrations/projects - TODO Recommend Integration for projects managements? - Tasks /settings/integrations/tasks - Select and configure Tasks adapter - Trello - Asana - Jira - Monday - Clickup - Slack - Configure auto-create tickets from adapters - Email - Telegram - Whatsapp - Slack - Communications /settings/integrations/communications - Select and configure communications adapters - Email - Telegram - Whatsapp (Enterprise only, stubbed for now) - Invoices /settings/integrations/invoices - Select and configure Invoices adapter - Morning - iCount - Rivhit - Invoice4u - Easycount - Invoice automation settings (For Business tier and above) - Generate invoice action tied to task status transitions. set triggers according to our hooks and relevant actions ** When the retainer hour bank is over - an invoice is auto-generated for the client (Global setting, can override per retainer project in project setting) - Israeli invoice flow: - proforma/business invoice approval - tax invoice issuance - Billing /settings/integrations/billing/ - Select and configure payment processor adapter * Morning * Isracard * Status for each integration, when expanded module is viewed. - Integration cards with: - provider name - connection status - last sync - mappings count - sync now action - Active integration records. - Integration mappings to user's projects. - Sync logs. - Cron sync endpoint secured with `CRON_SECRET`. - Provider sync result tracking: - success/failed - items synced - error message - synced at - Profile https://app.zync.is/profile [TAB] Personal details [TAB] Security settings [TAB] Alert settings [TAB] Quick preferences [TAB] Interface language [TAB] Avatar/public handle/bio - Audit Log - Invoice ledger - User Logs - Add/remove users, staff and customers in tenant, all metadata. who, when, how, etc. - Logins and session length (AE powered) - UTM logs Tenant Customer Portal (White-labeled) https://app.zync.is/portal// Strictly isolated view for end-clients of the tenant: - My Dashboard (Outstanding balance, active projects summary) - My Projects (View-only or limited interaction based on RBAC) - My Invoices (View and Pay) - My Support Tickets (Create and reply to tickets) - Shared Knowledge Base (Client-facing SOPs/Vaults) - Profile Settings Tenant Staff Dashboard https://app.zync.is// Modules according to granular role permissions: - Assigned Tasks & Projects - Time Tracking interface - Internal KB Access - Profile & Neural syncing/developer mode preferences. *********************************************** ************** MODULES ************** *********************************************** CRM Module Ticket Flow: Customer open ticket -> Email Notifications + Time start when you click + telegram bot integration to open tickets (Whatsapp for enterprise) - Support center screen. - Ticket form. - Recent tickets. - Knowledge base. - Support ticket model/status lifecycle. - Ticket priority. - Ticket category. - Ticket assignment. - Customer-facing and internal staff views. - Telegram bot support flow: - bot message creates support card/ticket - board reply sends response back to Telegram user - WhatsApp enterprise support flow. Customers module - manage customers * Customer can add multi-user access with access to customer data only * Send Invitation from customer dashboard to register to sub-tenant * Flexible role management * Assign roles per user * assign access per role * Full control over who sees/edits what Time Management Module * Toggle integration * Start time counting with magic link, when task is open send by email to recepients, when clicking on the link the time count starts, auto-report on tasks when window closed. auto-pause timer when idle over configurable threshold (organization admin dashboard) Projects module * Manage projects * Store project data ** Assign to Customer ** Project types *** Fixed price *** Hourly *** Retainer *** [x] Enable Overtime Billing (optional) * Analytics Tasks module * Import & 2 way live Sync adapters - Trello - Asana - Jira - Monday - Clickup - Slack * Multiple layouts - Kanban - Cards (Trello Style), - Lists (Asana Style), - Timeline style with prioritization (Gantt Charts https://docs.dhtmlx.com/gantt/samples/?sample=%2701_initialization/01_basic_init.html%27&filter=%27%27) * Integrate auto-create tickets from - Email - Telegram - Whatsapp - Slack. - Gmail/Outlook/SMTP/POP3. * Board Engine - Kanban columns by task status. - Column ordering persisted per user. - Zustand persisted board preferences. - Drag-and-drop cards between columns. - Drag-and-drop column reordering. - Optimistic updates. - Collapsed columns with vertical labels. * Task filters - Projects. - Sources. - Priorities. - Statuses. - Due date range. - Active filter chips. - Reset filters. - URL query sync. - Task detail - Route-addressable or intercepted modal detail view. - Rich description editor. - Activity/audit log. - Comments/correspondence stream. - Attachments. - Paste-to-upload image handling. - Task communication - Task correspondence messages. - System messages for status changes. - Rich HTML content with sanitization rules. - Attachments per message. - Delete-own-message permissions. - Internal conversation stream tied to tasks/projects. - Real-time updates via WebSocket - Task status set Fully customizable per tenant and override per project, with these defaults: - `BACKLOG` - `TODO` - `IN_PROGRESS` - `BLOCKED` - `REVIEW` - `TESTING` - `DEPLOY` - `DONE` Invoices module * Need to abide by IL law, the business must present חשבונית עסקה, the customer approves the חשבונית עסקה, and the business issues חשבונית מס. * Invoice Adapters - Morning - iCount - Rivhit - Invoice4u - Easycount * Invoice hooks ** When the retainer hour bank is over - an invoice is auto-generated for the client Expenses Module (Basically complete on ~/Projects/Virtuac, can re-use code from there) - Track expenses - Categories + tags + folders - Reports - AI Invoice categorization by personal/business expenses [OCR Sub-module] * Invoice OCR via communication adapters Billing module - Recurring payment module - Adapters for credit card processors - Morning - Upay - iCount Pay - Billing hooks Calendar module - Calendar Adapters import/export and 2 way sync - Google calendar - Outlook 365 - Scheduling Adapters - no 2way sync. Expose webhook register it with the provider. They POST JSON payload when event booked/rescheduled/canceled. - Calendly - Acuity - moCal - Support multiple schedules per user, f.e. each room in the hotel need it's own schedule. User can create, name and color-code each schedule. (Business tier and above, Free tier 1 schedule per user) Marketing Module - Leads - Paid Tenants can create Dynamic Lead Forms & Landing Pages - Allow users to build simple, white-labeled contact forms or mini-landing pages to embed on their own websites or social media. - Lead Kanban Boards: Similar to the Tasks module, a dedicated drag-and-drop board for leads (e.g., New, Contacted, Qualified, Proposal Sent, Won, Lost). - Conversion UI: converts a "Won Lead" directly into a "Customer," Assigning "Project" and drafting standard "Contract/Proposal." - Inbound Webhooks: Provide a dedicated webhook URL per tenant so they can route leads directly from Facebook Lead Ads, Google Ads, or Zapier/Make into Zync - Catalogs - Create custom catalogs from templates and easily share with clients, with UTM links powered by CF AE - In addition to static PDFs, clients can send web-based proposals/catalogs to leads, - Integrate it with credit-card processing adapters for a "mini service ecommerce" - Integrate it with calendar for "Booking" service - Mailing list - Included credits in paid plan - can buy extra credits Create mailing lists manage mailing lists send newsletters UTM Links - Analytics Deep analytics with high resolution of UTM links with actionable recommendations to drive more conversion Campaign Dashboards: Visualize traffic from the UTM links. Show the conversion rate from Catalog View → Lead Captured → Proposal Accepted → Invoice Paid Reports - Tax reports (Basically complete on Virtuac, can take code from there) - Custom reports Analytics - Custom analytics dashboards - Modules to select from, enable/disable, according to user needs - Saved custom layouts KB Module * Internal knowledge base & SOP repository * Internal Wiki * Project-specific document vaults Shareable client access (White-labeled) * Secure file storage backend Isolated storage folders per tenant - Upload API for task/correspondence attachments. - Download/file-serving API with authorization. - PDF viewer modal. - Attachment metadata: - filename - URL/key - size - MIME type - related correspondence/task - Storage adapters: - CF Bucket for storage - signed URLs - per-tenant isolation Contractor Payouts Module * Contractor Ledger * Auto-reconcile tracked hours into internal payouts * Generate automated draft bills matching tracked hours * Balance external invoices from contractors against approved tasks System Module (Everyone got it, can not disable it, Global system lives here) Internationalization: - Country adapter - country's laws and regulations need to live in adapter - Israel VAT setting with dates and VAT history, take all vat history from here, and put it in a table, and we can add new dates for the future when it will be announced. the system needs to know to use the correct %s for the correct dates. 1.7.1976=8%,1.11.1977=12%,1.8.1982=15%,1.6.1985=17%,1.10.1985=15%,1.3.1990=16%,1.1.1991=18%,1.1.1993=17%,15.6.2002=18%,1.3.2004=17%,1.9.2005=16.5%,1.7.2006=15.5%,1.7.2009=16.5%,1.1.2010=16%,1.9.2012=17%,2.6.2013=18%,1.10.2015=17%,1.1.2025=18%, -Languages: English, Hebrew - first. Make it i18n friendly easy to add translations Communications sub-module - Bot adapters - Telegram - Whatsapp - Slack - Email adapters - Gmail - Outlook 365 - SMTP/POP3 Notifications Sub-module - In-app notification dropdown. - Notification types: - task update - assignment - invoice update - support ticket update - approval/freeze/invitation - Read/unread state. - Notification delivery preferences. - Mapping from webhook events to in-app notifications. API & Webhook Gateway sub-module * Outbound webhook triggers ticket.created invoice.paid timer.stopped * Custom API endpoints for enterprise/white-label users to connect internal tools * Time Management Hooks timer.started timer.stopped timer.auto_paused * CRM & Pre-Sales Hooks lead.created lead.stage_updated proposal.viewed proposal.accepted * Projects & Tasks Hooks project.created project.status_changed task.created task.assigned task.completed * Support & Tickets Hooks ticket.created ticket.replied ticket.resolved * Finance & Billing Hooks invoice.proforma_approved invoice.issued invoice.paid invoice.overdue retainer.depleted subscription.canceled * Expenses & Payout Hooks expense.submitted expense.approved payout.generated * User & Tenant Hooks tenant.provisioned user.invited role.updated Compliance & Privacy Sub-module * Global data portability * Single-click "Tenant Export" Generate encrypted ZIP containing all database tables and stored assets * GDPR & local privacy law compliance parameters Audit Sub-module * Audit logs * Invoices * Expenses * Site usage audit Usage tiers Freelancer - FREE FOR LIFE * 1 user * 50 OCR per month via Web upload * 1 Schedule * 1 Calendar * Morning, iCount, Rivhit, Invoice4u, Easycount Business 89 ILS * Everything in Free+ * Up to 8 team members * Unlimited Clients * AI Invoice OCR and AI categorization * Chat with AI Assistant that knows all about your business * Automated reports creation * Telegram AI Assistant Enterprise 159 ILS * Everything in Business+ * Up to 15 team members * Whatsapp AI Assistant * Priority ticket support White Label 250 ILS * Everything in Enterprise+ * 50 users * Custom domain setting for tenant * Headless API Access and full set of webhooks for developers