System Mismatch
Appwrite's database layer used document database terminology while relying on a table-based structure under the hood. This created a gap between how data was described and how it actually behaved.
Collections, Documents, and Attributes shaped the mental model, but did not fully reflect the underlying structure of the system.
Static Interaction
The table interface functioned as a static structure rather than a live workspace. To modify data, users had to leave the table and navigate to a separate document view.
This created a break in context between viewing and editing, making even simple updates feel indirect and fragmented.
Spreadsheet Interface
We introduced a spreadsheet-based model for interacting with database content, rethinking tables as a live, editable workspace rather than a static structure.
Structured data is managed in a full-width spreadsheet with rows and columns, enabling fast inline editing and seamless record creation.
Flexible data is managed in a split view combining a spreadsheet interface with a JSON editor, where the spreadsheet exposes key fields and the JSON editor provides full document-level access.
Keyboard Workflow
We designed a keyboard-first experience that prioritizes speed and efficiency when working with data. Users can navigate between fields, open records, and edit content without relying on the mouse.
This approach makes working with large datasets faster and more fluid, reducing friction in common database operations.
In the JSON editor, shortcuts and structural suggestions help users complete and extend schemas more efficiently, keeping both speed and control at the core of the experience.
AI Schema Assist
We introduced AI-assisted schema generation to accelerate the process of structuring data within the spreadsheet model.
Based on table context and naming, the system suggests relevant columns, helping users quickly move from an empty dataset to a structured and usable database.
This reduces the manual effort required to define schemas, while keeping full control in the hands of the developer.