This is a submission for the GitHub Finish-Up-A-Thon Challenge
What I Built
Chatly is a modern real-time chat platform designed to be more than just messaging. Chatly combines real-time conversations, AI-powered assistance, user profiles, paywall-protected premium features, dark mode, push notifications—all in one sleek, SaaS-ready package.
It started as a project I built while learning modern web development and AI integrations. Over time it accumulated features, but it never quite felt finished. This challenge gave me the excuse to come back, polish the rough edges, build a native Android app, and finally ship something I was proud to share.
For this challenge, I decided to revisit Chatly and finally give it the attention it deserved.
The result is a significantly more polished product with improvements across the web experience and a new native mobile experience built with Expo and React Native.
Some highlights include:
- User authentication
- Persistent chat history
- Responsive web application
- Native Android application
- AI-powered conversations
- Message attachments including images, videos, audio and files
- Web push and Expo notifications
- Improved user experience and visual polish
- Better overall reliability and usability
More importantly, Chatly has now evolved from a learning project into a real application that people can use.
Demo
Please read "Important info regarding Chatly's limitations" below before testing the demo.
Web App
https://chatly-brown.vercel.app
(An account is needed to use Chatly. Email or Google/Github authentication is supported. If using email, an email verification is required.)
Android Download
https://chatly-brown.vercel.app/download
(Due to limitations, Chatly is only available as an app on Android as a .apk file downloadable from Expo. This file is secure. You might need to allow "install unknown apps" in your browser to install Chatly on Android.)
GitHub repository
shravzzv
/
chatly
Chatly is a modern real-time chat platform designed to be more than just messaging. Chatly combines real-time conversations, AI-powered assistance, user profiles, paywall-protected premium features, dark mode, push notifications— all in one sleek, SaaS-ready package.
Chatly
Chatly is a real-time 1:1 messaging application with media attachments, AI-assisted message enhancements and usage-based billing.
The project is structured as a cross-platform monorepo supporting both web and native clients backed by a shared Supabase infrastructure.
Chatly is designed as a production-grade SaaS example covering authentication, messaging, media uploads, rate limiting, billing, and enforcement — without placeholder flows.
Features
- 1:1 Text Chat: Real-time messaging with delivery states.
- Media Attachments: Support for images and file sharing.
- AI Enhancement: Integrated AI-assisted message refinement.
- Usage Enforcement: Daily limits and plan-based feature gating.
- Real-time Infrastructure: Powered by Supabase Realtime.
- Secure Auth: Email and Google OAuth integration via Supabase Auth.
- Subscription Billing: Full Lemon Squeezy integration including a customer billing portal.
Tech Stack
Web
- Next.js (App Router)
- React
- TypeScript
- Tailwind CSS
Mobile
- Expo
- React Native
- TypeScript
- Expo Router
Backend
- Supabase (Postgres, Auth, Realtime, Storage)
Infrastructure
- Vercel AI…
Screenshots
Video Walkthroughs
Web
Android
Important info regarding Chatly's limitations
Chatly uses LemonSqueezy as its Merchant of Record. The store is currently awaiting final approval, which means the LemonSqueezy billing portal is not yet available. To allow the subscription experience to be evaluated, Chatly remains connected to LemonSqueezy's test payment environment. All subscription-related functionality can therefore be explored safely without real charges. Once store approval is completed, billing management will be available through LemonSqueezy's standard customer portal. Nevertheless, Chatly is completely usable even with this limiation.
All of Chatly's subscription plans are available at https://chatly-store.lemonsqueezy.com/checkout when navigated using the links within the app and these can be purchased using test data.
Use test card details such as
4242 4242 4242 4242with any valid future date for expiry and any 3 digit number as the CVC. The rest of the details aren't crucial for purchasing a subscription.
The only real limiation here is that LemonSqueezy billing portal (https://chatly-store.lemonsqueezy.com/billing) is unavailable because of the store not being activated. Due to this, managing billing is not possible at the moment. Once activated, users can manage their plans here. But until then, test data can be used and plans can be explored as if real transactions were made. If multiple subscriptions are present, only the highest value one gets used.
The Comeback Story
| Before | After |
|---|---|
| Web application only | Web + Android |
| Basic chat functionality | Chat + attachments + enhancements |
| Limited settings | User settings and personalization |
| Prototype | Publicly deployed product |
| Unfinished side project | Actively maintained application |
This release contains all the changes I've made for phase 2 of this project. It contains all the work completed for the Finish-Up-A-Thon challenge and represents the transformation of Chatly from an unfinished side project into a cross-platform application.
Before
When I originally worked on Chatly, my focus was primarily on getting functionality working.
The application could already support basic chat conversations, but several parts of the overall experience were incomplete:
- Mobile experience was limited
- User experience needed refinement
- Various UI and workflow improvements were still unfinished
- The project lacked the level of polish needed for a public launch
- There was no dedicated native mobile application
Like many side projects, it became something I would occasionally revisit but never fully complete.
After
For the Finish-Up-A-Thon, I decided to treat Chatly like a real product and finish what I started.
Major improvements included:
Native Mobile App
The biggest addition was building a native mobile version using Expo and React Native.
This transformed Chatly from a web-focused application into a cross-platform experience.
Web App Polish
I revisited numerous areas of the web application and improved the overall experience:
- Better interface consistency
- Improved workflows
- Bug fixes
- General usability improvements
- Additional polish throughout the application
Product Readiness
I also spent time improving the parts of software development that users rarely see but always feel:
- Reliability improvements
- Better overall user experience
- Cleaner codebase
- Production-focused refinements
The project now feels substantially closer to the vision I originally had when I started building it.
My Experience with GitHub Copilot
GitHub Copilot played an important role in helping me finish the project.
I primarily used Copilot as a development partner while implementing features, refactoring existing code, and solving implementation problems.
Some of the ways Copilot helped included:
- Generating repetitive boilerplate code
- Assisting with React and React Native development
- Accelerating component creation
- Helping troubleshoot implementation issues
- Speeding up refactors
- Providing alternative implementation ideas
One of the biggest benefits was maintaining momentum. Instead of getting stuck on smaller implementation details, I could stay focused on improving the product itself.
For a challenge centered around finally finishing a project, that productivity boost was incredibly valuable.
What's Next?
Chatly is no longer an abandoned side project.
My goal now is to continue improving the application, expand platform support, and keep refining the user experience based on real user feedback.
Finishing the project reminded me that shipping and polishing often matter more than starting something new.
Sometimes the best project idea is the one you've already started.






Top comments (0)