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

wingnovel

@wingnovel

Joined June 2nd, 2026

  • 7Devlogs
  • 3Projects
  • 1Ships
  • 2Votes
Open comments for this post
Reposted by @wingnovel

7h 12m 15s logged

was sick today so I skipped school so I worked 7hrs on TableTop hehe. Added rules from the rulebook to be functional everything seems to be working. And for some reason you cant play with VPN on. Gonna ship it now

was sick today so I skipped school so I worked 7hrs on TableTop hehe. Added rules from the rulebook to be functional everything seems to be working. And for some reason you cant play with VPN on. Gonna ship it now

Replying to @baker

1
223
Open comments for this post

14h 44m logged

Building the sidebar and the dashboard with the right amount of padding and setting up the initial database

Building the sidebar and the dashboard with the right amount of padding and setting up the initial database

Replying to @wingnovel

0
2
Open comments for this post
Reposted by @wingnovel

3h 2m 12s logged

I built a Streamlit chess opening viewer using python-chess where users can step through common openings move by move. I also added sidebar controls to customize the board appearance, including a color picker for light and dark squares and a slider to adjust board size.

At first, the color customization didn’t work because the values from the Streamlit color pickers weren’t being passed into the chess.svg.board() function. Even though the UI was updating, the board rendering was still using the default SVG colors.

To fix this, I connected the selected colors directly into the SVG generator using the colors parameter in chess.svg.board(), like this:

“square light” to light square color picker value
“square dark” to dark square color picker value

I also fixed the board size control by replacing the hardcoded value with the slider value.

Now the board updates dynamically based on user input, making the interface fully interactive and customizable.

I built a Streamlit chess opening viewer using python-chess where users can step through common openings move by move. I also added sidebar controls to customize the board appearance, including a color picker for light and dark squares and a slider to adjust board size.

At first, the color customization didn’t work because the values from the Streamlit color pickers weren’t being passed into the chess.svg.board() function. Even though the UI was updating, the board rendering was still using the default SVG colors.

To fix this, I connected the selected colors directly into the SVG generator using the colors parameter in chess.svg.board(), like this:

“square light” to light square color picker value
“square dark” to dark square color picker value

I also fixed the board size control by replacing the hardcoded value with the slider value.

Now the board updates dynamically based on user input, making the interface fully interactive and customizable.

Replying to @Soomansh

1
134
Open comments for this post
Reposted by @wingnovel

2h 54m 39s logged

monkeyspeak final devlog before ship ( hopefully )


tl;dr

  • so brave and edge broke everything ( ye read what broke for more info )
  • deepgram mode now transcribes live text again (words dissolve, wpm moves, momentum still reacts to your voice)
  • brave and edge no longer hang for 25 seconds then fake a mic error
  • production uses a render websocket proxy + vercel env, same path that worked locally
  • github: nothariharan/monkeyspeak (commit 095b731 and earlier speech routing work on main)
  • live: monkeyspeak-delta.vercel.app

what i changed

speech routing (back to something that made sense)

mode behavior browser web speech api only. no deepgram hijack on brave/edge mount. deepgram try deepgram first (proxy → bridge fallback on chrome only). if that fails, fall back to web speech with a clear error.

the ui now shows errors for the provider that actually failed, not a generic “mic blocked” when stt died for other reasons.

deepgram client hardening

  • prefer var name ur wish websocket proxy over the vercel http bridge
  • brave/edge without a reachable proxy: fail fast with a useful message (no 25s timeout)
  • utterance_end_ms locked to 1000 everywhere (deepgram rejects live ws with 400 below that)
  • bridge watchdog clears on BridgeReady, not on first random chunk
  • server bridge waits for upstream deepgram before closing the socket

the transcript fix (the big one)

  • client parses deepgram json whether it arrives as a string, blob, or arraybuffer
  • render proxy forwards deepgram replies as utf-8 text frames instead of opaque binary

infra

  • backend/ express + ws proxy deployable on render (render.yaml included)

  • set up env with ur var name at vercel

  • redeployed frontend via vercel cli after env update

small polish

  • clearer vad fallback logs (worker load fail vs no voice detected vs timeout)
  • config bar hint on brave/edge when browser mode is selected
  • momentum sprites + gsap monkey states (from earlier in the sprint)

what broke (and why it looked cursed)

  1. brave and edge block or mishandle the vercel http audio bridge (duplex fetch upload), so deepgram connections hung ~25s and never returned transcripts.

  2. those browsers also cannot open an authenticated websocket straight to api.deepgram.com, so they need the render ws proxy (wss://…/api/deepgram/proxy) instead of the chrome-friendly paths.

  3. even after the proxy worked, deepgram sent json in binary ws frames and the client ignored anything that was not a string, so words never updated until we parsed blob/arraybuffer payloads.


what’s next (maybe)

  • vendor ort wasm for vad so the worker stops complaining
  • gsap scale split for clean console
  • render keep-alive or paid instance if cold starts hurt demos
  • preview env on vercel for pr deployments (production is wired today)

sorry if i yapped a lot and the fixes where actually slighly more techy stuff so i didnt wanna yap abt that as wel so yeah if u want to know lmk in replies :)

monkeyspeak final devlog before ship ( hopefully )


tl;dr

  • so brave and edge broke everything ( ye read what broke for more info )
  • deepgram mode now transcribes live text again (words dissolve, wpm moves, momentum still reacts to your voice)
  • brave and edge no longer hang for 25 seconds then fake a mic error
  • production uses a render websocket proxy + vercel env, same path that worked locally
  • github: nothariharan/monkeyspeak (commit 095b731 and earlier speech routing work on main)
  • live: monkeyspeak-delta.vercel.app

what i changed

speech routing (back to something that made sense)

mode behavior browser web speech api only. no deepgram hijack on brave/edge mount. deepgram try deepgram first (proxy → bridge fallback on chrome only). if that fails, fall back to web speech with a clear error.

the ui now shows errors for the provider that actually failed, not a generic “mic blocked” when stt died for other reasons.

deepgram client hardening

  • prefer var name ur wish websocket proxy over the vercel http bridge
  • brave/edge without a reachable proxy: fail fast with a useful message (no 25s timeout)
  • utterance_end_ms locked to 1000 everywhere (deepgram rejects live ws with 400 below that)
  • bridge watchdog clears on BridgeReady, not on first random chunk
  • server bridge waits for upstream deepgram before closing the socket

the transcript fix (the big one)

  • client parses deepgram json whether it arrives as a string, blob, or arraybuffer
  • render proxy forwards deepgram replies as utf-8 text frames instead of opaque binary

infra

  • backend/ express + ws proxy deployable on render (render.yaml included)

  • set up env with ur var name at vercel

  • redeployed frontend via vercel cli after env update

small polish

  • clearer vad fallback logs (worker load fail vs no voice detected vs timeout)
  • config bar hint on brave/edge when browser mode is selected
  • momentum sprites + gsap monkey states (from earlier in the sprint)

what broke (and why it looked cursed)

  1. brave and edge block or mishandle the vercel http audio bridge (duplex fetch upload), so deepgram connections hung ~25s and never returned transcripts.

  2. those browsers also cannot open an authenticated websocket straight to api.deepgram.com, so they need the render ws proxy (wss://…/api/deepgram/proxy) instead of the chrome-friendly paths.

  3. even after the proxy worked, deepgram sent json in binary ws frames and the client ignored anything that was not a string, so words never updated until we parsed blob/arraybuffer payloads.


what’s next (maybe)

  • vendor ort wasm for vad so the worker stops complaining
  • gsap scale split for clean console
  • render keep-alive or paid instance if cold starts hurt demos
  • preview env on vercel for pr deployments (production is wired today)

sorry if i yapped a lot and the fixes where actually slighly more techy stuff so i didnt wanna yap abt that as wel so yeah if u want to know lmk in replies :)

Replying to @hariharann

2
124
Open comments for this post
Reposted by @wingnovel

15m 16s logged

i hate websockets. i hate websockets. i hate websockets

geniunely why does ts need to be this complicated. First I needed to make a venv bcz the download was being weird, that’s fine. THEN THEN THEN when i started running the extremely basic chat app, it just kept immediatly dropping the connection, which is normal cuz chrome right? BUT THEN i download the extension that’s supposed to make it work and it jst doesn’t :wiltedrose:

uh what i made wise, I followed a W3 schools guide to make a basic websockets chat app.

i hate websockets. i hate websockets. i hate websockets

geniunely why does ts need to be this complicated. First I needed to make a venv bcz the download was being weird, that’s fine. THEN THEN THEN when i started running the extremely basic chat app, it just kept immediatly dropping the connection, which is normal cuz chrome right? BUT THEN i download the extension that’s supposed to make it work and it jst doesn’t :wiltedrose:

uh what i made wise, I followed a W3 schools guide to make a basic websockets chat app.

Replying to @ee

1
14
Open comments for this post
Reposted by @wingnovel

3h 44m 48s logged

Devlog #1
So what’s here: A space themed desktop environment with draggable windows, a notification center, two arcade games (SpaceSnake + Asteroid Destroyer), a music player, and a secret shutdown animation.

My first version tried to do too much, custom file system, terminal emulator, easter eggs. After almost one and a half hour of nothing working, I deleted almost everything and started over with just the window manager and games. Best decision I made. The rewrite took another one and a half hour and it actually runs.

Next up: Fix the double-draw asteroid bug (I have two loops running), preload images so they don’t reload every frame(optimalisation), and write a README. Then I’ll make a demo site and then ship the project.

PS: Yes, the asteroids rotate. Yes, I spent way too long on that.

Devlog #1
So what’s here: A space themed desktop environment with draggable windows, a notification center, two arcade games (SpaceSnake + Asteroid Destroyer), a music player, and a secret shutdown animation.

My first version tried to do too much, custom file system, terminal emulator, easter eggs. After almost one and a half hour of nothing working, I deleted almost everything and started over with just the window manager and games. Best decision I made. The rewrite took another one and a half hour and it actually runs.

Next up: Fix the double-draw asteroid bug (I have two loops running), preload images so they don’t reload every frame(optimalisation), and write a README. Then I’ll make a demo site and then ship the project.

PS: Yes, the asteroids rotate. Yes, I spent way too long on that.

Replying to @noel_

4
1760
Open comments for this post

8h 37m 32s logged

Making the project deployable with an exe file along with the addtion of report generation and exporting files for spreadsheet analysis of the business data

Making the project deployable with an exe file along with the addtion of report generation and exporting files for spreadsheet analysis of the business data

Replying to @wingnovel

0
5
Ship

What did you make?
I have made a website that will help International Baccalaureate students study more effectively than just reading books
What was challenging?
The challenging part was to collect the data for the project, I used AI to get the questions for the quiz and flashcard sections and it was difficult to prompt it effectively.
Another challenge was to learn to use GitHub Pages I tried nest it did not work, so I switched to GitHub Pages, however that too was not working due to the wrong settings being enabled however it is working properly now.
What are you proud of?
I am proud of the UX, I generally think of myself as the worst designer however with the help of some inspiration taken from the stardust theme I have been able to design this website in the purple space like theme.
What should people know so they can test your project?
All people need to do to test the project is open a link to the GitHub url

  • 5 devlogs
  • 36h
Try project → See source code →
Open comments for this post

12h 0m 23s logged

Fully functional website concept with questions to give you active recall

Fully functional website concept with questions to give you active recall

Replying to @wingnovel

0
3

Followers

Loading…