June 16, 2025
Hey yall, I'm back!! I've been mainly hanging around the hack club slack these days and doing a lot of stuff for som support :) However now that the balloon brigade has launched, I'm back to working on projects!!
The main thing that changed in this devlog is that I added a dashboard page. Something I spent a lot of time on is making this fully responsive when the sidebar is collapsed & when the user is on mobile... the css is a little ugly, with some hacky conditional state for width of the project container. but it works!!! yay :)
Big changes! First off, I started working on the studio page. That's pretty much the primary page that this whooole app centers around, so expect more time spent there. Next, I also switched themes to a catppuccin theme! because who doesn't like a nice purple :)
Implement page for creating projects! I may or may not have forgotten to implement the upload thumbnail feature here... meh, i'll add it later
Finished the projects page with a lot of placeholder data (hope these images dont get me copyright striked lol)
Also added a sidebar which will hopefully hold a few things in the future (profile, search, projects, etc)
Next up... the studio page! this page will also start as a mockup them i'll add the features in later on
The project is set up! Added all the authentication features that I want (i.e. login & sign up w/ email). Supabase is amazing and I will continue to use it for all of my personal projects ‼️
Well, the main change here is that I switched to the MediaKit flutter library for playing videos... but a lot happened behind the scenes:
- Switched to HLS streaming for faster video loading as you only need to load a chunk at a time!
- Tried a million different video libraries 🤦 videoplayer doesn't support HLS streaming, so I tried betterplayer... doesn't work on the web! Finally landed at media_kit, and am happy with how it's performing.
Enjoy the content about the renaissance in ap euro, i guess
Also, cloudflare R2 is honestly amazing, highly recommend.
An app that lets you create easy synchronized music performances. Metronome backed, record yourself, and the app handles stiching it all together into your final video!
Fixed a bug where the Expanded element containing a Text element within the study screen was causing a large grey rectangle to appear.
Adde profile-less authentication so that guests have an easier time.
Deployed Beebo on my coolify instance! This update includes a few internal fixes including:
- Create nixpacks configuration
- Update help command
- Add integration type to discord api to reduce bot startup time during command sync
Next update will be a content one, so keep your eyes peeled!
Figured out how I want the bookmarks screen to look. Essentially, its just clicking on a class then a unit then you get shown your bookmarks.
Also, did some QOL fixes such as not showing the stimulus tab if it is blank.
This was a pretty significant update for me. We're fully self hosted! I got the TrigTok server onto a coolify instance running on my raspberry pi, tunneled with cloudflare. This allows me to move away from nest, which is rather unstable nowadays with its frequent restarts.
Add README and also rebrand to Beebo! Also created a cute little icon for the bot.
Fixed some little bugs here and there:
- Fixed breeding for new schema
- Fixed timestamp issues in foraging displaying incorrect units of time (minutes -> seconds)
You can now earn treats that your bees find during harvesting! (It won't actually be like 1000 treats, this is just because I scaled everything up for testing...)
Yet another batch of QOL improvements! This time, it's about foraging. When your foraging time is up, you will get a reminder in the channel.
Max foraging time scales based on your bees and their pollen per minute
Implement inventory command
Implement bee feeding! Feed your bees treats to have them gain XP. Bees level up after a certain amount of XP. There will be some kind of pollen/forage multiplier based on bee level in the future.
This was primarily a huge backend change. Essentially, I changed the way that bees were stored so that each bee can have its individual level and xp. This means that I can implement treat feeding and also leveling up of bees (in the future!).
Having this change meant I had to also change all commands that interacted with bees... not fun.
On the bright side, the eviction UI has been improved to update after a bee was evicted. Also, bee display UI has been improved to show all bees and their individual levels.
The upgrade logic for memory match passes is implemented- You need to have a certain amount of items to purchase the pass.
Also, a lot of QOL improvements, here's some of them:
- Foraging shows estimated pollen per minute
- Bee info now allows you to scroll through all the bees (paginated!)
I probably just implemented one of the most complex features of this bot: Memory match! Match items on the board and whichever ones you match are the ones that you get at the end. You have 5 tries to match as many items as you can.
Add expand hive logic, also add a leaderboard. Expanding your hive costs honey, equation is something exponential.
Implement bee eviction and hive limits. The default limit is 10 bees. In the future there will be a command to expand your hive.
Add a few privacy things. User emails are hidden in the approvals page if you're not an admin. Also, add a new page to redirect to if the user is not approved in the approval system.
Added bee breeding to discover new bee types.
Tentative hive and forage logic is complete. The bot is honestly pretty unbalanced right now, and it needs a lot of work to make sure that the game is fun while still taking time to progress.
Added start hive and check hive commands, and integrated a database (mongodb). Now the stone is really rollin, hopefully more things come fast!
I think after this devlog, I will be updating the way that the hive is displayed to the user since there will be a lot of bee types.
Got my discord bot set up with discord.js and sapphire, and made a help command! This took slightly longer than I expected since discord.js has changed so much since I last used it (v12 -> v14) and I've never used sapphire before. It's a cool framework though!
Fun interactive gameplay Discord bot, where you manage a hive of bees! You can get different types of bees, collect pollen, and produce honey. Play minigames like memory match to get treats to feed your bees!
Made a user approval page! This took quite a while as I had to figure out how to use supabase RLS to ensure read/write access to only those who were allowed.
Added a lot of mock data, which means I can finally send screenshots/videos without having to blur out anything. And also means that this project will be ready to be shipped soon!
Added a few auth things, including a dedicated sign up/ sign in page and also a sign out button in the sidebar once you're logged in.
Added a student merger page. Essentially this just allows me to merge students whose names were inputted differently multiple times. Unfortunately, again, there is a lot of private data that was displayed in this video (real data, real names) so things had to be blurred out.
Implement more complex filtering of courses with start date and end date. Also, implement custom limits. The cool thing about this is it all goes into url query params (so the url is sharable) and also is all server side rendering for data! I also made a custom search bar with filtering system that allows me to add filters and remove them using just a simple array.
Two big things happened this update! First, the students page is complete with all of the parent information and things needed. In addition, the classes page now displays a table with student attendance. More utility features will come in the future!
This was a pretty important update. I added authentication using supabase (not in the video, unfortunately) & also added a search feature for students. The names are blurred because this is real data - I haven't bothered to make seed data yet.
I added a lot of real data from one of the organizations I volunteer for. Unfortunately, a lot of these are actual students so I have to censor any potential private information. Good news? 308 students to test with!
Yet again with sample data, but I have the courses and student view UI draft complete. This will probably be changed in the future as I integrate in the backend and as I decide what needs to be displayed.
Spent some time scaffolding the app. Essentially, I got in a sidebar for all pages under the dashboard using Nextjs's cool layouts feature. I also got a login page UI implemented (no functionality yet!). Pretty much everything on this site will be placeholder data for the time being.
Started working on the bookmarks screen... A lot of the 30 minutes spent in this devlog were on the backend and actually setting up security policies (supbase rls) & getting my queries right. Right now I just have it as raw data but in the future I'll patch it up and actually make it display the video.
I'm actually considering making the bookmarks screen a more flashcard-style content so that there is more effective review. Also, the bookmarks screen will probably be grouped by class to make things easier.
A pretty simple student tracker that's used to track attendance and search for students enrolled in classes.
I'm currently out of town so updates will be much more sporadic, but anyways:
Add yearly vs monthly subscription, its super cheap just so I can fund my LLM API keys... Subscriptions handled with Paddle hosted checkouts, anyone have good/bad experience with them? Lmk in the comments!
I started with the payments/subscriptions screen. Right now, this is just a UI mockup and doesn't do anything. The features are also random. In the future (next devlog!) it'll be integrated with the backend and Paddle payments.
Integrated the customize session feature into the backend. The session desired values are stored alongside the session metadata, and is used to customize content the user recieves.
Made a screen for configuring a session! Next step, integrating this with the backend.
Got custom sets fully working! You can now upload files up to a fixed size (10MB, so my servers don't explode). The sets also display as cards in the my content screen. This is now fully integrated with the backend, and uses Cloudflare R2 Object Storage for files.
I started to work on the add custom content features modal. Users will be able to upload notes and content from their classes and use AI to generate MCQs/FRQs to review. This allows for even more flexibility in subjects that aren't supported by default.
I finally fixed the Last topic not displaying the correct topic. As a bonus, I also added the time that you last studied the subject as a reminder to study more!
TrigTok now preloads the page (and pre-generates and explanation videos) in front of your current one for faster load times. Hoping to get it even faster in the future.
Added a streak calendar and also integrate streaks with the backend!
I did quite a few things this time around, so here goes my first devlog!
● Updated the profile screen to include a streak, more detailed info about the user, and added links to a subscription & bookmarks page
● Update flutter to latest (3.32.4) supporting hot reloads for the web!
● Fixed Free Response Question generation on the backend when the user has exhausted all the built-in ones
● Fixed authentication redirects in developer/debug mode
● Prepare for a new my content page for uploading your own notes
Stay tuned for more, and give TrigTok a follow!
(censored my name+email for privacy reasons)
A fun scrolling app where you learn! Get a TikTok-like feed of explanations, multiple-choice questions, and free-response questions. Includes AI-powered grading and explanations, as well as custom topic sets! Designed for studying for Advanced Placement (AP) classes.
This was widely regarded as a great move by everyone.