Nymnyl
LiveMail, invoices, contacts and files on infrastructure you own.
A private workspace with no provider in the middle. Mail arrives at your own domain and is stored in your own bucket; files sit on storage that charges nothing to download them. If the product went away, the mailbox and the files would still be yours.

Four parts, one window
Mail for the domain is accepted by SES, parsed and indexed on arrival, and stored in a bucket in the owner’s own account. Any number of addresses deliver into one mailbox, and adding one takes effect immediately because an address exists exactly when its directory row does.
Invoices
Money is held as integer cents throughout, never as a floating-point number, and lines round individually so the printed lines always add up to the total. Whether an invoice is overdue is derived from its due date on read rather than stored, so it can never be stale.
Contacts
One list of people and companies, shared by mail and invoicing. There is no separate list of clients, because a client is a contact you have invoiced and two lists of the same people drift apart.
Cloud
Files go from the browser straight to storage on a signed URL, so a two-gigabyte upload never passes through the API and is limited by the connection rather than by us. Previews are made in the browser at upload time, which is why the drive needs no image service at all.
The decisions behind it
Nothing passes through the middle
Mail lands in the owner’s own bucket and files sit in their own storage account. There is no provider reading any of it, because there is no provider. If the product were switched off tomorrow, the mailbox and the files would still be there.
The second factor is real
A passcode on top of a Google sign-in, verified by the server on every single request rather than by the page. A check the browser performs is a decoration; this one cannot be walked past by editing the client.
Storage chosen for the bill
Files live on Cloudflare R2, which charges nothing for downloads. A drive’s traffic is people fetching their own files, so on the usual object storage the cost climbs with use. Here it does not.
Disjoint permissions
Each function can reach only what it needs: the mail functions cannot read financial records, and the invoicing function cannot read mail. Separation enforced by policy, not by intention.
What it runs on
- Receiving and sending
- Amazon SES, with DKIM and SPF on the domain
- Application
- Lambda on ARM, behind function URLs
- Index and records
- DynamoDB, on-demand, point-in-time recovery
- Mail storage
- S3, because SES can deliver nowhere else
- File storage
- Cloudflare R2, for the egress bill
- Identity
- Google sign-in, plus a server-checked passcode
All of it sits in accounts belonging to the person using it. That is the part worth repeating: this is not a hosted service with a private tier, it is software installed on infrastructure you already own.
Create Better. Operate Smarter.
Want your own systems built this way?
Nymnyl started as an internal tool because nothing on the market kept the data where it needed to stay. If that sounds like your problem, tell us about it.