You are browsing as a guest. Sign up (or log in) to start making projects!

Arona Chat

  • 29 Devlogs
  • 65 Total hours

It is a simple AI chat application built on modern serverless infrastructure, focusing on efficiency and low operational cost rather than system complexity or unnecessary overhead.

Open comments for this post

4h 37m 46s logged

After using the Ethereal Light theme for a while, I realized that although the core chat interface was done, many secondary pages still looked like they belonged to a completely different application.

So this update wasn’t about adding a flashy new feature, it was about finishing what Ethereal Light was always meant to be.

This is one of those updates where most users probably won’t notice every individual change, but I hope everyone notices that Ethereal Light feels even more beautiful now.

I also realized that good UI isn’t about making one page beautiful, it’s about making every page feel like it was designed together.

Commit

0
0
62
Open comments for this post

1h 47m 1s logged

Confession time:
I’m a high school STEM student. I spend far more time studying math, physics, chemistry, and biology than anything related to design.
I have almost no artistic background, and I’m much more of a coder than a designer, so building Ethereal Light has been quite a journey.
Half of the CSS for Ethereal Light only exists because I kept googling, “How do I make this look less ugly?” 😭
Somehow, after countless tiny tweaks, it’s finally starting to look like the theme I imagined.
Anyway, I hope you love Arona Chat.

1
0
80
Open comments for this post

1h 1m 34s logged

I’m planning to further polish Ethereal Light theme and address the suggestions mentioned in the rating feedback. Thanks everyone for the support!

1
0
93
Open comments for this post

35m 57s logged

Upcoming Changes:

  • Add more personalization features, such as customizable tone and emoji usage.
  • Refine the Ethereal Light theme.
0
0
19
Ship #2

After a lot of work, AronaChat v1.2.0 is finally here!

With this update, I’m continuing to transform AronaChat from a simple project into a real product that people can actually use.

The Public Demo is now live!
This is not just a temporary showcase — I want to build it into a long-term usable product. You can connect your own API providers and use AronaChat with your own models.

Security and privacy are also a priority. API keys are stored with encryption and protected by multiple security measures to keep your credentials as safe as possible.

Due to storage and cost considerations, each user currently has a limited storage quota. When the limit is reached, attachments will be automatically removed using a FIFO rolling deletion system. Chat history will be preserved as long as possible while keeping operating costs sustainable.

Thank you everyone who has followed AronaChat’s journey!
This is only the beginning, and I hope AronaChat can become a tool that people truly enjoy using.

  • 23 devlogs
  • 56h
  • 14.84x multiplier
  • 826 Stardust
Try project → See source code →
Open comments for this post

4h 43m 18s logged

AronaChat v1.2.0 — A Bigger Update Than The Version Number Suggests

Today, I completed AronaChat v1.2.0!
Although this is only a minor version bump, it actually includes a lot of major improvements and new features.
In this update, I added multi-provider support, custom models, the new Ethereal Light theme, and many other improvements. There are still many things to polish, but I’m working hard to turn AronaChat into something that we can genuinely use in our daily lives — not just a project.
The current codebase has grown into a very complex system, so I’m planning to deploy the Public Demo version tomorrow.
But this Public Demo is not just a temporary showcase. My goal is to make it a long-term usable product. You will be able to connect your own API providers and use AronaChat with your own services.
To protect your privacy and security, the current version includes encrypted API key storage and multiple layers of security protection to keep your credentials as safe as possible.
Due to storage and cost considerations, each user will have a fixed storage quota. If the limit is exceeded, attachments will be automatically removed using a FIFO (First In, First Out) rolling deletion system.
For chat history, I’ll try my best to keep conversations stored for as long as possible while maintaining reasonable operating costs.
Thank you for following the development of AronaChat!
This is still just the beginning, and I hope it can become a tool that people truly enjoy using.

0
0
21
Open comments for this post

2h 14m 10s logged

The core development work is pretty much done! I’m now moving into the final polishing phase—doing security reviews, testing everything thoroughly, and fixing all the little rough edges I can find.
Once that’s finished, I’ll deploy the new build as a public instance that everyone can use long-term. Can’t wait to share it with you all!

0
0
19
Open comments for this post

2h 7m 12s logged

🌸 Devlog Update
I’m currently exploring a better and more reasonable resource limitation system, hoping to make the DEMO experience smoother, friendlier, and more enjoyable for everyone!
I’m also working on adding support for custom model providers, so you’ll be able to add your own providers and use this project as a complete long-term solution instead of just a DEMO.
Of course, this also brings some new challenges qwq
Since users will be able to add their own API Keys, I need to carefully design a secure system to make sure your keys stay safe and never get exposed. I’m planning a layered architecture with encryption, multiple authentication layers, and additional security protections.
This project is becoming much more complicated than I originally expected… but I want to build it properly instead of rushing it 🥺✨
🌱 About Storage
S3-compatible storage is really expensive qwq, so for now I’ve added per-user file size limits and a 7-day automatic cleanup system.
I know these limits are a little too strict, and I’m really sorry about that 🥲💦
I hope you can understand that I’m still a solo developer trying to keep the service sustainable.
To improve this, I’m building my own tiered storage system — Minamo 🌊
After Minamo is finished, attachment storage limits will be increased significantly, and the 7-day automatic cleanup will be removed! 🎉
If you like this project, you can follow this project or follow Minamo to receive future updates and new features 💫
Thank you so much for supporting this project! 💙

0
0
22
Open comments for this post

4h 15m 35s logged

Whitelist is almost finished! There’s only a little bit left to polish, and I should have it done within the next few days. New ship coming soon™

0
0
11
Open comments for this post

1h 26m 8s logged

Status Update!

  • [IN PROGRESS] New frontend UI theme — Ethereal Light
    • [DONE] Draft
    • [DONE] Animations
    • [DONE] Visual polish
    • [DONE] Final UI review - almost done
  • Whitelist
  • User resource usage limits (for the demo)
  • Lazy frontend loading
1
0
34
Open comments for this post

2h 22m 4s logged

Status Update!

  • [IN PROGRESS] New frontend UI theme — Ethereal Light
    • [DONE] Draft
    • [DONE] Animations
    • [DONE] Visual polish
    • [IN PROGRESS] Final UI review - almost done
  • Whitelist
  • User resource usage limits (for the demo)
  • Lazy frontend loading
0
0
21
Open comments for this post

1h 26m 58s logged

Status Update!

  • [IN PROGRESS] New frontend UI theme — Ethereal Light
    • [DONE] Draft
    • [DONE] Animations
    • [DONE] Visual polish
    • Final UI review
  • Whitelist
  • User resource usage limits (for the demo)
  • Lazy frontend loading
0
0
13
Open comments for this post

2h 31m 49s logged

Finally fixed the security vulnerabilities and the remaining bugs. Next, I’ll continue reviewing the codebase and finish the new theme.

0
0
11
Open comments for this post

3h 23m 31s logged

I’m currently fixing a number of bugs in the new Ethereal Light theme. At the same time, I had the codebase audited by AI, which identified several critical security issues.
I’m actively working through both the theme bugs and the reported vulnerabilities, so the next public commit may be delayed a bit.
Before anything is published, I’ll also perform a full manual security review to make sure the public release is free of known security issues.

0
0
6
Open comments for this post

1h 28m 2s logged

Fixed a bunch of UI, animation, rendering, and performance issues across the Ethereal Light theme and the Settings Panel.
Real-time reasoning topic extraction now handles unfinished Markdown chunks correctly, so active words no longer get cut off while responses are streaming. I also switched to stable React keys, which eliminates the annoying text flickering during streaming.
The scrolling lock, content clipping, and hidden input issues in Ethereal Light have also been fixed by improving layer isolation and hardware acceleration.
Finally, repeated clicks on the Save button in Settings are now automatically deduplicated, preventing duplicate requests when the same configuration is submitted multiple times within 5 seconds.

0
0
16
Open comments for this post

2h 40m 12s logged

Status Update!

  • [IN PROGRESS] New frontend UI theme — Ethereal Light
    • [DONE] Draft
    • [DONE] Animations
    • Visual polish
    • Final UI review
  • Whitelist
  • User resource usage limits (for the demo)
  • Lazy frontend loading
0
0
7
Open comments for this post

3h 14m 25s logged

Status Update!

  • [IN PROGRESS] New frontend UI theme — Ethereal Light
    • [DONE] Draft
    • [IN PROGRESS] Animations (almost done)
    • Visual polish
    • Final UI review
  • Whitelist
  • User resource usage limits (for the demo)
  • Lazy frontend loading
0
0
8
Open comments for this post

2h 25m 38s logged

I couldn’t decide between a typewriter effect and a fade-in animation for AI responses, so I added both! You can now choose your preferred output animation in Settings.

0
0
10
Open comments for this post

47m 40s logged

I refactored the usage calculation. This fixes an issue where the per-model cost wasn’t updated automatically, while also reducing database usage.

0
0
6
Open comments for this post

2h 6m 42s logged

I discovered that adding a new feature caused an existing feature to break.
To prevent similar regressions, I added smoke tests and a full end-to-end (E2E) test suite.

0
0
16
Open comments for this post

4h 11m 47s logged

Status Updated!

  • [IN PROGRESS] New frontend UI theme — Ethereal Light
    • [DONE] Draft
    • Animations
    • Component art polish
    • Final UI review
  • Whitelist
  • User resource usage limits (for the demo)
  • Lazy frontend loading
0
0
10
Open comments for this post

2h 10m 24s logged

I am currently working on:

  1. New frontend UI theme (I named it Ethereal Light. It will be very, very beautiful!), and it will be released with a theme selector (if you don’t like it, you can switch to the current Classic theme).
  2. Whitelist: enabling you to have a private deployment!
  3. User resource usage limits: designed for the demo.
  4. Lazy frontend loading: makes the frontend start faster!
  5. Bug fixes: the current version has many bugs, including Clerk integration, multi-provider switching, etc. Locating the source of these bugs is very tiring.

The next public version will take a long time to release and be pushed to the public repo. I will sync my progress via devlogs. If you have any suggestions, please tell me — they are very, very important to me!

1
0
14
Open comments for this post

3h 6m 21s logged

feat: optimize chat stream stability, security, and frontend rendering performance- Security: Added sensitive data redaction (masking password, secret, token, apiKey) for trace logs in backend utility request/response body parsing.

  • Stability: Enhanced Durable Object state recovery by persisting and restoring runtime payloads, ensuring the process queue resumes on restart, and adding a 100-second upstream API fetch timeout.
  • Database: Bumped DB schema version to 15, adding applySchemaV14 and applySchemaV15 compatibility stubs.
  • Performance: Refactored ChatSession message lists by extracting and memoizing UserMessageRow and AssistantMessageRow with React.memo, and extracted static Markdown plugins outside of render scopes to eliminate redundant parsing.
  • State Management: Integrated Zustand useShallow selectors across App, ChatInputArea, and ChatSession to prevent unnecessary re-renders.
  • Resilience: Upgraded stream reconnect/resume flow in the store to pass existing stream progress (content and reasoning), preventing flickering and duplicate content rendering on stream recovery.
0
0
25
Open comments for this post

1h 9m 59s logged

Added a Demo Mode that allows guest access via a password-based login.

  1. Demo mode can be enabled via config.
  2. Guests can log in using a shared demo password.
  3. All demo sessions are isolated per device.
  4. Demo data is separated from production.
0
0
13
Ship #1

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
  • 8.56x multiplier
  • 8 Stardust
Try project → See source code →
Open comments for this post

31m 54s logged

Release 1.1.0

This update focuses on enhancing usage tracking capabilities, introducing flexible service tiers and budget management, and delivering deep performance optimizations for the chat experience.

🌟 New Features

Usage Aggregation: Added persistent tracking of total requests, prompt/completion tokens, and total cost (USD) within user profiles, including a detailed breakdown by model.
Service Tiers: Introduced OpenRouter Service Tier support to balance cost and performance:
Flex (0.5x cost): More affordable, but potentially slower or less reliable.
Default (1.0x cost): Standard service level.
Priority (2.5x cost): Fastest response times and highest priority.
Temporary Daily Budget: Added the ability to set a temporary budget override for the current UTC day, allowing short-term flexibility without altering long-term settings.
Usage Sync Tool: A new “Recalculate Usage Statistics” feature in the settings allows users to force a backend scan of all records to synchronize aggregated totals.
⚡ Performance Improvements

Streaming Render Optimization: Implemented a buffering mechanism using requestAnimationFrame in useStore, shifting high-frequency streaming updates from “immediate trigger” to “frame-synced updates,” significantly reducing re-renders and improving UI smoothness.
Refined Auto-Scroll: Overhauled auto-scroll logic in ChatSession to distinguish between session switches, message count changes, and active streaming, ensuring smoother scrolling behavior.
🎨 UI/UX Enhancements

Session Management:
Pagination: Session list now uses lazy loading (“Load More”) instead of loading all sessions at once, improving startup speed.
Quick Actions: Added Pin and Archive capabilities in session menu for better organization.
Settings Panel Upgrade:
Advanced Tab: Introduced a new “Advanced” tab for system maintenance tools and technical information.
Budget UI: Improved budget settings interface with detailed cost multiplier explanations and a dedicated temporary budget input.
System Info: Added visibility for Instance ID and Schema Version.
🛠️ Technical Changes

Backend Architecture: Modularized routing and migrated chat sessions to a Durable Object-based implementation for better state consistency.
Database Migration: Updated user profile schema to support usage aggregation (Schema v13).
Shared Types: Updated UserProfile and ChatGenerationSettings types to support new tracking and configuration options.

0
0
17

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…