Made by Indecisive
Turning creative writing into a collaborative experience
We came up with the idea for Co-Write because we wanted to make creative writing more accessible and enjoyable—especially for those who feel they’re not naturally good at it. The app gives users a space to write collaboratively with others, while using AI to support creativity and improve writing in an interactive way. Co-Write lets users start new stories, contribute to ongoing ones, and explore completed stories, which are brought to life with AI-generated images. Whether you’re struggling to get started or want inspiration for the next twist, the AI steps in with suggestions and story continuations. Users can create profiles, join story threads, and contribute their own chapters. A word limit keeps entries focused, and a voting system helps guide the story’s direction. It’s not just about writing better—it’s about having fun creating together.
The Team
Edmund Liu
A former Analyst and Trader, looking to apply their…
experience working with data and problem solving to transition into a career in software development.
Richard Frickleton
I have been involved in the tech industry for almost 20…
years mostly as a manual QA. I decided to take the plunge and learn to code properly to take advantage or modern test automation tools.
Helios Sek Lai So
Originally from Hong Kong, now building things with code in…
the UK | Junior Software Engineer | Ex-UI/UX Designer | LLM Enthusiast
James Uczniak
James is a multilingual former Truck Driver and Business…
Graduate with a passion for personal development and lifelong learning, making a long-term career transition to Software Development through the Northcoders bootcamp!
Tech Stack

We used TypeScript, React Native, Expo, Firebase, and OpenRouter and OpenAI APIs For our frontend, we used TypeScript, React Native and Expo. We used this project as an opportunity to learn the widely-used TypeScript for its quick debugging and ability to ensure data integrity. And given the team’s existing experience with React, we used React Native to code a cross-platform Android and iOS app, and Expo to easily view and debug the app via emulator and physical device. As our backend, we used Firebase for user authentication, and Firestore, a NoSQL database, to store user and story information in real-time, which is then fetched and incorporated into AI prompts. We used OpenRouter and OpenAI APIs to fulfil different AI functions within the app, as well as to function as a fallback for one another in the case that the API call to either one failed, ensuring a smooth user experience.
Challenges Faced
It took some time adjusting to TypeScript from JavaScript, implementing the real-time chat features, AI integration, and Firebase were all very new and challenging, and we had to manage our ambitious expectations to what we could realistically achieve within 6 days. But the project progressed more smoothly as our team got more accustomed to the new tech stack. As the deadline was looming, we really felt the pressure to incorporate all of the components that were crucial for our MVP. One particular challenge was the use of AI image generation following story completion, however after many stressful days we managed to get it working on time and can happily say we delivered an app project that we are proud of!