SharinFlame

SharinFlame

60 devlogs
129h 7m
•  Ship certified
Created by Koeqaife

It's a new social network. But it's not gonna be just regular social network like TikTok or Reddit. It will have reputation system, and it's gonna be very dynamic. There will be two types of it. Static and dynamic. Static will remain after time (like karma in Reddit), and dynamic will slowly always go to the zero every 12h (like -0.5 points every time). Likes and dislikes will affect to your reputation! I'm also planning on other unique features but they are in secret. I also spent a lot of time on color generation and themes. Hope you like it! :D
I couldn't finish everything to the end of SoM, too many things to do. ;(

Timeline

Ship 2

1 payout of shell 737.0 shells

Koeqaife

6 months ago

Koeqaife Covers 16 devlogs and 33h 5m

Change Its Beta! message. I really need to rest and I can't work more now. SoM was pretty good, I love it! I will be still working on this project later, hopefully I will finish it soon. I wna make DMs next, when I finish small critical UX things like Forgot Password?, username changes, etc.

Update attachment
Koeqaife Koeqaife 6 months ago

Changed*

Earned sticker

Email changing dialog, when you change email it will have pending status, so you can cancel changing before email was changed

Update attachment

Made password change (later will add Forgot Password thingy)

Update attachment
Earned sticker

Made email verification thingy (it works pretty well, surprisingly)

Update attachment
Earned sticker

Added social activity thingy in user profile, now it has followers/following counter but later will have more things, like reputation and maybe other things

Update attachment

Added username to reports (and finally the screenshot :3)

Update attachment
Earned sticker

Added moderation dialog (that was a lot of work ngl), so now moderators will get assigned posts and so that means all moderators will have different posts/comments/resources even if they click at the same time. Also it has grace period (1 sec) so you can't click Approve right after you got assigned to resource, just for cases if you click accidentally. Later I will also add reject/approve appellations, but now it shows only posts/comments with reposts and no appellations

Update attachment
Koeqaife Koeqaife 6 months ago

Wrong screenshot :sob:

And I cannot delete the devlog cause I earned sticker, that’s crazy…

Earned sticker

Made moderation content deletion notifications, and audit & appellation mod dialog

Update attachment
Earned sticker

Added roles and permissions

Update attachment
Earned sticker

Fixed text in notifications by adding unescape, also many other small improvements and fixes for push notifications

Update attachment
Earned sticker

Finally push notifications are working

Update attachment

Added this little thingy for touch screens in each dialog

Update attachment

Made that images can be opened in fullscreen

Update attachment
Earned sticker

Added rate limiting and added rate limits to each endpoint. It uses Redis and Lua for limiting

Update attachment

Improved UX. Now when you click on reply in notifications it opens reply to reply, and not replies of the comment it was replied to. So person will get notification when you write a new reply

Update attachment
Earned sticker

Removed NSFW tag from posts. Maybe later when I will moderation, and better settings so I will be able to add option show NSFW content and age verification I will return it back

Update attachment

Ship 1

1 payout of shell 1757.0 shells

Koeqaife

7 months ago

Koeqaife Covers 44 devlogs and 96h 2m

Starting second beta test. Configured everything and fixed everything. Added reports, logout button and many other small things

Update attachment

Made my own video player. Video.js was so bad and laggy ngl. Also fixed some parts of code

Update attachment

Made my own carousel. Now Imma change <q-img> to <my-image> everywhere

Update attachment

Made video player. Also made that when you upload files for posts you have to choose between Video and Image cause now I added type to files table, and so before uploading it creates file context with type post_image or post_video, it's made like that so different types has different limits. postimage's limits are 1 file and 15 mb, postvideo's limits are 5 files and 10 mb for each file. Also posts' fields has now media_type so frontend understands what to use, carousel or video player

Update attachment

So I made scheduler for tasks like file deletion or posts deletion. I store posts for 3 days in database before hard deletion so yea. I used @dataclass for class Scheduled cause why not. I also improved some things, added deletedat to posts table in database, and added trigger to isdeleted to update deleted_at

Update attachment

Now it's possible to upload files for posts. Almost the same as uploading avatars and banners (uses the same table in database) but with higher count of max uses and higher max file size. Also deleted media TEXT[] from posts table and now it gets media from files.objects. First time for me using drag & drop thingy btw.

Added skeletons everywhere

Finally!!! So now it works, banners and avatars. Gotta fix some bugs in R2 Worker. Also I didn't know how to use vue-advanced-cropper, so I had to use docs. Imma test how deleting images with 0 references works. And I'mma maybe make that client can't set filename for banners and avatars so I will use <snowflake_id>.webp on them

Made clean up function, I didn't use Redis lock or something like that. I made everything fully async and each worker deletes its own batch without any collisions

Update attachment

Made avatars and banners uploading. So now it creates context every time you upload file. It's stored in files table in db. Files table has references count, and the same user profile has avatarcontextid and bannercontextid. Later I will make that when references count goes to 0, files deletion from R2 will be queued

Update attachment

Made Cloudflare R2 Worker. It's the first time for me doing something like that. I decided to make my own worker instead of using S3-like api cause I need content size limit. Made tests to test uploading. Now API creates token with signed JSON that contains maxsize (mb), expires (unix timestamp), allowedoperations (List with something like GET:path/to/object). I think it's good enough. I'm planning on making contexts, like for example you're making post and you can make post context and upload only 5 files to one context, and context deletes automatically if it wasn't linked to any resource (post, user, comment, message or anything else)

Update attachment

Yea I was doing that all day today, I'm crazy. But who cares!? It looks so cool, and it's memory to my cat (he was gray :3). I think it turned out very cool and cute. It's an easter egg so I will post it only here and nowhere else.

Created and added confirmation dialog!

Update attachment

Made tag dialog. Now thinking how to make it look less boring and how to improve it. Also from last changes in API: I made that tags will be sanitized and normalized before creating/linking, so Tag1 yee! will be tag1-yee cause it endpoint it's used like /tags/tag1-yee/posts so I had to do it like that

Update attachment

Added endpoints for tag info and tag posts. Tomorrow going to finish the fronted part and everything will be finished. Tag has posts_count.

Update attachment

I made tables for post tags. Now on get_post you get tags and ctags, ctags are basically clickable tags, and tags are not-clickable tags like is-nsfw or ai-generated or legacy tags from the old beta test. Adding tags to post automatically creates tag in database

Update attachment

Made animation in login/register page

Made dialog background white on light theme cause it looks better than dark

Update attachment
Koeqaife Koeqaife 7 months ago
Just in case, I’m telling about the dialogs’s backdrop

I was working on improving color generation system again. I was testing some random staff. And Math.sqrt actually fixed my problem... So on screenshot you can see green color that is finally looking good

Update attachment

So media server of SoM was down yesterday. So I have to make 1 big devlog. I can upload one file per devlog tho so I will upload the screenshot of comment replies.

  • 2h 25m:
    I made comment replies! I love how easy it was compared to what I thought. On server there aren't even endpoints for replies. Cause replies and comments are the same. Just reply has parentcommentid so in REST Api I can just do ?parent_id=... or provide it in data if it's POST request. I think it's very cool.

  • 45m:
    Now it will close last dialog on back button. On phones in really helps :P. .hide() returns false if the dialog is already closed.

  • Rest of the time:
    I was improving color generation system. And instead of map of saturation I decided to make auto saturation depends on lightness. So if lightness go down too much (like on green) I make less saturation and try again until target luminance = luminance, it makes the same green and yellow look much better.

Update attachment
Koeqaife Koeqaife 7 months ago
I added API as SoM project and time got recalculated. So for replies I spent 4-5 hours and not 2 hours

Ran it on tauri instead of electron. Cool experiment but maybe I will try it later. Cause I have IPC only on Electron and tray icon on it as well. But it was fun

Update attachment

I made crossfade animation in settings and My Activity

Added updates! It's like pinned comments but separated from comments. And only author can write things there

Update attachment

Made my own select menu instead of q-select

Update attachment

Made a function for opening dialogs. So I don't have to import dialogs and use quasar.dialog in components

Update attachment

Improved color generation. Saturation and lightness were incorrect on light theme (checked by tools). I also had to change palettes and test them.

Update attachment

Added icons to Register and Login page (I can only add 1 picture to the devlog, but they're pretty similar)

Update attachment

Added icon to Login and Register page and added watchers that are removing errors

Update attachment

A lot of small changed, I thought it'd be better if everything will be in one devlog cause changes aren't really big

Update attachment

Made a big work on improving UX for CloseableContent component (this component is for touchscreens, it's used in every dialog and it makes it possible to close with just swipe)

Update attachment

Added Go To Post button to comment that is not in Post Dialog

Update attachment

Just made it more touch-friendly, before only post and profile dialogs had swipe to close. Now all dialogs have that feature.

changed like/dislike buttons

Update attachment

Made unread notifications label in dialog and Read All button

Update attachment

Made read notification event on WS, I will also make endpoint for it as well just for the future

Update attachment

Just added created at to post

Update attachment

Now ping requests will have only 3 seconds timeout

Update attachment

Made that requests are canceled when you're changing page, it's not only on main page but also in profiles or favorites. So no race conditions now :3.
Requests like follow, unfollow, like, dislike, etc. aren't canceled when components are destroyed

Just made cooler loading

Made massive refactoring

Update attachment

Just made that slider's color changes when you move it

Made some refactoring and changed where files are (I don't like the structure I made half year ago)

Update attachment

Improved colors on light theme

Update attachment

After last project I decided to back to my social network. Now it looks like that. Today I made CardSecondary color (you can see it on selected items).

Update attachment