Task & Time
Cross-platform task management and time tracking SaaS built by Bytes and Books.
Architecture Overview
flowchart TB
subgraph Clients
Web["Web Portal<br/>(Next.js / Cloudflare Pages)"]
Desktop["Desktop App<br/>(Tauri + Vite + React)"]
Homepage["Marketing Site<br/>(Next.js / Cloudflare Pages)"]
Slack["Slack App"]
end
subgraph AWS
APIGW["API Gateway"]
Cognito["Cognito User Pool"]
subgraph Lambdas
TaskSync["task-sync"]
TimeEntrySync["time-entry-sync"]
CustomerSync["customer-sync"]
StatusCheck["status-check"]
ActiveTimerSync["active-timer-sync"]
XeroSync["xero-sync"]
SlackIntegration["slack-integration"]
end
subgraph DynamoDB
Tasks["tasks"]
TimeEntries["time-entries"]
TimeBills["time-bills"]
Customers["customers"]
CustomerUsers["customer-users"]
Pillars["pillars"]
ActiveTimers["active-timers"]
XeroTokens["xero-tokens"]
CustomerFocus["customer-focus"]
SlackMappings["slack-channel-mappings"]
end
EventBridge["EventBridge<br/>(Scheduled)"]
SES["SES Email"]
end
subgraph External
Xero["Xero Accounting"]
Claude["Claude AI<br/>(Title Generation)"]
Sentry["Sentry<br/>(Error Tracking)"]
end
Web & Desktop -->|REST + JWT| APIGW
Homepage -->|POST /api/leads| APIGW
Slack -->|Events + Interactivity| APIGW
APIGW -->|Authorize| Cognito
APIGW --> Lambdas
Lambdas --> DynamoDB
EventBridge -->|Schedule| StatusCheck
CustomerSync --> SES
TimeEntrySync --> Xero
XeroSync --> Xero
SlackIntegration --> Claude
Lambdas --> Sentry
Quick Links
| Section |
Description |
| Architecture Overview |
Monorepo structure, deployment topology, build pipeline |
| API Endpoints |
All REST API routes with auth requirements |
| DynamoDB Tables |
Table schemas, keys, GSIs, entity relationships |
| Integrations |
Xero, Slack, Cognito, and SES integration flows |
| Status Workflows |
Task and TimeBill state machines |
| Environment Variables |
All config values and how they flow |
| Web App Structure |
Next.js App Router, auth, navigation patterns |
| Configuration Guide |
Where to set each config value |
| Deployment Guide |
Full deployment walkthrough |
| Adding Features |
How to add endpoints, tables, pages, and Lambdas |
| Updating Docs |
How to edit and deploy this documentation |
Tech Stack
| Layer |
Technology |
| Desktop App |
Tauri + Vite + React 18 + Zustand + Dexie.js |
| Web Portal |
Next.js 14 + React 18 + React Query + Tailwind CSS |
| Marketing Site |
Next.js 14 (Cloudflare Pages) |
| Auth |
AWS Cognito (JWT) |
| API |
API Gateway + Lambda (Node.js 20.x) |
| Database |
DynamoDB (10 tables, PAY_PER_REQUEST) |
| Infrastructure |
AWS CDK v2 |
| Accounting |
Xero (OAuth 2.0 + Projects API) |
| Chat |
Slack (Slash commands, message actions, modals) |
| AI |
Claude Haiku (task title generation) |
| Email |
AWS SES |
| Error Tracking |
Sentry (4 projects) |
| Hosting |
Cloudflare Pages (web + homepage + docs) |