LmCast :: Stay tuned in

Show HN: Open-source Workspace (mail,docs,spreadsheet,drive) web/iOS

Recorded: May 27, 2026, 5 p.m.

Original Summarized

TinyCld - Your cloud, your rules

tinycld For Teams For Developers Docs Search ⌘K iOS New
GitHub

Sign in
New
Now on the App Store

Your cloud, your rules.
A self-hosted productivity suite for your team - and the platform
you build the next app on top of. Standard protocols, own your data,
free forever.
Start a demo now No signup. Sandboxed. Resets nightly.
GitHub

Pick your path
6 Integrated apps 5+ Native protocols $0 Per user, forever Pick your path Run TinyCld. Or build on it.
Two doors into the same project. One leads to a working productivity
suite for your team in fifteen minutes. The other leads to a
platform you can build the next app on top of.
~/tinycld — bash
live
$ docker compose up -d ✓ Pulling tinycld:latest ✓ Acquired Let's Encrypt cert · <your domain>.org ✓ IMAP listening on :993 ✓ SMTP listening on :465 ✓ Web ready on :443 › Ready in 14.7s For teams Run TinyCld for your organization. One Docker container. Free, self-hosted. Fifteen minutes from zero to a working mail server with HTTPS. When it's up, your team's new home lives at https://your-domain.com/.
Read install guide
See what teams get → OR manifest.ts — VS Code
type-safe
1export default {
2 name: 'CRM',
3 slug: 'crm',
4 routes: { directory: 'screens' },
5 collections: { register: 'collections' },
6 nav: { label: 'CRM', icon: 'users' },
7}| free authmaildriverealtimepushaudit For developers Build apps on a foundation that does the hard parts. Auth, email, files, push, real-time, audit, multi-org, end-to-end typed schemas. Drop in a manifest. Ship.
Start a package
See the foundation → Apps Everything you need, nothing you don't.
Six tightly integrated apps that cover daily productivity.
Each one speaks native protocols - use the web UI, mobile app, or your favorite desktop client.
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
Download on the App Store
View on apps.apple.com
9:41 acme.tinycld.io
Synced · just now
Mail 12 Calendar Contacts Drive Today 3 new J Jules Halberg Re: drive share permissions 9:34 M Mira Onishi Calendar invite · standup 8:22 F Finance Q3 budget · attachment 7:58 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. takeout-2026-04-16.zip 📁 Mail/All-mail.mbox 2.3 GB 📁 Calendar/*.ics 148 KB 📁 Contacts/All.vcf 62 KB 📁 Drive/ 18.7 GB Mail .mbox → threaded inbox Calendar .ics → shared calendars Contacts .vcf → deduped directory Drive files → original hierarchy
Web Worker · off-main-thread
Why TinyCld Built different.
Not a wrapper around other services. A ground-up implementation
that's fast, lean, and respects your team's freedom.
$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.
Protocols Standards, not lock-in.
Every app speaks its native protocol. Use our web UI, your
favorite desktop client, or both. Your choice, always.
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 teams Ready 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
For teams
·
For developers
Foundation Twelve things you don't have to build.
Every package starts with a working app shell that already does
the hard parts. Drop in a manifest.ts, get all of this
for free, and ship the parts that actually matter to you.
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.
Anatomy One file declares everything.
A package is a folder with a manifest.ts. The manifest
points at directories that already exist in your repo - and the
generator wires them all into the running app at build time.
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. Contribute Or help us build the existing packages.
Each package is its own git repository with its own history, issues,
and PRs. Pick the one that matches your skills - JavaScript, Go, both -
and ship a fix this weekend.
@tinycld/mail IMAP + SMTP, threaded UI, image proxy.
View repo
@tinycld/calendar CalDAV server, recurring events, RSVP.
View repo
@tinycld/contacts CardDAV server, deduped directory.
View repo
@tinycld/drive WebDAV file storage, thumbnails, share links.
View repo
@tinycld/text Collaborative documents, stored as Drive items.
View repo
@tinycld/calc Collaborative spreadsheets with snapshots.
View repo
Good first issue?
Browse all labelled issues across the org
For developers Start 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 One project. Two audiences. Same git history.
Teams self-host. Developers extend. Both lanes share the same
open source codebase, the same issues, the same roadmap.

Source

Issues

License
tinycld Your cloud, your rules. Get the app
iOS · App Store
New Why a native app? Project GitHub Issues License Resources Apps Features Protocols Privacy Support © 2026 TinyCld. Open source, always.

TinyCld is presented as a self-hosted productivity suite designed for teams, which simultaneously functions as a platform upon which developers can build applications. The core philosophy centers on giving users complete control over their data, operating on standard protocols while ensuring privacy and freedom. Teams can either run TinyCld as a ready-made suite or utilize it as a foundation for building custom applications. The system is designed to be free, open source, and self-hostable, often deployable via a single Docker container on a Virtual Private Server or using platforms like Dokku, providing immediate access to a working mail server with HTTPS within minutes.

The productivity suite integrates six tightly connected applications that cover essential daily productivity functions, each communicating via native protocols, allowing access through web interfaces, mobile applications, or standard desktop clients. These integrated applications include Mail, synchronizing email with threaded conversations and attachments using IMAP and SMTP protocols; Calendar, managing shared events with recurring settings and RSVP functions using CalDAV; Contacts, providing a shared directory with notes and organization-wide sharing via CardDAV; Drive, offering file storage with versioning, share links, and permissions using WebDAV; a real document editor supporting rich formatting and collaboration via CRDTs; and Calc, enabling spreadsheet functionality with real-time co-editing and file import/export compatibility.

The system is built upon a foundation of standardized protocols, avoiding vendor lock-in. It natively supports IMAP, SMTP, CalDAV, CardDAV, and WebDAV, ensuring compatibility with various clients such as Apple Mail, Thunderbird, and standard network mounts. Furthermore, the architecture supports multi-organization management, allowing users to belong to various organizations with distinct roles and shared resources within those boundaries. The system emphasizes real-time updates across all applications using server-sent events, eliminating the need for constant polling.

For developers, TinyCld provides a foundation that handles complex infrastructural requirements, such as authentication, email serving, file management, real-time data synchronization, and audit logging through typed schemas. This developer-focused layer allows for application building through manifest files, which define routes, data collections, and server modules implemented using Go, linking the core system to a framework like PocketBase. This approach enables developers to ship applications by dropping in a manifest file that wires together all necessary components like user authentication, file operations, and notification systems. The system supports a unified codebase for web and native development via Expo Router, allowing a single application layer to serve web, iOS, and Android platforms natively.

Data migration is supported, offering a mechanism to export data from services like Google Takeout into a single archive, which the system parses using a web worker to deduplicate contacts, merge calendar events, and restore files to their original hierarchies. Operationally, the system is designed for privacy and security; it operates privately by default with no telemetry or tracking. External email images are proxied through the server with scoped tokens, ensuring that external senders cannot access sensitive server details. This self-hosting capability ensures that data resides entirely on the user's server, contrasting with subscription services by eliminating data mining and lock-in concerns. The open source nature of TinyCld, along with its structure where individual application packages exist as separate repositories, allows the community to contribute fixes and extensions to the underlying services, fostering a shared roadmap and codebase.