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

imnottimaq

@imnottimaq

Joined June 2nd, 2026

  • 24Devlogs
  • 2Projects
  • 1Ships
  • 16Votes
Ship

Hi! I want to present my project called Anixweb.

Anixweb is an open-source web client for Anixart, a mobile app popular in the Russian-speaking community.

I created it because I have been using Anixart on my phone for about five years, and I have always wanted to use it on my PC. I also wanted to learn JavaScript, TypeScript, and React by building a real project.

It has many of the features you would expect:

  • watchlists, favorites, and watch history;

  • a huge selection of anime with Russian dubs or subtitles;

  • search and advanced filters;

  • user profiles, friends, comments, and ratings;

  • notifications about new releases and episodes;

  • and much more!

    In addition to recreating the core functionality of the official app, I also developed two features of my own: Watch Together and Upscale.

    Watch Together allows you to synchronize video playback with other people.
    It supports both public and private rooms. You can discover and join public rooms through the room browser, while private rooms can be joined using a room code or an invitation link.
    Episode selection, pauses, seeking, playback position, and playback speed are synchronized through a WebSocket server. Room owners can also allow other participants to control playback and select episodes.

    Upscale is an optional feature that uses WebGPU and Anime4K shaders to improve the viewing experience by sharpening the image and reducing blur in real time.
    All processing happens locally on your device, without manually re-encoding or uploading the video.

I used:

  • React and React Router;
  • TypeScript;
  • Vite;
  • HLS.js for video playback;
  • WebSockets for room synchronization;
  • Anime4K-WebGPU for real-time image enhancement;
  • CSS Modules for styling.

One of the hardest parts was managing the video player lifecycle: switching streams, recovering from HLS errors, preserving playback progress, and keeping multiple users synchronized without creating feedback loops.

I spent more than 90 hours working on this project. Along the way, I learned a lot about accessibility, video streaming, WebGPU pipelines, API integration, localization, and managing and structuring a medium-sized React application.

This is an independent project and is not affiliated with the SwiftSoft Team in any way.

  • 21 devlogs
  • 83h
  • 16.81x multiplier
  • 1395 Stardust
Try project → See source code →
Open comments for this post

3h 29m 32s logged

friends management screen
ability to change notifications per release
fixed notifications setting, apparently they were broken
now you can rate release
editable player keybinds
updated dependencies because react router had 2 vulnerabilities
small changes here and there
project is almost ready to ship, will ship today or tomorrow idk

0
0
7
Open comments for this post

2h 49m 49s logged

skin import kinda works but for now you have to reimport it each time and size is a bit off(because it should depend on map speed, bpm etc)

0
0
4
Open comments for this post

7h 46m 47s logged

collections screen, ability to save/create/comment collection
asked claude to unify design, looks really better now and very well rounded
fixed some linter error but not all(i dont know how to fix syncronous setState)
some internal stuff that allowed me to reduce code size a bit
removed swiper dependency(gallery i used in release screen)
new buttons in overview but they are not fully functional yet
reworked comments section a bit
and also there is +1 hour for room server for watch together (fully vibecoded btw)

0
0
3
Open comments for this post

1h 55m 46s logged

did a overview screen, looks cool
im getting close to ship (80-85% i would say), mostly some polishing is left and the most major feature i havent implemented yet is collections, but for now ill focus more on polishing things instead

0
0
8
Open comments for this post

2h 12m 2s logged

changed all names to anixweb to avoid having issues with the devs of original app in the future

made account edit screen where you can change for now nickname, avatar, socials and some settings related to who can send you friend requests etc.
friend requests is also a thing i implemented, but honestly i dont know why it even exists. it doesnt have any functionallity like chat or something, it just exists

maybe ill implement like inviting your friend to the watch together room but idk about that one, my current worker will not be enough probably if site will be used by more than 100 people at the time
also added proxy for images as an option cuz for me their images storage is not reachable via standard link, and with proxy it works good

and also added like roles(which is not super important, did it just for the parity with the api), but like only 0.5% users of this app have any role
roles is essentially like groups for example some dubbers team

0
0
10
Open comments for this post

4h 54m 52s logged

god it took me like whole day to do it
notifications screen itself wasnt hard to do, but settings was. it wasnt documented at all so i had to pull up mitmproxy + android emulator and find out and that alone took me 2 hours (not counted in the total time)
also wanted to make notifications via web push api, but it isnt possible unfortunately
overhaul of api client, now its a bit more unified
lazy loading of components so it takes less time to load if you open website first time
upgraded node on actions
small improvements here and there

0
0
11
Open comments for this post

2h 29m 42s logged

after 3 and a half hours im finally done
fixed account screen
implemented “watch together feature” which is beta for now as it is a buggy mess as of writing this devlog and i actually found one more bug as i am writing this, ill fix it later i promise

next time will implement ability to search on english as a toggle in settings through shikimori api (kinda like myanimelist but russian)
this will probably make search slower but it will work

0
0
6
Open comments for this post

2h 0m 2s logged

added this section that api sometimes returns
fixed a few bugs with player:

  1. player doesnt show controls while fullscreen
  2. if webgpu is not available in your browser quality upgrade option will now gray out
  3. controls now disappear after sometime
  4. if server returns broken hls stream, it will try to gracefully recover now
    also changed things around in login/register/forgot password:
    token is now moved to cookies instead of localstorage as its more secure(but its still not very secure because api requires to send token as a query parameter and token doesnt change between devices until password reset)
    cleaned up some logging to console as its not really necessary now
    favorites page now shows popup for user to login to access this page
    oh and also settings button
    and also asked ai to implement translation, this will be removed probably after i ship project, as this site is not meant to be used by non-russian speakers
0
0
15
Open comments for this post

2h 59m 52s logged

anime4k upscale works, but on chromium-based browsers only(firefox has bug that doesnt let it work)
settings screen fully functional
started working on translation to english, honestly at first i tried to look at browser translation feature, but it was horrible, so i decided to make it
will be hard to implement to properly but i think 3-4 hours and i’ll be done

0
0
7
Open comments for this post

3h 43m 29s logged

search is now a thing and it works fine
redesigned cards on home screen and you can select between horizontal and vertical card (for now only through changing localstorage xd)
some improvements here and there like a little bit better design of release screen
next up i will probably finally do player settings and implement anime4k maybe

0
0
6
Open comments for this post

56m 35s logged

i finally understood that i suck at design and asked ai to design it. now it looks amazing. next i will ask it to look at release screen cause i like the layout of it but design is half good half sucks

0
0
12
Open comments for this post

2h 52m 16s logged

draft for account page, for now copied design from mobile app, tomorrow will propery design, and now im going to sleep good night

0
0
8
Open comments for this post

2h 39m 42s logged

okay found a way to make it work
edited cors proxy to also include route with anixart user agent
this could be bannable, but at most they will ban proxy ip on the api and that is not crucial, cors proxy will work just fine
voting, posting a comment/reply, editing comment, deleting it was implemented

0
0
6
Open comments for this post

1h 54m 25s logged

from now on i’ll try to make devlogs more often
tried to make replies to comments but hit the wall: api does not allow adding comments/replies without anixart user agent.
same goes with voting on comments (like/dislike kinda like reddit system) so i spend 2 hours just to discover that it will not work

0
0
4
Open comments for this post

5h 16m 28s logged

ok i finally deployed it to github pages and also pushed source code to github
also added favorites screen where you can see your history, favorites and each list (watched, planned, watching etc)
added popup when you open site first time that its not official and im not responsible for your account
oh and also tabs on home screen to see latest, ongoing, announced etc
probably will add settings screen next time and also finish player

0
0
4
Open comments for this post

6h 45m 19s logged

player 80 percent ready(settings is the only thing that does not work)
refactored code a bit, mostly tried to reduce eslint errors/warnings
started rewriting modal logic(repeating same logic on every new modal => separate model template component from which other modals will inherit from) and also rewriting modals to use that
also, the project is nowhere near mvp, so probably no github pages deploy until that (30 percent rn i would say i spent too much time perfecting release page im dumb)

0
0
3
Loading more…

Followers

Loading…