Architecture · API · Security · Real-time

Built for teams that need to trust their tools

Artala runs on a modern, secure stack designed for real-time collaboration, strict tenant isolation, and multilingual teams from day one. Here's what's under the hood.

52
API endpoints
32
Webhook events
32
Languages
7
RTL languages
7
Board views

Architecture

A client-side WebAssembly app backed by .NET and Azure SQL, designed to be fast on any connection and installable on any device.

Client-side WebAssembly

The entire UI runs in the browser via Blazor WebAssembly. After the initial load, navigation is instant — no round-trips to the server for page renders. Installable as a PWA on Android, iOS, and desktop.

🔄

Real-time sync

Board updates push instantly to all connected users via SignalR WebSockets. No polling. When a teammate moves a card, changes a status, or adds a comment, every open board reflects it immediately.

🛡️

Database-level isolation

Every query runs through SQL Server Row Level Security with FILTER and BLOCK predicates on all tenant tables. Data isolation is enforced at the database layer — not just the application layer — making cross-tenant data leaks structurally impossible.

📱

Seven board views

Kanban, List, Table (spreadsheet-style with inline editing), Timeline (Gantt), Sprint board with burndown, Backlog, and Activity feed. All views share the same filter state — switch views without losing context.

🔁

Background processing

Scheduled Azure Functions handle due date reminders, recurring task generation, sprint burndown snapshots, weekly digest emails, database maintenance, and workspace export/restore — all running independently of the web app.

📊

Resilience & performance

Connection pooling with scoped-per-request lifecycle, Polly retry policies for transient Azure SQL failures, tiered command timeouts, response caching with invalidation, and CDN-ready asset delivery.

API & integrations

A full REST and OData API, webhook system, and API keys — everything you need to connect Artala to your workflow.

REST API

56 REST endpoints

Full CRUD for boards, tasks, comments, labels, custom fields, time entries, timesheet approvals, team members, and webhooks. Every write endpoint validates input server-side with descriptive error messages. All responses return consistent JSON — including errors.

  • API key authentication with scoped access
  • Actor attribution — API actions show "API: KeyName" in audit logs and task history
  • Input validation matching UI constraints (max lengths, type checks, status validation)
  • Consistent error format: { "error": "..." } on every 4xx/5xx
OData

12 OData endpoints

Query tasks, boards, users, time entries (including timesheet approval status), timesheet approval weeks, and more with standard OData syntax. Use $filter, $orderby, $select, $top, and $skip for flexible data retrieval — ideal for BI tools, custom dashboards, and reporting integrations.

// Example: tasks due this week, sorted by priority
GET /odata/Tasks
  ?$filter=DueDate ge 2026-05-26 and DueDate le 2026-06-01
  &$orderby=Priority desc
  &$select=Title,Status,DueDate,AssigneeName
Webhooks

36 event types

Subscribe to granular events across boards, tasks, comments, members, sprints, and timesheet approvals. Every webhook delivery is HMAC-signed, logged with response codes, and retried on failure.

task.created
task.updated
task.completed
task.assigned
task.archived
task.due_date_changed
board.created
board.updated
board.member.added
comment.created
sprint.completed
member.invited

Plus 24 more. Full list in API docs →

Data import

CSV, Excel & Trello import

Import tasks from any CSV or Excel file. Artala automatically detects exports from popular tools — mapping columns to fields without manual configuration. You can also import directly from a Trello JSON export, preserving boards, lists, cards, labels, and checklists.

  • CSV, Excel, and TSV with automatic delimiter and encoding detection
  • Auto-detects Jira, Asana, Monday.com, ClickUp, Linear, GitHub, and Trello exports
  • Trello JSON import — boards, lists, cards, labels, checklists
  • Map any column to any Artala field including custom fields
  • Status and assignee value mapping with fuzzy auto-matching

Per-tool import guides & all integrations →

Automations

Set rules that trigger when things happen. Reduce manual work and keep your boards moving.

Triggers

When something happens…

  • Task status changes
  • Task is assigned to someone
  • New task is created
  • Due date is reached
  • Task is moved to a board
  • Task is added to a sprint
Actions

…do something automatically

  • Notify the assignee
  • Notify the task creator
  • Notify board admins
  • Change the task's status
  • Assign to a specific user
  • Post a comment on the task

32 languages, full RTL

Not a translation layer bolted on at the end. Artala is built multilingual and bidirectional from the ground up.

Every language gets the full experience

Each of Artala's 32 languages has a complete translation of every UI string and email template — users choose their own language, so multilingual teams can each work in their preferred language on the same board.

  • Per-user language preference — not workspace-wide
  • Browser language auto-detection on first visit
  • Localised email notifications in each user's language
  • Locale-aware date and number formatting

RTL is a first-class citizen

Arabic, Hebrew, Urdu, Persian, Kurdish Sorani, Pashto, and Sindhi are fully RTL — not mirrored CSS, but purpose-built bidirectional rendering. Dates, calendars, drag handles, and navigation all mirror correctly, and mixed-content strings resolve base direction from the content's own script — so a title that opens with a Latin brand name or SKU still reads right-to-left, and nothing flips when the interface language changes. Hijri mode offers a choice of calculation — Umm al-Qura (the Saudi civil calendar) or an adjustable calendar tuned to local moon sighting — with date pickers, calendar view, and timeline all rendering real, weekday-correct Hijri months.

  • Seven RTL languages: Arabic, Hebrew, Urdu, Persian, Kurdish Sorani, Pashto, Sindhi
  • Bidi-aware rendering with Unicode isolates (LRI, PDI, LRM)
  • RTL calendar navigation and date pickers
  • Native Hijri calendar — Umm al-Qura or adjustable to local sighting, real month grids, not translated labels
  • Arabic comma (،) substitution in Arabic-script languages
  • Mixed LTR/RTL content in task titles, descriptions, and comments

Security & tenant isolation

Your data is isolated at the database level, protected by multi-factor authentication, and tracked in a complete audit trail.

🔒

Row Level Security

Every tenant table (all 30 of them) has five RLS predicates: FILTER for reads, BLOCK AFTER INSERT, BLOCK BEFORE UPDATE, BLOCK AFTER UPDATE, BLOCK BEFORE DELETE. That's 150 security policies enforced at the SQL layer — before your query results ever reach application code.

🔐

Authentication

TOTP two-factor authentication with QR code setup and backup codes. Trusted device management with 30-day HttpOnly cookies. Session tokens with revocation. API keys with actor attribution so automated actions are always traceable.

👥

Granular roles

Five board roles — Owner, Admin, Member, Commenter, Viewer — each with precisely scoped permissions. Viewers see but can't edit. Commenters can discuss and log time. Members can work. Admins manage. Owners control everything.

📋

Audit trail

Every significant action — logins, role changes, task modifications, setting changes, API key usage — is logged with timestamp, actor, and detail. API key actions show the key name, not just the user who created it. Full field-level task history tracks every change to every field.

📦

Data portability

Full workspace backup exports everything — boards, tasks, comments, attachments, custom fields, labels, time entries — as a ZIP archive. GDPR Article 17 account self-deletion is built in. Users can export their personal data directly from the app.

☁️

Azure infrastructure

Hosted on Microsoft Azure (West Europe). Azure SQL with encryption at rest. Azure Blob Storage for attachments and avatars. Azure SignalR Service for scalable real-time connections.

AI assistant

A board-aware AI that understands your tasks, team, and workflow.

Context-aware, not generic

The AI assistant sees your board's tasks, statuses, assignees, and due dates. Ask it to create tasks from natural language, generate status updates, identify bottlenecks, or summarise what happened this week — and it responds with specifics from your actual data.

  • Natural language task creation — "Add a task for Sarah to review the proposal by Friday"
  • AI-generated status updates and weekly digests
  • Playbook generation from a text description — the AI builds the template, stages, and default tasks
  • Smart due date suggestions based on team workload
  • Anomaly detection — surface tasks that are stuck, overdue, or unassigned
  • Per-user token tracking and limits

See it for yourself

Free for up to 3 users. Set up in minutes, no credit card required.

Start for free Read the API docs