Security & data protection

How Taskly protects your data

Taskly isolates every workspace at the database level using PostgreSQL row-level security, stores your data in a managed database in the European Union, encrypts it in transit and at rest, and never sends your teammates’ email addresses to the AI model. Otto, the AI assistant, proposes changes as a diff you approve; it cannot create or edit anything on its own. Taskly holds no formal certification yet, and this page says so plainly rather than implying otherwise.

Saba Majidi, founder of Taskly.Written by Saba Majidi, Founder, TasklyLast reviewed

Security at a glance

The table below is the short version of Taskly’s security posture, including the parts Taskly does not have. Each row is expanded in its own section further down the page.

AreaHow Taskly handles it
Workspace isolationEnforced inside PostgreSQL with row-level security, not in the interface
Database locationManaged PostgreSQL in the EU (AWS eu-central-1, Frankfurt)
Data in transitHTTPS/TLS on every request
Data at restEncrypted by the database and hosting providers, backups included
PasswordsHashed (bcrypt) by the authentication provider. Taskly never sees a raw password
Sign-inGoogle OAuth, or email and password with a confirmation step
Teammate emails and the AINever sent to the model. Otto sees display names or stable pseudonyms
AI actionsProposed as a before and after diff, applied only when you approve
Abuse protectionTurnstile bot checks on auth forms, rate limits and a daily AI spend cap
Account deletionSelf-serve in Settings, cascading across your records
Formal certificationNone yet. No SOC 2, no ISO 27001, and no claim to either
Taskly security summary, last reviewed 27 August 2026.

Workspace isolation: enforced by the database

Every team using Taskly works inside its own workspace, and every record is tagged to a workspace. Taskly enforces that boundary in PostgreSQL itself, using row-level security, rather than relying on the application to remember to filter. This is the difference between a rule the interface applies and a rule the database applies, and it is the single most important control on this page.

When row security is enabled on a table, all normal access to the table for selecting rows or modifying rows must be allowed by a row security policy. If no policy exists for the table, a default-deny policy is used, meaning that no rows are visible or can be modified.
PostgreSQL 17 documentation, Row Security Policies

In plain terms: the database refuses by default and only returns what a policy explicitly permits. A query issued on your behalf can only ever return rows from workspaces you belong to, so one customer’s data is not reachable by another. A bug in Taskly’s front end cannot widen that boundary, because the check does not live in the front end.

Where your Taskly data is stored

Taskly’s database is managed PostgreSQL, run by Supabase on AWS eu-central-1, which is the Frankfurt region in Germany. Your workspace data lives in the European Union. The application that serves ottotaskly.com and app.ottotaskly.com is hosted on Vercel and delivered from its global network, so requests may be routed through infrastructure close to you, but the durable copy of your tasks, projects, comments and workspace records sits in the EU database.

Encryption in transit and at rest

Authentication and sign-in

Taskly supports two ways in, and treats credentials the same way in both:

Roles and access control

Within a Taskly workspace, members hold a role: Admin or Member. Sensitive actions, meaning managing the workspace, its projects and its members, are restricted to admins, and that restriction is applied both in the app and in the database policies underneath it. As with isolation, the interface is the convenience layer and the database is the enforcement layer.

Bot protection, rate limits and spend caps

Taskly protects the endpoints that cost money or leak signal when abused. The sign-up, sign-in and password-reset forms run a Cloudflare Turnstile check, which keeps automated account creation and credential stuffing off the auth routes. Rate limits sit in front of the AI endpoints, the authentication forms and the feedback endpoint, so a single account cannot flood them. A daily token cap bounds total AI spend, which means a runaway loop or an abusive account degrades into a refusal rather than an open-ended bill.

What Otto is and is not sent

Otto runs server-side, only ever operates inside a workspace after verifying your membership of it, and proposes changes as a reviewable diff that you approve before anything is created or edited. To understand a request, Taskly sends the relevant text to its AI provider, OpenRouter, and gets back a structured result. The table below is exactly what does and does not cross that line.

DataSent to the AI model?Detail
Your message to OttoYesIt is the request Otto is answering
Task titles, status, priority, due dateYes, a capped sampleScoped to the workspace you are working in
Project namesYesSo Otto can file a task under a project that already exists
Teammate display namesYesA name only. A member with no name becomes a stable pseudonym such as “Member 1a2b”
Teammate email addressesNoEmails never leave the application
Your passwordNoTaskly does not hold it in plain text either
Anything from other workspacesNoRow-level security stops the query returning it in the first place
What Taskly does and does not pass to the AI provider.

Otto also carries built-in safety guardrails and refuses harmful or off-topic requests, and it cannot act outside your workspace or beyond the limits Taskly enforces server-side, such as capped batch sizes on bulk changes. The reasoning behind the approve-first design is set out in AI that asks first.

Subprocessors

Taskly relies on a small set of providers to run the product. Each one is listed below with what it does and what data it touches, so you can assess the chain rather than take the word “reputable” on trust.

ProviderWhat it does for TasklyWhat it touches
SupabaseManaged PostgreSQL database, authentication, realtimeYour workspace data at rest, in the EU (AWS eu-central-1)
VercelApplication hosting and deliveryRequests in transit
OpenRouterRoutes Otto’s requests to an AI modelYour message, a task sample, project names, pseudonymised member labels
GoogleOptional OAuth sign-inYour Google account identity, only if you choose that sign-in
ResendTransactional email (invitations, notifications)Recipient addresses and message contents, when enabled
Taskly subprocessors and the data each one handles.

Backups and availability

Taskly’s managed database provider performs automated backups, and those backups are encrypted at rest alongside the live database. Availability guarantees and point-in-time recovery windows scale with the hosting plan Taskly is on, and will improve as the product grows. Taskly does not currently publish an uptime SLA, and this page will say so until it does.

Your data and your rights

Your workspace data belongs to you. You can edit or delete tasks at any time, and Taskly has self-serve account deletion in Settings that permanently removes your account and cascades to your profile, memberships, comments, notifications and AI usage records. Workspaces you own are transferred to another member first, or deleted outright if you were the only person in them. To request a copy of your data, email security@ottotaskly.com. The Privacy Policy covers the rest.

Responsible disclosure

If you believe you have found a security vulnerability in Taskly, email security@ottotaskly.com with the details and steps to reproduce it. Taskly does not run a paid bug bounty, but responsible disclosure is genuinely welcome and reports are worked through and answered.

What Taskly does not have yet

Taskly is an early-stage product moving fast, and stating the gaps is part of being trustworthy about the rest. Taskly does not hold SOC 2 Type II or ISO 27001 certification, does not publish an uptime SLA, and does not yet offer SAML single sign-on, SCIM provisioning or customer-managed encryption keys. If your procurement process requires any of those today, Taskly is not the right fit yet, and we would rather tell you now than at the end of a security questionnaire.

What Taskly does have are sound fundamentals: database-enforced isolation, an EU-hosted database, encrypted transport, modern authentication, bot protection and rate limits on the endpoints that matter, and an AI layer that always acts with your consent.

Frequently asked questions

Is Taskly secure?+
Taskly is built multi-tenant and security-first: every workspace is isolated at the database level by PostgreSQL row-level security rather than in the interface, all traffic runs over HTTPS/TLS, passwords are hashed by the authentication provider and never stored or seen in plain text, and the AI assistant cannot create or change anything until you approve it. Taskly does not yet hold SOC 2 or ISO 27001 certification and does not claim to.
Where is my Taskly data stored?+
Taskly stores your workspace data in a managed PostgreSQL database run by Supabase in the European Union, on AWS eu-central-1 in Frankfurt, Germany. The application itself is served from Vercel. The database and its backups are encrypted at rest by those providers, and everything moving between your browser, the app and the database is encrypted in transit with TLS.
Can the AI see my teammates’ email addresses?+
Otto is never sent your teammates’ email addresses. Taskly passes the AI model a display name only, and any member without a name becomes a stable pseudonym derived from their opaque user id, such as “Member 1a2b”. That is enough for Otto to assign work to the right person and for the app to match the answer back, without the model ever learning who that person is. Email addresses do not leave the application.
What data does Taskly send to the AI model?+
Taskly sends the AI provider only what Otto needs to answer the request you typed: your message, a capped sample of task titles with their status, priority and due date, your project names, and pseudonymised member labels. Taskly does not send email addresses, passwords, or anything from workspaces you are not a member of, and it does not sell your data to anyone.
Can Otto change my tasks without my permission?+
Otto cannot change anything in Taskly without your permission. Every create, edit, reprioritisation or reassignment Otto proposes is shown as a before and after diff that you apply or discard, whether it touches one task or fifty. Otto runs server-side and only ever inside a workspace it has verified your membership of, and server-side validation caps how much a single approved action can touch.
Can another Taskly customer see my workspace data?+
Another Taskly customer cannot reach your workspace data. Isolation is enforced inside PostgreSQL with row-level security, so a query issued on your behalf can only ever return rows from workspaces you belong to. A mistake in the front end cannot widen that boundary, because the database applies the policy itself on every read and every write.
Can I delete my Taskly account and all my data?+
Taskly has self-serve account deletion in Settings, which permanently removes your account and cascades to your profile, workspace memberships, comments, notifications and AI usage records. Workspaces you own are transferred to another member first, or deleted outright if you were the only person in them. You can also request a copy of your data by emailing security@ottotaskly.com.
Does Taskly have SOC 2 or ISO 27001 certification?+
Taskly does not hold SOC 2 or ISO 27001 certification, and will not claim otherwise while that remains true. Taskly is an early-stage product. What it does have is database-enforced workspace isolation, encrypted transport, hashed passwords, bot protection on the sign-up and sign-in forms, rate limits on sensitive endpoints, and an AI layer that acts only with your consent.

Last reviewed: 27 August 2026 · Questions? security@ottotaskly.com

Security you can see

Consent-gated AI, database-enforced isolation, and a product that earns trust by default.

No credit card · Sign in with Google or email