Pangram verdict · v3.3
We believe that this document is fully AI-generated
AI likelihood · overall
AIArticle text · 1,187 words · 5 segments analyzed
Mail Full email with threaded conversations, labels, attachments, and delivery tracking. Connect with any IMAP or SMTP client. IMAPSMTP Calendar Shared calendars with recurring events, guest management, RSVP, reminders, and color-coded categories. CalDAV Contacts Shared contact directory with favorites, notes, and org-wide sharing. Syncs with any CardDAV client. CardDAV Drive Cloud file storage with versioning, share links, role-based permissions, thumbnails, and trash. WebDAV Beta Text A real document editor — not a textarea in a tab. Rich formatting, tables, comments, and live collaboration via CRDTs, with full-fidelity .docx and Markdown round-trips. Mobile-native: format and edit from your phone without fighting the keyboard. Live CRDT collaboration.docx & Markdown round-tripMobile-first editor Feature complete · Lightly battle-tested Beta Calc Spreadsheets that hold up on a phone. Formulas, named ranges, workbook snapshots, and real-time co-editing on top of Drive. CSV and .xlsx import/export with formatting preserved, so it actually plays nicely with whatever your team already uses. Touch-friendly formula barSnapshots & change historyDrive-backed storage Feature complete · Lightly battle-tested Now shipping Live on the App Store Your cloud, in your pocket. The official TinyCld iOS app is here. Connect to your server, sign in, and your mail, calendar, contacts, and drive show up where you actually use them. No middlemen. No analytics. No re-hosting your data. Native push from the server you control Same UI as the web app — Expo Router under the hood Free, with no account required at our end v1.0 iPhone iPad Mac (Designed for iPad) Visit your self-hosted cloud Free Open source Native push Bring your own server v1.0 iPhone iPad Mac (Designed for iPad) Visit your self-hosted cloud Free Open source Native push Bring your own server Migrate Switch in an afternoon. Export your Google data. Drag the ZIP onto TinyCld.
We parse .mbox, .ics, and .vcf in a web worker, dedupe contacts by vCard UID, merge calendars by ICAL_UID, and drop your files back into their original folders. 01 Download your archive from Google Takeout Mail, Calendar, Contacts, and Drive in one bundle. 02 Drop the .zip into TinyCld - no unpacking Parsing happens in a web worker, so the UI stays snappy even at 20 GB. 03 Walk away. Re-imports are idempotent. Contacts dedupe by vCard UID, events by ICAL_UID, calendars reuse by name. $0 / user Free forever No per-seat pricing, no premium tiers, no surprises. TinyCld is open source under a permissive license. Self-host it on a $5/month VPS or use our hosted option. Google Workspace $7.20/user/mo Microsoft 365 $6.00/user/mo TinyCld Free Own your data Your emails, files, and contacts live on your server. No data mining, no ads, no lock-in. Export anything, anytime. Deploys anywhere A single Docker image runs on a $5 VPS, your homelab, or a Dokku one-liner. Healthchecks and Let's Encrypt are baked in - no ops team required. Private by default No telemetry, no tracking pixels. Self-host on your own server and TinyCld never phones home - no analytics, no crash pings, no metered usage reports. External email images are proxied through your server with a scoped token, so senders can't see your IP, read receipts, or user agent. Big tech sees nothing, because nothing is sent. Server-side image proxy for HTML email Invite-only signup - no public account creation One binary, one SQLite file, one place to audit Native protocols IMAP, SMTP, CalDAV, CardDAV, WebDAV - use Apple Mail, Thunderbird, any CalDAV client, or mount your drive as a network folder.
Multi-org Users can belong to multiple organizations with different roles. Shared calendars, contacts, mailboxes, and files within org boundaries. Web + Mobile One app for web, iOS, and Android - plus standard protocols so Apple Mail, Thunderbird, and Finder just work alongside. Real-time Live updates across all apps via server-sent events. No polling, no manual refresh - changes from other users and devices appear instantly. IMAP RFC 9051 Read email from any mail client - Apple Mail, Thunderbird, Outlook, mutt :993 SMTP RFC 5321 Send email through any client that supports SMTP submission :465 CalDAV RFC 4791 Sync calendars with Apple Calendar, GNOME Calendar, DAVx5, and more :443 CardDAV RFC 6352 Sync contacts with Apple Contacts, GNOME Contacts, DAVx5, and more :443 WebDAV RFC 4918 Mount your Drive as a network folder from any OS - macOS Finder, Windows Explorer, Linux Nautilus :443 For teamsReady to ditch the subscription? Host TinyCld yourself on a small Linux VM. One Docker container, one compose file, working email and HTTPS in about fifteen minutes. Read the install guide See the source on GitHub # on any Linux VM with Docker $ mkdir tinycld && cd tinycld $ curl -O https://raw.githubusercontent.com/tinycld/app/main/docker-compose.yml $ docker compose up -d ✓ ready · https://mail.example.org Auth Sessions, signup, login, and OAuth-ready user records. const { user } = useAuth() Multi-org Users in many orgs with per-org roles. Routes are org-scoped. const { orgId, orgSlug } = useOrgInfo() Live data Reactive queries with TanStack DB. Updates push automatically. useOrgLiveQuery((q, { orgId }) => …) Mutations Optimistic updates with rollback.
Generator-based for sequencing. const m = useMutation({ mutationFn: …}) Email Send transactional + IMAP/SMTP serving for end users. One config. mailer.Send(ctx, msg) Files Upload, version, share. Thumbnails, mime detection, role-scoped. drive.insert({ file, parent, owner }) Notifications In-app drawer + toasts. One feed for every package event. notify({ title, body, data }) Expo Push Native iOS + Android push out of the box. Per-user device tokens. push.SendToUser(ctx, userId, msg) Audit log Append-only record of every change. UI to browse and export. audit.Record(ctx, "contact.created", …) Forms Hook Form + Zod, typed end-to-end. Inputs styled to match. useForm({ resolver: zodResolver(schema) }) Theming Light + dark, semantic tokens, user-pickable color palettes. useThemeColor('foreground') Web + Native One codebase. Expo Router routes work in both. <Link href={orgHref('crm/[id]', …)} /> Plus everything PocketBase gives you (admin UI, file storage, real-time, OAuth providers) and everything Expo gives you (Expo Router on web + iOS + Android, EAS builds, OTA updates). The stack you don't have to build. manifest.ts 1export default { 2 slug: 'crm', 3 routes: { directory: 'screens' }, 4 collections: { register: 'collections' }, 5 settings: [{ component: 'settings/admin' }], 6 migrations: { directory: 'pb-migrations' }, 7 server: { module: 'tinycld.org/packages/crm' }, 8} screens/ Org-scoped routes collections.ts Typed pbtsdb wiring settings/ Settings panels pb-hooks/ PocketBase JS hooks pb-migrations/ DB migrations server/ (Go) First-class Go ext public-screens/ Top-level routes tests/ Vitest + Playwright 01 You write the directories listed in your manifest. 02 npm install links it as a workspace member. 03 The generator stitches everything in - routes, types, server, migrations.
04 Your package is alive on web and native, with a working admin UI. For developersStart a package in sixty seconds. The scaffolding CLI sets up a sibling repo with a working manifest, an example screen, and the symlink wired into a running app shell. From npm create to a live route in your browser. Read the build guide Tour the architecture first # in your workspace root $ npx @tinycld/bootstrap ? What's the package name? crm ? Include a Go server? y ✓ Created ./crm ✓ Linked crm into the workspace ✓ Generated routes, types, migrations → open http://localhost:7100/a/<org>/crm