Liwan
A vaulted hallfor Arabic type.
An Arabic-first graphic-design and desktop-publishing studio built for iPad — and shipping, from the same codebase, for the Mac through Mac Catalyst.
iPad · Mac Catalyst
ليوان
A liwan is a vaulted hall open on one side — a recurring element of Arabic and Islamic architecture, the shaded room that opens onto a courtyard. The wordmark is localized rather than drawn: it reads Liwan under an English interface and ليوان under an Arabic one.
Why Liwan exists
Arabic as an afterthought.
Liwan exists because the world's mainstream design tools were built around Latin typography and treat Arabic — a language used by hundreds of millions of people across the Middle East and North Africa — as an edge case.
Shaping is fragile.
Arabic is a cursive, contextual script: the shape of a letter depends on its neighbours, and adjacent letters join. Tools that do not shape correctly render disconnected or wrongly-formed glyphs.
Justification is crude.
Professional Arabic typesetting justifies a line by elongating the baseline connections between letters — the kashida, also called tatweel — not by opening up word gaps.
Numerals are wrong by default.
Arabic content frequently calls for Arabic-Indic numerals rather than 0–9. Tools that hard-code one system force manual workarounds.
Direction is fought, not embraced.
Paragraph flow, list bullets, table columns and interface chrome all need to mirror right-to-left. Tools designed left-to-right require the designer to constantly correct the tool.
Content libraries are Latin-curated.
Fonts, templates and stickers are overwhelmingly chosen for Latin design, leaving Arabic designers to hunt for usable faces and culturally relevant assets.
| Concern | A generic design app | Liwan |
|---|---|---|
| Shaping / joining | Often fragile or broken | HarfBuzz, validated against Core Text |
| Justification | Crude word-gap stretching | Kashida — Off, Low, Medium, High |
| Numerals | Usually one hard-coded system | Western and Arabic-Indic |
| Direction | Left-to-right assumed | Right-to-left paragraph and table direction, and an in-app language switch that mirrors the interface |
| Fonts | Latin-curated libraries | Arabic collections — Naskh, Kufi, Nastaliq and more |
| Templates and stickers | Latin- and Western-centric | Arabic design and regional occasions |
Shaping
Letters that join, by construction.
Arabic is cursive and contextual. Liwan selects up to four forms of a letter — isolated, initial, medial and final — from the font's own layout tables, and never hard-codes a letter shape.
بِسْمِ ٱللَّٰهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ
- HarfBuzz
- Artistic text and text on a path. Reads the font's real GSUB and GPOS tables to select contextual forms, apply the ligatures the font declares, position marks, and join kashida.
- Core Text
- Wrapping paragraph frames, shape text and table cells. Unicode line breaking, bidirectional reordering, mixed Arabic and Latin runs, diacritic positioning, and justification.
HarfBuzz pulls glyph tables straight from the font Liwan has already resolved, so a downloaded font shapes exactly like a bundled one.
Kashida
Justified the way Arabic is justified.
A kashida elongates the connecting strokes between joined letters so a line fills its measure. Liwan has two kashida systems, and which one you reach depends on the kind of text.
- Smart Kashida
- For artistic text. An aesthetics-first elongation with four intensities, applied at render time only — the stored text is never changed, so returning to Off restores it exactly.
- Width-targeted justification
- For paragraph frames and table cells. Five modes — None, Word Spacing, Kashida, Mixed and Stylistic Kashida — with Mixed the default for right-to-left text.
Smart Kashida intensity
- 01Off
- 02Low
- 03Medium
- 04High
A typographic illustration of tatweel insertion, not a capture of Liwan's renderer.
Elongation is quantised to whole tatweel glyphs. Liwan does not scale connectors continuously.
The last line of a paragraph is never justified, and a line short by more than 60% of the frame width is left ragged rather than opening rivers of white space.
Numerals and diacritics
١٢٣ or 123 — your call, per layer.
Numeral style is a property of the text layer, not a global setting. Substitution happens at display time and the model keeps exactly what you typed, so switching back returns your original digits.
- Contextual
- The default. Each digit takes its form from its nearest non-digit neighbour — Western beside Latin letters, Arabic-Indic beside Arabic.
- Western Arabic
- 0 1 2 3 4 5 6 7 8 9
- Arabic-Indic
- ٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩
- Eastern Arabic-Indic
- ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹
مكتبة
مَكْتَبَة
Diacritics
Tashkeel can be shown or hidden, recoloured on their own pass, scaled and nudged vertically. The contract is appearance only — the underlying text is never altered and the line never re-flows.
Presets and OpenType
Five presets. Then every feature the font actually has.
Five one-tap Arabic presets set features, kashida intensity, justification and diacritic display together. Beyond them, the OpenType panel exposes what the font itself declares.
| Preset | Features | Kashida | Justification | Diacritics |
|---|---|---|---|---|
| Arabic Body | liga, calt | Medium | Mixed | On |
| Arabic Headline | liga, calt, salt, ss01 | Off | None | On |
| Quranic | rlig, calt, liga | Medium | Kashida | On |
| Modern Arabic | liga, calt | Off | Word Spacing | Off |
| Newspaper | liga, calt, tnum | High | Mixed | Off |
What the font actually supports
Feature discovery reads a font's real GSUB and GPOS tables through HarfBuzz rather than a system feature list, so a font with no OpenType layout tables reports none instead of offering features it cannot deliver. The Arabic core is four tags — rlig, calt, salt and locl — alongside liga, the Latin set, and any stylistic sets the font declares.
Contextual alternates and localised forms are kept out of the toggle panel deliberately: they are correctness features, managed by the presets.
Desktop publishing
A real layout tool, on a tablet.
Because the document model supports multiple pages, master pages, sections, page numbering and named paragraph and character styles, Liwan reaches beyond single-graphic tools into genuine desktop publishing.
- Master pages
- Facing spreads
- Sections
- Linked frames
- Multi-column
- Tables
Liwan — editor preview
- Pages
- Multi-page documents, sections, and facing-page spreads laid out across the gutter.
- Masters
- A master page carries a repeating header or footer; an individual page can override it.
- Numbering
- Section-aware page numbers and running headers, with an Arabic-Indic numbering style among the seven.
- Frames
- Paragraph frames with linked text flow, and up to ten columns with a gutter. In a right-to-left frame, column one is the rightmost — text fills like an Arabic newspaper.
- Type
- Named paragraph and character styles, indents, tab stops and leaders, bullets and numbering, paragraph rules and shading.
- Objects
- Text on a path, shapes used as text containers, tables, twelve shape blueprints, freehand drawing and QR codes.
Export
Native vector, not a screenshot of your page.
Export reuses the exact live canvas render path, so OpenType features, kashida, Arabic shaping, paragraph styles, text wrap, linked frames and tables survive into the output by construction.
- PNG
- Lossless raster from 1× to 4×, with an optional transparent background.
- JPEG
- Compressed raster with a quality tier and a flatten matte.
- Native vector at Screen, Print or Press quality — and the one format that fans out every page of a multi-page document.
- MP4
- 1080p at 30 or 60 fps over three, five or ten seconds, with an entrance animation. Covers the active page.
Vector, precisely
In a PDF, text is emitted as real selectable, searchable text with the fonts embedded, and shapes and tables are vector geometry. Only images and stickers rasterise, at the chosen preset's resolution.
- Preflight
- A panel scans the document across ten categories, tells you whether it is export-ready, focuses the offending layer when you tap a finding, and writes the report out as Markdown or JSON.
- Social sizes
- Fan one design out to six platform presets as new, editable documents. Content scales to fit rather than cropping, paragraph frames re-wrap to the new width, and the original is never touched.
- Liwan Document
- A .ldf package registered with the operating system, so a design opens from Files or the Finder with its assets intact. It is how a document travels between devices.
Type and content
Ten Arabic families, and a library that speaks Arabic.
Ten Arabic families ship with the app across twenty-two font files, all open-licensed. Four of them are variable fonts, so their whole weight ramp lives in a single file.
The bundled families, by category
- Naskh
- Amiri · Scheherazade New
- Modern
- Cairo · Tajawal · Almarai
- Kufic
- Reem Kufi · Mada
- Display
- Lalezar · Aref Ruqaa · Lemonada
Liwan — Catalog preview
- Discovery
- The picker is organised the way an Arabic designer looks for type: All, Arabic Sans, Naskh, Kufi, Ruqʿah, Nastaliq, Display, Quranic and Calligraphy — previewed with Arabic sample text rather than a Latin pangram.
- More faces
- A further twenty-one Arabic-supporting Google families are seeded into the picker without any configuration, and can be downloaded over the network and registered alongside the bundled ones.
- Your own
- Fonts you already license can be imported. They are referenced in place rather than copied, so a library on an external volume stays a live library.
- Templates
- Five templates ship in the built-in library, and the Catalog holds 325 template definitions across five bundled collections — every collection declaring Arabic as its primary language and laying out right-to-left.
- Search
- Sticker and template search normalises Arabic, folding diacritics and presentation variants, so a word typed with or without tashkeel finds the same results.
- Create with AI
- An offline generator, not a hosted model. A deterministic rule engine runs on the device with no network access, proposes a template, theme, brand kit and content values for you to review and edit, and produces the same plan for the same prompt every time.
On the device
Your work stays where you made it.
Documents are stored on the device, rendering and export happen locally, and there is no analytics, crash reporter or telemetry pipeline anywhere in the app.
- Storage
- Your design library lives on the device. There is no cloud sync, no account-backed library and no multi-user editing; exporting a .ldf package is how a document moves from one device to another.
- Rendering
- Export is produced locally by the same engine that draws the canvas. Background removal runs on-device with Vision, non-destructively, and QR codes are generated on-device.
- Telemetry
- No analytics, no crash reporter, no telemetry pipeline.
- Sign-in
- Liwan opens behind Sign in with Apple. Nothing is validated against a server and no identity is stored.
- Network
- Two features reach the network and both are optional: the Google Fonts catalogue and stock-photo search, each requiring an API key that the app does not ship. Downloading one of the seeded Google families also needs a connection.
Platforms
iPad first. The Mac from the same codebase.
One codebase, two platforms. The iPad is the design centre and the shape the editor is built around; the Mac build is a Catalyst application rather than a scaled-up tablet window.
- iPad
- The primary target, and the shape the editor is designed around.
- Mac
- Mac Catalyst with the Optimize Interface for Mac idiom: native control metrics, a localised menu bar, real pointer behaviour and window restoration across quit and relaunch.
- Minimum
- iPadOS 17.0. macOS 14.0 Sonoma, on Apple Silicon.
Mac-only, and said so
Some things exist only on the desktop: the menu bar, canvas scrollbars, trackpad zoom toward the pointer, and Save to Disk. Align and distribute are among them — they live in the Arrange menu and its keyboard shortcuts, and have no touch equivalent, so they are out of reach on an iPad without a hardware keyboard.
Documents do not sync between devices. A .ldf package is how work moves from one to another.