What did you make?
I built Arona Chat, a full-stack AI chat application powered by Cloudflare Workers, D1, R2, Durable Objects, and OpenRouter. It supports chat sessions, file attachments, usage tracking, budget management, authentication, and model selection, all wrapped in a Blue Archive-inspired interface.
What was challenging?
The most challenging part was designing the backend architecture around long-running AI responses and usage tracking.
One lesson I learned the hard way is that inefficient SQLite access patterns can dramatically increase database costs. As the project grew, I had to rethink how usage statistics were stored and aggregated instead of recalculating everything repeatedly.
Another challenge was handling very long SSE streams. For AI responses that may take a long time to complete, it is important that processing continues even if the client disconnects. This was my first time introducing Durable Objects into a production project, and they turned out to be a great fit for maintaining state and ensuring reliable streaming behavior.
What are you proud of?
I’m proud that this project pushed me beyond simple CRUD applications and into distributed system design. Integrating Durable Objects, building usage aggregation, and optimizing streaming performance taught me a lot about how real-world AI applications are built.
I’m also genuinely impressed by Cloudflare R2. It was extremely easy to integrate, works reliably, and offers a very generous free tier, making it an excellent choice for student developers and hobby projects.
How can people test it?
1. Fork this repository.
2. Update the wrangler.toml configuration for your own Cloudflare resources (do not commit any secrets).
3. Deploy the frontend (frontend) to Cloudflare Pages and the backend (backend) to Cloudflare Workers.
4. Configure the required Secrets in Cloudflare after deployment.
5. Open the deployed site and log in using the password you configured.
6. Create your first Passkey (highly recommended for a better login experience).
7. Start chatting, upload files, try different models, and explore usage statistics and budget management features.
- 2 devlogs
- 1h