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

NHero

@NHero

Joined June 2nd, 2026

  • 14Devlogs
  • 4Projects
  • 1Ships
  • 12Votes
Open comments for this post

9h 18m 20s logged

Devlog 4

  • So first of all I switched from using npm to pnpm and updated the docker file accordingly for the socket server.

  • Then I started working on adding users / db functionality in the nextjs app.

  • I created login and register page with two options for signIn -> google or guest.

  • I started tinkering with prisma and better auth and the prisma8 has just come so I started setting it up and had made the schema and had written up some services too but then when I tried to logIn i got few problems which I researched and searched and found out that betterAuth hasn’t adjusted to prism8.

  • So I did what I should have done before, I switched to drizzle. Around 3-4 or more hours were wasted!.
    Now I’m using drizzle and have setup the schema and tables and also better auth in it and the signIn are working.

  • Now I have to create routes or server Actions to retrieve data or send data. Now the games will be saved and stored once finished and user will able to see it in match history.

0
0
9
Open comments for this post

5h 33m 3s logged

Devlog 3

Backend Socket Server

  • Made few changes to setting type and added a questionPool in gameState
  • Settings now have a option to change totalQuestions and a randomly generated questionPool from the totalQuestions
  • Removed spectator logic as not planning on pursuing it right now
  • Also added a heartbeat event which supplies heartBeat every 5 seconds or so and if there is no heartBeat provided by the player for over 30 seconds the player gets removed from the room

Now Frontend

  • Redesigned the lobby page and home page
  • If you open the game for the first time it asks for the name which is currently stored in localstorage for a guest user.
  • When users are added then people would be able to login using google and save their details in database.
  • For now nothing is stored , only gameState are persistent for the duration of the game in redis and after few minutes of inactivity in the room , the room expires via ttl.
  • Also added SEO Optimisations.

Future Plan

  • I will either work on adding more gamemodes or adding the user authentication stuff using postgresql and prims direclty in nextjs
  • After the auth has been added then I will publish the project so that it has atleast some complete features and users can see their stats and prev games results
0
0
3
Open comments for this post

8h 31m 33s logged

Devlog 2

Making this devlog after a long time of doing all this work, the frontend part is still uncommited in github though

Lets talk about backend first ->

  • I first of all was using playerId for the routes to verify the user, but now I’m using socketId
  • And also for reconnection I’m now using a reconnectToken which is created on the socket server and given to the frontend to it can pass it when reconnecting.
  • Also I added a ROOM_KICK event.
  • And I added docker setup too but its still buggy
  • Changed Winning logic so that first correct guess wins

Now Frontend

  • I designed the pages using AI because I am not a good designer rather I am a good coder you can say, because if there is a already made design, I can make a similar one using tailwind and shadcn and other UI libraries
  • I added socket setup for the frontend which goes as follow
  • src/socket -> index.ts, emitter.ts, events.ts
  • src/components/SocketProvider.tsx
  • Socket Provider has the listeners
  • emitter.ts has small functions that can be directly used inside tsx instead of importing socket
  • There are 3 pages currently -> /, /lobby, /play
0
0
9
Open comments for this post

8h 38m 25s logged

Devlog 1

So I’ve been working on the socket server for this game for the past couple of days. What I’ve learned so far is that game logic is sometimes so frustrating like there can be so many edge cases you have to think about and there can be many nested if else.

So my tech stack for the socket server is:

  • Socket.io
  • IoRedis (redis hosted using docker)
  • Zod
  • and node httpServer

Ofcourse everything is written in typescript. I didn’t made separate devlogs because I forgot, sorry for that

Here’s what I did

  • I made the folder structure moduler having different modules for different logic : room, game, question
  • Shared files are in shared folder
  • Each module has its own listener, service, schema with some having util/helper file
  • I first worked on room then game then question
  • Some things are still left to do, but first I would like to make some of the frontend
0
0
3
Open comments for this post

12h 29m 44s logged

Devlog - 08

Since I was building a front end for this project and when designing the front end I didn’t had a route for getting all the businesses the logged in user is part of. So I added that route to show all the businesses on the home page of dashboard

And also I have email, password login so I needed a route to verify the user who has used email password using a verification code sent on their email. So I updated the user model and added that route too.

Next thing was I added those routes to my openApi docs and also I updated my readme.md and other mds in root docs/ folder.

One more thing is left in this project is to have separate analytics routes for separate modules like clients analytics, products analytics then main dashboard analytics.

I will make them once a get a jump on front end since I’m laking behind there

0
0
4
Open comments for this post

4h 3m 36s logged

Devlog - 07

Since its a Backend API so I needed to create a api endpoints docs to showcase the project to other people as some UI helps in showcasing

I used scalar and openAPI docs for my project, It took me some time to understand what to do but I was finally able to do it

And then during deployment I made an error of putting some dependencies into dev dependencies as they were prefixed with @.

Finally was able to get my docker deployment working

0
0
4
Ship Changes requested

What did you make?
I built an open-source business management platform backend with authentication, Google OAuth, workspaces, clients, products/services, invoices, payments, analytics, PDF invoice generation, email delivery, and Docker support.

What was challenging?
Building a scalable architecture, writing integration tests, handling workspace permissions, debugging file uploads, and getting Puppeteer PDF generation working reliably in Docker.

What are you proud of?
The complete business workflow, clean architecture, Dockerized deployment, and 39+ integration tests that help ensure reliability.

How can people test it?
Docker setup and environment configuration are included. They can directly docker compose or run using bun or npm

  • 6 devlogs
  • 24h
Try project → See source code →
Open comments for this post

28m 53s logged

Devlog -6

Added a analytics endpoint and its time to end the backend project and move on to the frontend of the project.

If issues come up designing the frontend, will have to comeback to fix it.

Till then i have deployed it with docker on railway.com

0
0
3
Open comments for this post

1h 50m 12s logged

Devlog - 05

After adding tests, I decided to dockerize the project. But i was using puppeteer and it causes some issues in docker so i changed it to puppeteer-core and add install commands for chromium separately in docker file.

I made everything work after some brutal hours of debugging and fixing and learning as this is my first time working with docker

0
0
3
Open comments for this post

10h 1m 9s logged

Devlog 4 - Backend Testing Marathon 🧪

Spent few days building out integration tests for my Express + TypeScript backend.

Added test coverage for:

  • User registration & login
  • Refresh token flow
  • Forgot/reset password
  • Clients
  • Products (including file uploads)
  • Invoices & payments
  • Workspace/business authorization

Also set up:

  • MongoDB Memory Server for isolated test databases
  • Factories for generating users, businesses, invoices, products, etc.
  • Mocks for Cloudinary, Resend, and bcrypt

Ran into a pretty annoying EPIPE error while testing multipart file uploads. After a lot of debugging, I tracked it down to file stream handling in tests. Switching upload tests to use Buffers instead of fixture files made the suite stable again.

Current stats:

  • 39 tests
  • 15 test files
  • Full integration test suite passing ✅
0
0
2

Followers

Loading…