I added a simple sharing function. I also added automatic picture attachment compression, which should save a lot of tokens.
Sorry for the late update!
As my new semester started on August 31st, I won’t have much time to work on Minamo for the time being.
In this commit, I’ve added support for the Hack Club CDN and fixed many bugs and security issues.
Hope you all enjoy Minamo!
This is the last update for Arona Chat for the time being.
In this update, I’ve added automatic image resizing, support for TXT and Markdown files, dynamic username injection in the greeting and system prompt, and the new Ethereal Dark theme.
However, since my new semester started on August 31st, I won’t have as much time to work on Arona Chat or add new features.
Anyway, I hope you all enjoy Arona Chat!
Hey guys!
I’m currently working on a new theme (Ethereal Dark) for Arona Chat, and it will probably introduce a very large diff with many UI/CSS/component changes.
I’m thinking about creating a dedicated feature branch (theme/ethereal-dark) for this work instead of directly committing everything to main. The idea is to keep the development process transparent and easier to review for future reviewers and users.
After the theme is complete, I’ll merge it back into main.
So I’d like to get your opinion:
Thanks!
Settings now save automatically as soon as you make changes, so there’s no more clicking Save everywhere. The user list also shows each user’s email when available (falling back to the Clerk ID). Improved auth by showing a recovery screen if initialization gets stuck for 12 seconds, and hardened SSRF protection against alternative IPv4 bypass tricks. I’ve already started designing the Ethereal Dark theme too, but since it’s unrelated to this commit I didn’t include it yet. Still probably another 8–10 hours to go before it’s ready.
This update mainly focuses on improving the logging system to make operations and maintenance much easier. Logs are now more structured and include more useful context.
I found a few issues in the code, including thread safety bugs, race conditions (which could even corrupt the database), and some resource leaks. So most of my current work has been fixing those.
After that, I’m planning to add HackClub CDN as a storage backend and edit it to my new dynamic storage backend loading system.
ps writing the code is fun, but honestly I think designing the architecture is even more fun. I’ve learned a ton from it, so I’d recommend trying it if you get the chance. If anyone has ideas or feedback on my project architecture, I’d love to hear them!
I added /asachan-settings, now you can configure AsaChan through a Slack modal instead of using multiple commands. This update also brings AQI, sunrise/sunset, and weather warning support, plus a new /asachan-admin command for basic debugging and more detailed stats for admins. I also added automatic timezone detection from city geocoding.
I redesigned the settings using Slack Modals. Before, you had to use several different commands to configure everything. Now, you can just run /asachan-settings to open the settings page and manage everything in one place. It’s much easier to use now.
Next, I’m planning to improve AQI display and weather alerts display, and fix a few small issues that don’t affect functionality but still aren’t quite perfect.
I just got an idea. I saw Slack’s Modal feature, and I think using it could make the bot cleaner and more interesting.
Here’s the official documentation: https://docs.slack.dev/surfaces/modals/
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.
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.
I’m planning to further polish Ethereal Light theme and address the suggestions mentioned in the rating feedback. Thanks everyone for the support!
Over the past day, I have been working on a major redesign of Minamo’s storage architecture.
Minamo now supports configurable storage tiers, including:
Minamo can automatically manage data movement between tiers based on configurable policies.
To support this, I introduced several new components:
Instead of directly interacting with a specific backend, object operations are now managed by StorageManager, which decides:
Minamo now includes a native Cloudflare R2 backend.
This enables using R2 as one of the storage tiers.
A new HsmScheduler was added to handle background tasks:
To make these decisions smarter, Minamo now records access patterns through a dedicated access_logs.db.
This allows Minamo to gradually evolve from rule-based storage movement toward more intelligent storage scheduling.
The next development direction will focus on improving compatibility and expanding storage backend options.
Planned tasks:
Minamo is gradually becoming a more complete storage management system.
There is still a long way to go!
Someone recently asked me whether Minamo was named after Mixamo.
It actually wasn’t, but I realized I had never shared where the name came from, so here’s the story.
Minamo is derived from the Japanese word みなも (水面, minamo), meaning “the surface of the water.”
The idea behind this name comes from the relationship between the surface and what lies beneath it. From above, the surface of a lake appears simple, calm, and clear. However, beneath that surface exists a much more complex world that is hidden from view.
This is also the philosophy behind Minamo. For clients, Minamo provides a simple and consistent S3-compatible interface — just like a calm water surface that is easy to interact with. Behind that interface, Minamo handles the complexity of storage systems, including different storage backends, tiering, caching, and data management.
Minamo aims to keep the surface simple while allowing the complexity underneath to remain invisible, creating a clean and reliable experience for clients.
I’m currently adding Cloudflare R2 support to Minamo, and I was wondering: what if I also added Hack Club CDN as an optional backend?
Since it offers free storage, it could be a pretty cool addition. What do you all think? Would love to get some feedback!