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

Anixweb

  • 21 Devlogs
  • 83 Total hours

Website for Anixart Android app (app to watch russian dub/sub anime)

Ship #1

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

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
Open comments for this post

7h 58m 59s logged

okay, its time to make a devlog
proper dub/source select modal (eyeball shows that you already watched that episode and in the future i plan to implement time where you stopped but first i need to make proper player)
began defining settings
proper login screen and ability to create account/recover password (to be honest i thought it was impossible to make but after some reverse engineering via mitmproxy and android 7 emulator i found out that api reference that i was using is either outdated or not properly documented)
ability to view comment replies and started working full comment section
tried to implement voting on comments but its impossible unfortunately, api checks for allowed user agent and i cant change that
moved things around internally, now project structure is more refined
i think by the time i have to do next devlog i’ll deploy this site via github actions/github pages so i dont have to pay for hosting(application is fully client-side anyway)

0
0
2
Open comments for this post

8h 42m 32s logged

release page almost ready, final touches left
also spent too much time on dealing with cors error (kodik, one of the main players, was throwing cors error, so i asked codex to create simple cors proxy and deployed it to vercel, but kodik still sent broken data, turns out it was because of us ip adress, i moved proxy to cloudflare workers and now it parses fine)
used linkparser from thedesconnet/anixartjs (this stuff is too wacky for me to deal with it myself)
random anime button on header
proper player is still wip (1% ready xd) will ask codex to do it cuz i dont even know where to start from
also spent too much time to design this page but now it looks amazing
hope to make proper player by the next devlog but this whole thing is new to me so im not sure

0
0
5
Open comments for this post

8h 29m 58s logged

god that took a while, but you can finally watch something using this site, also login works now but no new account registration

0
0
4
Open comments for this post

3h 4m 4s logged

As of now, webpage looks like this:
Now you can open release and as of now it will show poster, play button, favorite button and dropdown where you are supposed to select whether you watch it right now, plan to watch it, or dropped it(there is more im too lazy to describe them all)
Next up i will implement ability to watch episodes and log into your account (maybe sign in too im not sure)

0
0
5

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…