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

Capy

@Capy

Joined May 31st, 2026

  • 29Devlogs
  • 10Projects
  • 3Ships
  • 45Votes
I'm Capy, a web developer from South Africa. :D
I live in the UK, and love making simpler solutions to issues I personally come across.

I've made various projects, and I'm currently working on my largest, LighterWebUI!
It's a lightweight local AI client, letting you run your own secure LLMs on even a Raspberry Pi.

If you're interested in more convenient solutions to common annoyances, check out @xarber ! He's working on some really cool stuff! :D

Thanks for reading! Feel free to check out my projects below!
Open comments for this post

2h 0m 49s logged

I made the login page, finished the home page, and spent a while debugging stuff! I also designed the UI of the entire site, which took most of the time! XD

The login page was a challenge! the UI felt really off for a while because there’s so little content! I decided to put the same background render I used on the home page on there too!

I also spent an unfortunate amount of time debugging why the website was erroring and couldn’t find the database.
I changed several config settings, ports, addresses, etc. Turns out I forgot to start it. :heavy-fart:

I also spent a bit writing a README :)

I added a nice AI declaration (with some funnies hehe) to clarify.
Anyway, going quite slowly but I’m happy with it.
Thanks for reading!

0
0
7
Open comments for this post

42m 34s logged

POLE!

I’ve been switching around with projects for a few days now, most of which haven’t been on Stardance!
I finally made one that I thought was SD worthy.
Something useful and cool! :D

It’s an online poll website. My goal is to not need an account to vote, but that could leave some accuracy concerns, so maybe the creators could log it as “secure vote” or something. :)

Anyway, I made the starter page!
I also added the +error.svelte page, which is something I forget to do on most projects!
If you’re interested, the background of the home page is a render I made in Blender! You can watch how I made it on Lapse. :)

I’m really happy with the starting page so far!
I plan to fix the colour of the button because it doesn’t match the background ones. :)
I also need to design the home page in Figma, so I’ll make a Lapse of that.

For the userbase, I plan to use AceBase, my favourite database :D It has a built-in user authentication thingy which I somehow only discovered recently!
It seems very user friendly. I’ll be able to store the access token that it generates as a cookie. That way you can’t find someone’s details, and - even if you have the token, it’ll be hashed :D

Thanks for reading, this project is going to be fun!
If you have any ideas, please comment them! :O

0
0
10
Open comments for this post

3h 43m logged

Pecun! I made the home page, adding a few “example” items. I developed the UI outlines for a while. I also devised a reliable save system to prevent progress loss if the website is forcefully closed. I also made the wheel page, where you can spin a wheel (haven’t made one yet) and get a multiplier for your money. I plan to improve this system considerably and maybe make it more engaging. Like rock-paper-scissors or something. :D I feel like progress has been SLOW, but I plan to improve on that too. Thanks for reading this short devlog.

0
0
13
Ship

I made Moot! It’s a neural network trained on 80,000 examples to do something a neural network was never made to do; maths! :D
I was very surprised by how capable it was. Up to 4 or 5 figures, it can guess the answers to equations with surprising accuracy.

What to try:
I’d recommend managing your expectations. Try some small equations, e.g, 50 + 5.

Why?
Fun! Computers are so annoyingly fast these days that we take such impressive speeds as trillions of calculations a second for granted. This puts into perspective how optimised things have become, by making something intentionally unique. Also, neural networks think kind of similarly to how humans do, so I guess you can make something poetic out of that! XD
I hope you enjoy testing Moot! I had a lot of fun making it. Here’s some more info if you care!

How it works:
When you press a button on the keypad, it adds that key to a string. That string is then parsed, separating the numbers and removing the plus sign.
That’s then divided and sent over to the server, which takes the inputs and squishes them down to values that the activation function (leaky-relu) can understand. The server then multiplies the inputs through the weights of the neural network, before sending the estimation back to the client. It’s then put through another multiplication to scale it back. This is a simplification of the steps, but it’s the basic concept.

The stack:
SvelteKit all around! But it also uses brain.js for the neural network.

That’s all I have to say! I hope you enjoy it.

  • 3 devlogs
  • 6h
  • 15.99x multiplier
  • 100 Stardust
Try project → See source code →
Open comments for this post

27m 45s logged

Final devlog.

The first time I wrote this the SD website glitched and failed to submit it, so I’ll make sure to copy it this time in case that happens again XD

Anyway! Here’s what I did.

I fixed some bugs on the +page.svelte (home page) regarding the displayText.

I polished the other pages’ UI (the generateDataset and trainFrontend).

I also then added a feature to block the trainFrontend based on an .env variable. :)

That means nobody can spam it and crash the host server during voting.
Lastly, I committed the training data, because why not? :)

It also helped the Vercel deployment, since I didn’t have to manually add it.

0
0
7
Open comments for this post

2h 20m 16s logged

Big updates! More productive devlog today!
I added a bunch of fallbacks. Some for if the user only enters one number, some for if the user enters too many, etc.

I changed the UI, making it uncomfortably brightly coloured to enhance the experience :) Yay, gradients :D

I also added a bunch of different loading messages, which you can see in the image.

I also made it so that the model can calculate equations outside of its range!
It’s trained on arithmetic addition from 0-100. Beyond that point, it would just guess! Now, I’ve got a function that takes the inputs, checks if the highest one is over 100, and multiplies it down! (Actually, it’s between 0 and one, but the valid ranges are 1-100, because that’s how it’s sent through.)

Now it can calculate numbers in the hundreds, even thousands with accuracy!

Although it does taper off going further than 5 figures :)

I also added a nice starting page to kinda explain the project (it’ll all be explained in the ship notes too, just thought I might as well.)

I fixed several edge cases (who knew a calculator would have that many???), also adding a bool to track whether the screen’s state is “volatile”. AKA, if the calculation’s completed and it’s displaying the answer, then - when an input occurs, it’ll clear everything and start a new equation (there’s an easter egg hidden in that logic! Feel free to check it out in the repo lol).

To-do still:
Improve the UI of the other pages or just remove them from the build. By the “other pages”, I mean the page I used for training, and the page I used for dataset generation.

I’d love your feedback on this, actually!

I wouldn’t want unauthorised people to overload my hosting server with “train” instructions.

I made the calculator input panel a SvelteKit {#each} block. This was kinda a strange choice on my part, but it keeps the code looking organised and less repetitive.
It also means if I want to change one element (e.g, the CSS class name or the function name) I just have to change the one box.

Thanks for reading!
Happy coding! :D

0
0
11
Open comments for this post

3h 25m 36s logged

Moot!
I got the neural network working! :)

I trained it on various amounts of data, and it works okay sometimes.
I’m trying to improve it! I’ve spent a lot of time changing things like the amount of data, normalisation algorithm, etc.

I also got async processing working so it works across cores instead of just one, making it SO much faster! I decided on leaky-relu because:
Sigmoid isn’t accurate for the magnitude of values I’m using, and ReLU isn’t changing at all!

I’m still playing around with learning rates and stuff.

Next, I plan to:

Fix the calculator for values above 1000, because I don’t feel like training it for that much data.

And improve the UI and UX!

Sorry for the boring devlog, it’s difficult to show when it’s all code instead of a nice website :)

I designed the UI first too!
I’m also gonna add the annoying messages and delays that are in the image below! They’re gonna show up individually, not all together lol

That’s the Figma design. The other image is the current website look! I also need to get the “+” and “=” signs looking the same.

One last thing! I added this cool system (code image below) which seems to work pretty well!

Sorry for the weird layout, I’m kinda distracted right now lel.

Thanks for reading! :D

0
0
21
Open comments for this post

1h 38m 35s logged

Started working on CapyNetwork! It’s an evolutionary neural network. I’ve been really wanting to make a working network for a while now, but backprop is… confusing. I was googling when I saw evolutionary networks! They use genetic algorithms (something I made for Flavortown!) to apply the changes to the weights on every training cycle! I started building. It’s hard. It doesn’t work yet, but I think it will!! I’ve got some bugs to iron out. As in, it prints the entirely wrong answer… Anyway! That’ll all be fixed in the next devlog hopefully. :) (Also, I’m adding comments! I usually don’t (not a single one on LighterWebUI haha) but I need them here. It’s much more confusing than other projects I’ve made.)

0
0
7
Ship

I made LighterWebUI, a lightweight local AI client based on Ollama.
It uses as little as 70MB of RAM at idle, over 6x less than OpenWebUI, making it easy to run on a Pi Zero 2 W (512MB RAM).
It uses Ollama, a well-known way to run inference locally.
The profile system is similar to Neflix.

IMPORTANT:
For this demo, the AI models are run through an API, not locally, as I’m not able to run large LLMs reliably enough on my hardware.
Please don’t use any swearing, slurs or otherwise bad language with the AI.
You may create and delete your own chats and users, but please leave the existing ones as they are.

The stack:
SvelteKit frontend and backend, Ollama for inference, Acebase local (NoSQL) database.

  • 13 devlogs
  • 45h
  • 18.87x multiplier
  • 838 Stardust
Try project → See source code →
Open comments for this post

30m 44s logged

Fixed final bugs before shipping! I sent the project to some friends to check that everything worked as expected. It didn’t. I fixed what didn’t and now I’m READY TO SHIP!!!! Thank you guys for reading all these devlogs! <3

4
0
9
Open comments for this post

33m 37s logged

Polished bugs! This might be my last devlog! I plan to write quite a specific ship note for the users telling them what they may and may not do. Thanks so much to everyone who was here from the start of LighterWebUI! I’ve really enjoyed this project and I’m looking forward to the next one! I’ve got some ideas, so keep an eye out! Anyway, I removed some excess logs, polished some code layout, just made the whole thing a little nicer. I also started hosting at https://lighterwebui.capydesigns.com! I may have to take it down a couple times. I’ve made 3 profiles with a chat in each of them that the users can use to test the site. Bye guys! <3 Happy hacking!

0
0
13
Open comments for this post

5h 29m 28s logged

HUGE devlog! I made a TON of changes, improvements, etc!

First, mobile compatibility!
The user can now change the system prompt.
I added a nice (basic) loading screen .
I improved a big database inefficiency with the messaging system. (before I continue, please consider the fact that it was probably 22:30 when I coded this, and I was likely somewhat delirious), the messaging system would take the current array from the DB, add the new messages, and replace the entire file. FOR EVERY MESSAGE.
This is heavy on RAM, slow and way more operations than are needed, also getting slower the longer the chat is.
Now, when the user sends a message and the AI replies, that pair of messages get sent over and pushed to the chat. 2 messages, not the entire chat!
I finally added the Lighter, Web, and UI pages.
I had a tag that bound to a routeSelect variable. This routeSelect variable would determine the apiRoute.
The fix was to just get rid of the routeSelect and bind the to the apiRoute. (whoops!)
OH! Something I totally almost forgot to mention! I made the starting pages! You now follow this flow:

Press the PEAK start button, grab your admin code, get prompted to set up Ollama (or the cloud API), then enter your username, then finally, the last page gives you the same glorious button to finish the tutorial/intro, alongside the repo link.
I also edited the README a bunch to add instructions for setup. I’m opting to recommend Bun over Node for running it.
Also! I tested more for the RAM usage. I found that (after rebooting my Pi) I managed to get <70MB usage at idle. That is INSANE!
This will - of course fluctuate with the number of concurrent users/prompts, but is really impressive nonetheless.
I also tested in on my Pi Z2W to make sure it worked. Start-to-finish, I found a few missing dependencies in the package.json, which I quickly added.

Now, the project can be downloaded and run in just 5 terminal commands!
Finally, I ran a code review thingy using VSCode’s AI tool (I made sure to tell it not to generate code!) and it found a few minor bugs, so I fixed the main ones. I also ignored some because they’re incredibly unlikely to happen in general, let alone during the initial ship period. I’d rather not waste time fixing things like “what if the server dies midway through this exact token output and that goes kaboom” or whatever lol.
Oh, one last thing, I removed my custom alerts. They were nice, but also very useless… I replaced them with the browser’s own confirmation dialog, since it’s simpler and honestly nicer to use! Also 100% cross-platform.

Two little sub-notes, I can’t show all pages of the setup because of the attachment limit on Stardance, so you’ll just have to run the project yourself to see it (hehehe), and secondly, don’t worry, I’ll make sure to change the password shown in that image. I’m gonna delete the database entirely again before I ship!

Anyway! Sorry again for the long devlog, I just have so much to say! I also omitted a TON of smaller optimisations/changes again, but they’re generally irrelevant to the user’s experience, and I doubt anyone would want to read a 10,000 word devlog like “and then I added another pixel to the offset… Then removed it… Then added it back…”
If I remember something less brain-meltingly boring, I’ll make sure to add it! :pepe-hacker:
(P.S, this is me coming back and editing the project because I’d WAY surpassed the character limit!)

Thanks so much for reading what’s possibly one of my last devlogs! :pepelove:

Happy hacking everyone! I MIGHT see you in the next one! :wavey:

0
0
9
Open comments for this post

3h 1m 5s logged

# I FINISHED THE MAIN PAGE’S FEATURES!!!

I added a create and remove user function. I also entirely overhauled how they’re stored.

Time for the boring dev talk:
Before, the DB ref was (‘/LighterWebUI/users/’) and now it’s (‘/LighterWebUI/users/${userId}’), meaning I can modify them as I need without having to first fetch the array, modify it and then re-send it to the db.
It’s a TINY bit more efficient, and a lot easier to use.

Also, STATISTICS! I took a few measurements, here are the results.

<100MB idle (about 95MB)
Idling with 10 browser tabs running it took it way up to… 105MB :pepe-thumbsup:

According to my very thorough single Google search, the average idle for OpenWebUI is 400-650MB, making mine 4-6x less RAM usage!

I also improved some of the logic surrounding the presets for API endpoints.

UX improvements too!

I MASSIVELY improved the UI of certain things like the user profile system, which now doesn’t display the currently selected profile as an option (not super significant, but nice). I also added the option to add new users.

The chats list now (finally) shows which chat you’re active in.

It highlights it in a lighter gray.

I also made it so that when you use the “override model selection”, the options disappear so you don’t have an empty element :)

I fixed the colours and improved continuity across colourful elements (before I had like 4 different blue colours that were basically identical XD)

I feel like the UI is kinda Discord-esque on the user page, which I quite like :D
I also added a lil function to close all menus, which streamlines all the others instead of manually closing every one of them.
As far as I can remember that’s basically it!
OH WAIT NO I added a new settings menu! It’s totally different now. :)

I organised some things and split it into two sides, regular and advanced.

I’m very close to finishing the project! Probably <10 hours left on it.
(I’m gonna fix the weird text spacing soon DW lol)

I’ll also add a ‘cancel’ option to the New User menu.
As usual, if I remember anything else I’ll add it in the comments :D
Thanks for reading guys! <3
Happy hacking!

1
0
30
Open comments for this post

4h 50m 4s logged

The grand settings, backend and UX update of ’26!

I added a bunch of backup logic behind the custom route fetching!
It’s working great now! I then also had to fix a bunch of things with the guest route, because that was all messed up from the settings stuff.

I added a new tool! The AI can now run endChat() to stop the user and delete the chat if they ask/say something harmful. I would like to stop it before it reaches my API provider, but I don’t think HC would appreciate me putting a “slurs.txt” file into my repo :pepeclown:
When the AI calls the function, it fetches the current chat and simply deletes it. It also notifies the user through a simple error system I’ve made. From there, the user can currently create a new chat. I’m prepared to keep it this way for now, since I don’t want to limit other people from using their own local models for whatever they might want. I’m also considering providing the option to rely solely on the model’s guardrails.

I’ve just gotta hope nobody wants to test that feature upon shipping…
Speaking of which, I’ve massively changed my mind on how I’ll handle that! It’s NOT going to be hosted on-device for the ship, which I know sounds ironic (and frankly, is, given it’s a local AI client), but I don’t want any users saying “this local 0.5B AI is terrible, it must be a bad project!”, and will thus use Ollama’s official cloud API.
Also, if my Pi were to receive multiple prompts at once, it would likely… Die. This would A: suck, because I’d need to restart it frequently and B: prevent any users from rating it while it’s off. If it dies at midnight, I won’t know until I wake up!

Ollama’s Cloud API has seemingly good uptime (I couldn’t find any stats online, but it seems decent!) and provides me with much larger models, up to 120B (and likely higher) without having to pay. That brings me to one of the largest things I had to figure out!

If a user selects an unavailable model (Kimi K2.6, for instance), the server returns an error (which was surprisingly difficult to actually parse/decode!) and fails.
I created a system to return that the prompt failed, then check that the fallback model is different from the current model. If so, it warns the user, then goes to the fallback model and regenerates by itself, automatically. The default fallback is Gemma4:31B, since it’s a free Ollama model. I’m providing my own key, so users don’t need to enter their own.
If the fallback is the SAME as the current, it’ll show an unexpected error.

I also added auto scrolling, although I couldn’t figure it out, so I debugged using Gemini and managed to fix it.
It’s a ChatGPT-style scrolling system! It binds you to the bottom while it’s generating, but if you scroll up, it’ll sever that binding, letting you scroll freely. If you want to continue following the AI’s text stream, simply scroll back down!

I am considering adding a button to do so as well, since that could be a very easy feature to add and improve overall UX.

Oh right, I also fixed the displaying of when the AI uses tools! I found out that the Vercel AI SDK has a new system for it in the newest version and used that instead.

I think I added some more stuff, but I can’t really remember it all right now! Most of the time spent was debugging the things I broke while adding new features. I’ll add anything I remember as a comment on this devlog!

Also check the changelog if you wanna see more stuff (and specifics!) :)

I acknowledge that this is my longest devlog so far, but I just wanted to be thorough! If you have any questions, I’d love to answer them in the comments!!!

2
0
7
Open comments for this post

4h 34m 12s logged

URL UPDATEEEE!

I FINALLY added custom URLs!

I mentioned wanting to do that in the last devlog, but now you CAN!
I finished the settings page’s content, including adding an entire auth system (painful) and trying to make the UX nicer (also painful), alongside encountering a TON of other bugs and having to fix those.

I also made a system to generate passwords randomly to access the admin controls.

It OFFICIALLY works with other APIs!
Simply enter the route (e.g, https://ollama.com/api) and your API key and it’ll handle the rest.

This is just the main feature I added, but I added a TON of other things too!

ANYWAY!

Still on the “//TODO:” list:

A TON OF STUFF!
I plan to add customisable temperature next, then the into/“welcome” screens, then all the scrolling and animation stuff.

I think I can do this in time though, which is a great feeling having coded less recently.

0
0
6
Open comments for this post

4h 29m 14s logged

Hey!

Added web search integration, a settings menu, and I’m working on an admin page!

I also added text formatting, which was a pain to test with the 0.5B model because of how disobedient it can be :heavysob:

I plan to allow the user to change the API route (and key) through a locked admin page.

I’m working through security issues with that, and spent a fair amount of time thinking of how to fix that.

My current plan is:
Generate a secret “key” during setup that unlocks the admin page.

When the user visits the page, ask them for the key to submit the changes.

If the user hasn’t been authenticated, do not allow them to change settings. The main concern is that they could use devtools to just toggle the variable, hence fetching it directly within the function.

I think it’ll work, but I’ll need to do some testing. :)

I also added a little icon if the user hasn’t got a Tavily API key for web search functionality.

The image currently shows the route editable within the client side. I might go with that and have the same logic behind it on the home page instead of a separate /admin page.

In all honesty, I’m kinda overwhelmed. This is the biggest project I’ve ever made, and I feel like I keep accidentally switching features and missing stuff out.

Anyway, it’s still really fun, so I’m still going for that Flipper Zero and TRMNL kit! :D

Thanks for reading!!!

0
0
4
Open comments for this post

3h 11m 36s logged

MASSIVE overhaul of the backend!

As you may recall, I previously spent a few hours trying (and failing) to implement tool calling.

I did a bit of research (Google Gemini helped with the research portion!) and found that the Vercel AI SDK has the ability to stream text while tool calling, with WAY less code than doing it manually!

The great conversion of ’26…

That SUCKED!!! It worked great until I noticed that the database no longer worked…
Anyway, as of 5 minutes ago, I just fixed that!

I completely removed my local “messages” array and replaced it with chat.messages.

I LOVE THE VERCEL AI SDK!! It’s amazing.
I just need some tool ideas of what to add..

(Currently, there’s just a short pause and a gap above the messages to indicate a tool was used, but I plan to replace that with a nice “Tool used: ____” now!

I also did a TON of other things, including fixing many bugs with the new user system, but that seems to OFFICIALLY be working now!!
Only took me 20+ hours to get a working AI client T_T

But now I can start getting it NICE! :)

I’ll improve UI, add a TON of pages, etc!
If you have any default tool suggestions, please do give them.

0
0
6
Open comments for this post

3h 14m 47s logged

I FINISHED THE USER SYSTEM after a ton of uhh.. Pain and suffering! :D

JK, it wasn’t too bad. I did, however encounter a loop of failing code that I couldn’t figure out! Turns out, my localStorage thingy was broken! I accidentally set it wrong!
Anyway, after finally fixing that, I kept going!
I removed the DB from github too lol.
Unfortunately I’ve made no UI changes yet, so there’s really nothing interesting to see.

AI usage:
I debugged a few errors using Gemini, finding the solution. Still no AI code was used.
I found that I could use return functions with $effect runes, which I somehow missed before! That came in handy with the fancy system I added to not entirely break the website if you leave during a stream. :)

For some reason, the page is UNBELIEVABLY slow to initially load on development mode, so that sucks… It works instantly on release though, so that’s great!
I added a few new messages to the main screen. Some backups too, one of which is visible below. It tells you instantly what profile you’re on.
I’ll consider varying that each time like most AI websites do, but I’ll make sure to keep it as small as possible.
I have a LOT to do on my Trello board still, which is ironic. The more work I do, the more issues I find! The board gets longer each devlog T_T

Somewhat interesting update:
I’m gonna add some docs (likely on Github, unless I feel inclined to code them!) in which there’ll be an error code section. I’m making my own error codes, specific to the website. :)

Currently got:
A1: user error (not logged in, corrupt data, etc.)
U1: unknown error
M1: unavailable model
P1: invalid prompt

I plan to maybe add profanity filtering to the prompt validity checker (which I’ve also yet to implement)!

I can also make a nice customisable theme across pages.

Exciting devlog, because now I can get back onto the FUN STUFF!!!
No more ‘why account no work T_T’ stuff!

Thanks for reading, happy coding!

0
0
3
Open comments for this post

4h 33m 57s logged

More work! :D

As the image shows, I just finished implementing ‘guest’ mode and have started on the user profile system (on the right)
I plan to:
Finish adding it, fixing the UI, etc.
Add it to the setup process :O

Anyway, other things (massively summarised to fit a devlog… If you want to know more, check the repo!)

I designed an icon! That wasn’t logged for time. :) I implemented the logo (it doubles as a guest profile picture thing on the top right!)
It’s a bit generic, very “AI company”-esque, but still - pretty nice for my first Inkscape logo :D

I’ve added some nice icons, as you can see in the sidebar.
I forced alignment of the title, so that’s fixed! :)
I fixed the bug where the user could enter a prompt without having a user object assigned to them.
For Guest detection, I basically just say “if(!user.userId)”, since the Guest is the only profile that will NEVER have an automatically assigned user ID.

I’ve totally revamped the user system:
It’s now a JSON object called user, with various items like userName, userId, and userPlainNum. PlainNum is for ordering, and I was pretty sure I had something in mind, but I can’t remember why I added it so it might be removed.
I’m at 571 lines of code!
I made several new JS backend files for this user system, so I’m very excited to introduce it! I am posting this devlog only part of the way through coding that system.

Suffice to say my Trello board is FULL!

Also, heh… Embarrassing story:
I kinda committed the database :)

BUT! It wasn’t public anyway, so it’s just my debugging “uhhh… hello? HELLO??? Are you there?” prompts. Nothing secret.

Also probably best that it happens during development and before I have users!
Anyway, since I’m HORRIBLE with Git commands, I used Gemini to help fix it. Hopefully that worked. As I said in the AI declaration thingy, none of the code is copy-pasted from AI, and is all Capy-written :D
(PS, I probably skipped over 500 tiny bug fixes and a few bigger features, but we’d both be here for a while if I hadn’t.)
Thanks so much for reading my devlog! Happy coding!

1
0
3
Open comments for this post

5h 6m logged

I added a BUNCH of stuff!

I was so locked in that I forgot to make a devlog!

Let’s make this one shorter:
I added the left panel
I added multiple new backend files for the DATABASE!!!
I added a database (AceBase!)
I improved the UI
I’m testing with another AI model for now

Okay, onto the detailed stuff. AceBase! :happy: It’s a really nice database package thingy! It has FireStore-like syntax but without the annoying stuff. :) I’ll definitely use it in future projects too! Anyway, using that I made a system to create, fetch, etc new chats! Now they’re stored in the database alongside their associated crypto-UUID key. That’s passed as a search parameter (kinda like YouTube videos!) and fetched, then the messages are loaded. I did way more that honestly can’t fit into this devlog, so that’s the main stuff out of the way. :)

To do:
UI! It’s still got some smaller issues (the title is off-centre :O)
Fix a BUNCH of backend bugs
Add auto-chat naming (just the first few words of the user’s prompt for now :D)
Add a user profile system (like Netflix :O)
Add a “guest mode” account.
Make the URL customisable (in case someone’s hosting at a different address)
Make a customisable system prompt!
Decide what models are suitable for release.
Add some nice (lucide.dev) icons!
And a BUNCH more! Thanks for reading! :D Happy coding!

0
0
2
Loading more…

Followers

Loading…