Writer Framework
An AI-boosted tool for creating web applications
WYSIWYG interface editing
AI module
Fast development
Software-as-a-Service (SaaS)
Frontend and backend development
1 year (ongoing support)
About the project
Our client, an American-based AI startup Writer, needed a hand in creating and optimizing one of its projects—an AI-based framework that will help people create web applications in a matter of seconds.
We were responsible for
- Frontend development
- Backend development
Project team
Project manager
Two frontend engineers
Two backend engineers
How Writer Framework works
The Writer Framework is an open-source platform designed to streamline the creation of AI applications by combining a visual, drag-and-drop interface for building user interfaces with the flexibility of Python for backend development.
Key features of the Writer Framework include:
Visual editor
Developers can design user interfaces using a visual editor, selecting from a library of customizable UI components that can be tailored to match specific brand styles.
Python backend
Python functions can be directly bound to frontend events, for example, a mouse click or form submission will call a Python function that can access the event context and change the app’s state).
Separation of concerns
By maintaining a clear distinction between the user interface and business logic, the framework supports the development of more complex applications.
Tech Stack
Frontend: TypeScript (Node.js)
Backend: Python (FastAPI)
AI: Writer SDK
Development Challenges and Solutions
How our team coped with a range of development challenges:
Backend-driven UI:
Problem
We used a “backend-driven UI", an interface that can be defined by code, similar to other Python libraries. However, there was an obstacle in the form of distributed sessions for each user.
Solution
By collaborating and brainstorming together, we found a suitable solution.
AI module:
Problem
It was necessary to invent an approach to processing streaming outputs with an emphasis on UX.
Solution
Through collective discussion and brainstorming, we were able to find a solution to this problem.