|
68308
|
Game changer by @hrishikeshd153 | Stardance
|
hrishikeshd153
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Game changer by @hrishikeshd153 | Stardance
|
1793119945.193068
|
1793724745.193068
|
|
68309
|
My own site! by @rivarly | Stardance
|
rivarly
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @rivarly | Stardance
|
1793119946.9609165
|
1793724746.9609165
|
|
68310
|
Ari-Clock by @Nefx07 | Stardance
|
Nefx07
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Ari-Clock by @Nefx07 | Stardance
|
1793119948.7721817
|
1793724748.7721817
|
|
68311
|
BLARE by @zacvblack | Stardance
|
zacvblack
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @zacvblack | Stardance
|
1793119950.551539
|
1793724750.551539
|
|
68312
|
realistic F1 inspired game by @pmandal7355 | Stard realistic F1 inspired game by @pmandal7355 | Stardance...
|
pmandal7355
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: realistic F1 inspired game by @pmandal7355 Title: realistic F1 inspired game by @pmandal7355 | Stardance...
|
1793119952.6469693
|
1793724752.6469693
|
|
68313
|
MacOS but on web by @pmandal7355 | Stardance
|
pmandal7355
|
1
|
8.03
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T19:30:01Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made the copy /inspirational macos like web os and created majority of function and really like to share this, as my first web os using electron , i recommend download electron, zustand and", "repo": "https://github.com/itsprantik/MacOS/", "demo": "https://macosproject.vercel.app/"}]...
|
[{"post_id": 81450, "ts": "202 [{"post_id": 81450, "ts": "2026-10-21T10:28:15Z", "hours": 1.0317, "text": "made the readme again as stated by reviewers the readme is seemed to be ai"}, {"post_id": 78025, "ts": "2026-10-09T07:27:20Z", "hours": 0.8658, "text": "made the calendar app and made bugs fix and new css for safari and made about mac section"}, {"post_id": 77875, "ts": "2026-10-08T17:02:43Z", "hours": 2.4664, "text": "made the browser and news app and darkmode , calculator, clock app and switched to electron for browser dependencies as google Programmable Search Engine opens in new window which ruins the os , there is still some bugs on the safari app and layout bugs which will be fixed"}, {"post_id": 77791, "ts": "2026-10-08T09:17:40Z", "hours": 1.0428, "text": "made the widgets draggable and user friendly adeed a terminal with git controls and settings page with working brightness control , sound and finder . the project will be completed within 1 to 2 days"}, {"post_id": 77767, "ts": "2026-10-08T06:18:34Z", "hours": 0.8544, "text": "made the desktop and the task bar with icons , now only the music player is made and the control centre the widgets are non movable and non removable, need to be fixed"}, {"post_id": 77609, "ts": "2026-10-07T16:41:15Z", "hours": 1.0089, "text": "made the full bottloading screen and the login page , it doesnt nedd password to keep it available for everyone"}, {"post_id": 77530, "ts": "2026-10-07T10:53:55Z", "hours": 0.3783, "text": "current made some parts of boot loading screen, will de adding a few desktop appearanace"}]...
|
Title: MacOS but on web by @pmandal7355 | Stardanc Title: MacOS but on web by @pmandal7355 | Stardance
Devlogs:
current made some parts of boot loading screen, will de adding a few desktop appearanace
made the full bottloading screen and the login page , it doesnt nedd password to keep it available for everyone
made the desktop and the task bar with icons , now only the music player is made and the control centre the widgets are non movable and non removable, need to be fixed
made the widgets draggable and user friendly adeed a terminal with git controls and settings page with working brightness control , sound and finder . the project will be completed within 1 to 2 days
made the browser and news app and darkmode , calculator, clock app and switched to electron for browser dependencies as google Programmable Search Engine opens in new window which ruins the os , there is still some bugs on the safari app and layout bugs which will be fixed
made the calendar app and made bugs fix and new css for safari and made about mac section
made the readme again as stated by reviewers the readme is seemed to be ai
Ships:
i made the copy /inspirational macos like web os and created majority of function and really like to share this, as my first web os using electron , i recommend download electron, zustand and...
|
1793220915.556964
|
1793307315.556964
|
|
68314
|
inkan by @Vensin | Stardance
|
Vensin
|
0
|
11.67
|
0
|
[]
|
[{"post_id": 81199, "ts": "202 [{"post_id": 81199, "ts": "2026-10-20T08:12:20Z", "hours": 3.8042, "text": "Hello again my little Stardancers ✨ inkan 0.8.0 is out. This one is less about new tricks and more about making inkan something you can actually build on without it shifting under you. The big one: the API is stable now. Every function is marked either stable or experimental. Stable stuff won’t just change or disappear anymore. If I rename something, the old name keeps working with a warning for at least two versions and six months. Before freezing it I had the whole API reviewed and cleaned up the things I would have regretted later, like time options that were seconds in one place and milliseconds in another, or two different names for the same origin setting. There’s also a test now that fails the moment the public types change by accident. Then storage. Until now every feature kept its own little store in memory, so jobs and logins only worked in one process. Now there’s one Store in the core, and four new packages that plug into it: redis, postgres, mongo and mysql. You pass in your own database client, so none of them add a dependency. With one of those, jobs, sessions, logins and rate limits work across several processes and servers. Each adapter has to pass the same test suite, and they’re all tested against real database servers, not fakes. They also got a security review. That found a few real things, like a way to inject SQL into MySQL under unusual server settings, and that my login protection had become weaker than before. All fixed. Smaller stuff: React hooks for live data in @inkanjs /query, so you can show job progress or websocket messages with one hook websockets now also run on uWebSockets.js async handlers got faster and are now as fast as plain node:http on the benchmark a fix where the dev inspector could be reached when it shouldn’t About speed, honestly: on the GitHub runner inkan scored 91.0 and Fastify 89.9. inkan was ahead in two runs and level in the third, so I’m calling it level to slightly ahead, not faster. At first 0.8 even looked slower than 0.7, so I measured the CPU time per request separately, and it’s exactly the same as 0.7. The difference was the test machine moving around. One bug I only found during the release: on Node 22 a websocket that gets refused never tells you, it just waits forever. That’s fixed in 0.8.1. Next: I want to make writing adapters for other servers easier, and I still want someone from Fastify and Hono to look at my benchmark code. See you next time ✨"}, {"post_id": 77878, "ts": "2026-10-08T17:10:32Z", "hours": 1.4211, "text": "Hello again my little Stardancers ✨inkan 0.6.0 is out, and this one was a big one. The plan was simple to say and hard to do: make inkan faster than Fastify on plain node:http, without generating code at runtime the way Fastify does with new Function. I wrote a plan with phases, measured main before touching anything, and then went through it step by step, keeping only what the numbers carried.First the fixed costs. Every request used to make about twenty little objects where six would do, and the request id came from a random UUID. Now the id comes from a counter, everything a route can work out ahead of time is worked out once at start, and a request with a body is only routed once. That alone saved about four percent of CPU per request. Then something odd happened: over HTTP, under full load, it was ten percent slower, even though it spent less CPU. I spent a good while hunting that down, measuring one change at a time against the last one, and it turned out to be fields I had made lazy. Filled on first use, they cost more under load than they saved. Made at once again, and the ten percent were back.Then the schemas. Every schema now checks through one function made once from its rules, which I call its stamp, instead of walking the schema tree on every request. To make sure nothing changed, a test builds every schema twice, once the old way and once the new, and compares two thousand random schemas and values. Same values, same messages, same paths.Writing answers was the lesson of the week. My first idea was a writer in plain JavaScript that writes only what the contract lists in one pass. It was clean, and it was almost twice as slow as the native JSON.stringify. So it went. What stayed: a plain object that holds exactly what the contract lists goes straight to the native writer, and anything else is copied with only the declared fields first. While pinning the old writer down with tests I also found five places where it wrote something it should not have, and two of them could let a key the contract never listed slip out. All five are fixed.And the honest result: on the bench inkan 0.6.0 scores 89.1 against Fastify’s 88.6, with node:http as 100. That is level, not ahead, because the runs overlap, so I am not calling it faster. It is 5.5 percent faster than 0.5, and with inkan seal a body of 50 objects is checked faster than by any server on the bench. Every number, phase by phase, is in the repository, including the ideas that did not work.There is more than speed in this one. The context can answer with text, html, a redirect or a 404 now, and the html tag escapes everything you put into it, so a name someone typed can never become a script on your page. Layouts work per scope, cookies are safe by default, and a handler can hand back rows straight from a database cursor: they go out as they are read, each one trimmed to the contract, as JSON or as one line per row. ctx.csv writes a million rows without holding them in memory, ctx.signal stops a query when the client leaves or the time is up, and a route can cache its answers and ask the database once when ten people ask at the same time.The website got a new logo too, 印 between braces, and the docs now have a real API section with every method and every option in one place.Next up is winning the scenarios where Fastify is still ahead: small requests, the router and middleware. I have a few ideas.See you next time ✨"}, {"post_id": 77789, "ts": "2026-10-08T08:47:47Z", "hours": 1.1386, "text": "Hello again my little Stardancers ✨ It’s devlog time, and this one comes with a confession: I moved a real app onto inkan. Not a todo list. A real one with 55 routes, file uploads, backups of a couple hundred MB, sessions and a mail setup. It ran on Express, and I wanted to know what happens when inkan has to do real work. Turns out: mostly fine. But not completely. And that “not completely” turned into inkan 0.5.0 The first problem was request bodies. inkan read every body into memory, with one 1 MB limit for the whole app. Fine for JSON, less fine for “hey, can I upload this 2 GB backup?” No ❤️ So I paused the migration and fixed the framework first. 0.5.0 brings t.binary() for files sent as the request body, and t.stream() for real streaming uploads: your handler gets the upload chunk by chunk, so the file never sits in memory. Limits are per route, so one endpoint can take 2 GB while the rest stays at 1 MB. On the way I found a fun bug: when a stream hit its limit, or the server answered 401 before the upload was done, the connection could just… hang. Fixed, the response arrives and the rest gets drained properly Then the frontend. Now there’s serveStatic(): hashed assets cached for a year, index.html never stuck in a cache, and unknown routes fall back to the SPA. Except /api, where a typo gets a real 404 instead of your entire frontend 💅 compress() does Brotli and gzip, streams included. In the app I migrated, the bundle went from 75 KB to 18 KB. There’s also ctx.ip for the login rate limiter (Bun and Deno too), per-route body limits and app.bodyFor() for adapter authors. And the benchmarks say no potato: every scenario stayed within ±4% of main on the same GitHub runner. And then something else happened: inkan got integrations 🧩 All in one repo at github.com/inkanjs/integrations. @inkanjs /vite runs your API inside the Vite dev server, so frontend and API share one port. No proxy, no second terminal, just npm run dev. The API reloads on every save, each reload counts as a fresh restart so your timers don’t multiply, the docs and inspector links show up in Vite’s banner, and a broken API shows up in Vite’s error overlay. @inkanjs /next turns an inkan app into Next.js route handlers with one line, works with the Pages Router too, and has direct(app): a typed client for Server Components that calls your API in the same process. CI builds and starts a real Next.js app, because “works on my machine” isn’t a testing strategy. @inkanjs /query is for TanStack Query: keys and types straight from the API paths, failed responses as errors with the problem document, and a retry() that won’t retry a 404 until the heat death of the universe. @inkanjs /uws runs inkan on uWebSockets.js, with graceful shutdown and HTTPS, and it’s the fastest way to run inkan. Nuxt, SvelteKit, Astro and Remix don’t even need a package: app.fetch is enough, and the repo has recipes. And the migration? All 55 routes run on inkan now, split into files by area instead of one 1300-line index.js. Every test passes, the frontend didn’t change a single line, and dev went from two processes, two ports and a proxy to npm run dev on one port. Express, compression and concurrently are gone, 74 packages fewer A real project is great at showing you where your framework doesn’t hold up. inkan had a few of those places. Now it has fewer. npm install @vxnsin / [email protected] See you next time, Stardancers 🌙"}, {"post_id": 77562, "ts": "2026-10-07T14:20:08Z", "hours": 2.1539, "text": "Hello again my little Stardancers ✨ inkan 0.4.0 is out, and I closed the entire milestone in one day. Every single issue. I don’t know who I am anymore either. The one I’m proudest of: npx @vxnsin /inkan learn. It’s a tutorial that lives in your terminal. It sets up a tiny tea shop, gives you twelve quests, and checks your work every time you hit save. Forgot a validation rule? It tells you. Stuck? Press h for a hint, press it again for a less subtle hint. By quest 12 you’ve built routes, contracts, auth, hooks, plugins, and you’ve broken a client on purpose (for science). No other web framework ships a tutorial inside itself, so I figured: why not be the first one. inkan also got grown-up stuff this time. Hooks, plugins and decorators, so you can bolt on your own things without touching the core, and a little rate limiter built on exactly those APIs to prove it works. Routes can now live in a folder tree, routes/teas/[id].ts and friends. And inkan finally leaves the house: app.fetch runs it on Bun, Deno and serverless, workers: “auto” uses every CPU core you own, and there’s an adapter for uWebSockets.js if you want to go absolutely feral. Then there’s inkan seal. It stamps your contracts into plain code ahead of time, so big requests get checked in about half the time. No eval, no runtime magic, just a file you can actually read. And if your contract changes and you forget to reseal, inkan notices and quietly ignores the stale seal. It’s basically a very responsible goldfish. Speed check, because I promised honest numbers: on a fair benchmark inkan beats Hono, by 0.4 points. I’m choosing to celebrate that like it’s 40. Fastify is still a bit ahead, Express is still Express. But put inkan on the uWS adapter and it’s a third faster than plain Node itself. Who’s the framework now. Also: inkan moved into its own home at github.com/inkanjs, and routes can now say who’s allowed in (security: “bearer”) and actually mean it."}, {"post_id": 77516, "ts": "2026-10-07T09:35:21Z", "hours": 2.4317, "text": "Hello again my little Stardancers ✨ inkan 0.3.0 is out, and it has learned to read the room. Specifically: it now notices when you’re about to break things for everyone who depends on you. Which is more than I can say for some group projects. The big one is inkan diff. You give it the OpenAPI document from your last release and your app as it is now, and it tells you exactly which changes would make your clients cry. A field that suddenly became required? Breaking. A route you “cleaned up”? Very breaking. A new optional field? Totally fine, go off. Put it in CI and your pipeline turns red before your users do. Also new: npx @vxnsin /inkan examples drops a whole explained project into your folder. Six of them, from “hello” to “deploy”, each with a README that tells you what to read first and a list of ways to break it on purpose, because honestly that’s how we all learn anyway. There’s a typed client now too: your frontend gets its types straight from the server routes, no codegen, no ritual sacrifices. Typo in a path? It doesn’t compile. Beautiful. And the rest of the goodie bag: server-sent events with a schema per event (even endless streams can be tests now, don’t ask how, it’s magic and also a counter), file uploads with size and type limits, examples that build on each other (“create a tea, then fetch it”), request ids in every log line and every error, a replay button in the inspector that turns real traffic into examples, and you can now edit requests right on the docs page. Huge thanks to AndrewCMD for dates, refinements and recursive schemas, inkan’s brain got noticeably bigger."}, {"post_id": 77381, "ts": "2026-10-06T18:46:55Z", "hours": 0.3147, "text": "Hello again my little Stardancers ✨ inkan 0.2.0 is out, and it has trust issues now, just like my ex. The difference is that inkan’s trust issues are actually helpful. The big one: inkan check now tells you what you forgot to test. If your route promises a 409 but none of your examples ever triggers it, inkan points at it and says “that one, nobody checked that one.” Add –strict and your CI refuses to go green until you write that example. Your docs page shows the same hint, so the lie gets caught twice. Browsers can finally talk to inkan from another origin too. There’s a little cors() middleware, and OPTIONS requests get answered automatically instead of a sad 405. The terminal got its colours, RinZ27’s lifecycle hooks made it in, and the CLI now has real tests of its own. Releasing is one click now as well: a GitHub release publishes to npm with a signed link back to the exact commit, so you can check that what you install is what’s on GitHub."}, {"post_id": 77348, "ts": "2026-10-06T17:02:27Z", "hours": 0.4039, "text": "Hello my little Stardancers ✨ Devlog time! No ship yet, but here’s what’s been cooking. inkan (印鑑) is an API server for Node where the docs can’t lie. Every route gets one contract, and from that inkan validates requests, types your handler, writes OpenAPI and serves docs. The fun part: every example in the docs also runs as a test, so if your code drifts away from what the docs promise, inkan check goes red before anyone reads a lie. Zero dependencies, so your node_modules can finally rest. This week I merged my first community PR 🎉 It adds lifecycle hooks for connecting your database on startup and closing it cleanly on Ctrl+C. Before merging I caught two sneaky bugs: a failing startup hook took the whole server down, and a stuck shutdown hook could keep the process alive forever, like a guest who won’t leave the party. Both are fixed and tested. Next up is better logging, and then the ship is coming soon™ 🫡"}]...
|
Title: inkan by @Vensin | Stardance
Devlogs:
Hell Title: inkan by @Vensin | Stardance
Devlogs:
Hello my little Stardancers ✨ Devlog time! No ship yet, but here’s what’s been cooking. inkan (印鑑) is an API server for Node where the docs can’t lie. Every route gets one contract, and from that inkan validates requests, types your handler, writes OpenAPI and serves docs. The fun part: every example in the docs also runs as a test, so if your code drifts away from what the docs promise, inkan check goes red before anyone reads a lie. Zero dependencies, so your node_modules can finally rest. This week I merged my first community PR 🎉 It adds lifecycle hooks for connecting your database on startup and closing it cleanly on Ctrl+C. Before merging I caught two sneaky bugs: a failing startup hook took the whole server down, and a stuck shutdown hook could keep the process alive forever, like a guest who won’t leave the party. Both are fixed and tested. Next up is better logging, and then the ship is coming soon™ 🫡
Hello again my little Stardancers ✨ inkan 0.2.0 is out, and it has trust issues now, just like my ex. The difference is that inkan’s trust issues are actually helpful. The big one: inkan check now tells you what you forgot to test. If your route promises a 409 but none of your examples ever triggers it, inkan points at it and says “that one, nobody checked that one.” Add –strict and your CI refuses to go green until you write that example. Your docs page shows the same hint, so the lie gets caught twice. Browsers can finally talk to inkan from another origin too. There’s a little cors() middleware, and OPTIONS requests get answered automatically instead of a sad 405. The terminal got its colours, RinZ27’s lifecycle hooks made it in, and the CLI now has real tests of its own. Releasing is one click now as well: a GitHub release publishes to npm with a signed link back to the exact commit, so you can check that what you install is what’s on GitHub.
Hello again my little Stardancers ✨ inkan 0.3.0 is out, and it has learned to read the room. Specifically: it now notices when you’re about to break things for everyone who depends on you. Which is more than I can say for some group projects. The big one is inkan diff. You give it the OpenAPI document from your last release and your app as it is now, and it tells you exactly which changes would make your clients cry. A field that suddenly became required? Breaking. A route you “cleaned up”? Very breaking. A new optional field? Totally fine, go off. Put it in CI and your pipeline turns red before your users do. Also new: npx @vxnsin /inkan examples drops a whole explained project into your folder. Six of them, from “hello” to “deploy”, each with a README that tells you what to read first and a list of ways to break it on purpose, because honestly that’s how we all learn anyway. There’s a typed client now too: your frontend gets its types straight from the server routes, no codegen, no ritual sacrifices. Typo in a path? It doesn’t compile. Beautiful. And the rest of the goodie bag: server-sent events with a schema per event (even endless streams can be tests now, don’t ask how, it’s magic and also a counter), file uploads with size and type limits, examples that build on each other (“create a tea, then fetch it”), request ids in every log line and every error, a replay button in the inspector that turns real traffic into examples, and you can now edit requests right on the docs page. Huge thanks to AndrewCMD for dates, refinements and recursive schemas, inkan’s brain got noticeably bigger.
Hello again my little Stardancers ✨ inkan 0.4.0 is out, and I closed the entire milestone in one day. Every single issue. I don’t know who I am anymore either. The one I’m proudest of: npx @vxnsin /inkan learn. It’s a tutorial that lives in your terminal. It sets up a tiny tea shop, gives you twelve quests, and checks your work every time you hit save. Forgot a validation rule? It tells you. Stuck? Press h for a hint, press it again for a less subtle hint. By quest 12 you’ve built routes, contracts, auth, hooks, plugins, and you’ve broken a client on purpose (for science). No other web framework ships a tutorial inside itself, so I figured: why not be the first one. inkan also got grown-up stuff this time. Hooks, plugins and decorators, so you can bolt on your own things without touching the core, and a little rate limiter built on exactly those APIs to prove it works. Routes can now live in a folder tree, routes/teas/[id].ts and friends. And inkan finally leaves the house: app.fetch runs it on Bun, Deno and serverless, workers: “auto” uses every CPU core you own, and there’s an adapter for uWebSockets.js if you want to go absolutely feral. Then there’s inkan seal. It stamps your contracts into plain code ahead of time, so big requests get checked in about half the time. No eval, no runtime magic, just a file you can actually read. And if your contract changes and you forget to reseal, inkan notices and quietly ignores the stale seal. It’s basically a very responsible goldfish. Speed check, because I promised honest numbers: on a fair benchmark inkan beats Hono, by 0.4 points. I’m choosing to celebrate that like it’s 40. Fastify is still a bit ahead, Express is still Express. But put inkan on the uWS adapter and it’s a third faster than plain Node itself. Who’s the framework now. Also: inkan moved into its own home at github.com/inkanjs, and routes can now say who’s allowed in (security: “bearer”) and actually mean it.
Hello again my little Stardancers ✨ It’s devlog time, and this one comes with a confession: I moved a real app onto inkan. Not a todo list. A real one with 55 routes, file uploads, backups of a couple hundred MB, sessions and a mail setup. It ran on Express, and I wanted to know what happens when inkan has to do real work. Turns out: mostly fine. But not completely. And that “not completely” turned into inkan 0.5.0 The first problem was request bodies. inkan read every body into memory, with one 1 MB limit for the whole app. Fine for JSON, less fine for “hey, can I upload this 2 GB backup?” No ❤️ So I paused the migration and fixed the framework first. 0.5.0 brings t.binary() for files sent as the request body, and t.stream() for real streaming uploads: your handler gets the upload chunk by chunk, so the file never sits in memory. Limits are per route, so one endpoint can take 2 GB while the rest stays at 1 MB. On the way I found a fun bug: when a stream hit its limit, or the server answered 401 before the upload was done, the connection could just… hang. Fixed, the response arrives and the rest gets drained properly Then the frontend. Now there’s serveStatic(): hashed assets cached for a year, index.html never stuck in a cache, and unknown routes fall back to the SPA. Except /api, where a typo gets a real 404 instead of your entire frontend 💅 compress() does Brotli and gzip, streams included. In the app I migrated, the bundle went from 75 KB to 18 KB. There’s also ctx.ip for the login rate limiter (Bun and Deno too), per-route body limits and app.bodyFor() for adapter authors. And the benchmarks say no potato: every scenario stayed within ±4% of main on the same GitHub runner. And then something else happened: inkan got integrations 🧩 All in one repo at github.com/inkanjs/integrations. @inkanjs /vite runs your API inside the Vite dev server, so frontend and API share one port. No proxy, no second terminal, just npm run dev. The API reloads on every save, each reload counts as a fresh restart so your timers don’t multiply, the docs and inspector links show up in Vite’s banner, and a broken API shows up in Vite’s error overlay. @inkanjs /next turns an inkan app into Next.js route handlers with one line, works with the Pages Router too, and has direct(app): a typed client for Server Components that calls your API in the same process. CI builds and starts a real Next.js app, because “works on my machine” isn’t a testing strategy. @inkanjs /query is for TanStack Query: keys and types straight from the API paths, failed responses as errors with the problem document, and a retry() that won’t retry a 404 until the heat death of the universe. @inkanjs /uws runs inkan on uWebSockets.js, with graceful shutdown and HTTPS, and it’s the fastest way to run inkan. Nuxt, SvelteKit, Astro and Remix don’t even need a package: app.fetch is enough, and the repo has recipes. And the migration? All 55 routes run on inkan now, split into files by area instead of one 1300-line index.js. Every test passes, the frontend didn’t change a single line, and dev went from two processes, two ports and a proxy to npm run dev on one port. Express, compression and concurrently are gone, 74 packages fewer A real project is great at showing you where your framework doesn’t hold up. inkan had a few of those places. Now it has fewer. npm install @vxnsin / [email protected] See you next time, Stardancers 🌙
Hello again my little Stardancers ✨inkan 0.6.0 is out, and this one was a big one. The plan was simple to say and hard to do: make inkan faster than Fastify on plain node:http, without generating code at runtime the way Fastify does with new Function. I wrote a plan with phases, measured main before touching anything, and then went through it step by step, keeping only what the numbers carried.First the fixed costs. Every request used to make about twenty little objects where six would do, and the request id came from a random UUID. Now the id comes from a counter, everything a route can work out ahead of time is worked out once at start, and a request with a body is only routed once. That alone saved about four percent of CPU per request. Then something odd happened: over HTTP, under full load, it was ten percent slower, even though it spent less CPU. I spent a good while hunting that down, measuring one change at a time against the last one, and it turned out to be fields I had made lazy. Filled on first use, they cost more under load than they saved. Made at once again, and the ten percent were back.Then the schemas. Every schema now checks through one function made once from its rules, which I call its stamp, instead of walking the schema tree on every request. To make sure nothing changed, a test builds every schema twice, once the old way and once the new, and compares two thousand random schemas and values. Same values, same messages, same paths.Writing answers was the lesson of the week. My first idea was a writer in plain JavaScript that writes only what the contract lists in one pass. It was clean, and it was almost twice as slow as the native JSON.stringify. So it went. What stayed: a plain object that holds exactly what the contract lists goes straight to the native writer, and anything else is copied with only the declared fields first. While pinning the old writer down with tests I also found five places where it wrote something it should not have, and two of them could let a key the contract never listed slip out. All five are fixed.And the honest result: on the bench inkan 0.6.0 scores 89.1 against Fastify’s 88.6, with node:http as 100. That is level, not ahead, because the runs overlap, so I am not calling it faster. It is 5.5 percent faster than 0.5, and with inkan seal a body of 50 objects is checked faster than by any server on the bench. Every number, phase by phase, is in the repository, including the ideas that did not work.There is more than speed in this one. The context can answer with text, html, a redirect or a 404 now, and the html tag escapes everything you put into it, so a name someone typed can never become a script on your page. Layouts work per scope, cookies are safe by default, and a handler can hand back rows straight from a database cursor: they go out as they are read, each one trimmed to the contract, as JSON or as one line per row. ctx.csv writes a million rows without holding them in memory, ctx.signal stops a query when the client leaves or the time is up, and a route can cache its answers and ask the database once when ten people ask at the same time.The website got a new logo too, 印 between braces, and the docs now have a real API section with every method and every option in one place.Next up is winning the scenarios where Fastify is still ahead: small requests, the router and middleware. I have a few ideas.See you next time ✨
Hello again my little Stardancers ✨ inkan 0.8.0 is out. This one is less about new tricks and more about making inkan something you can actually build on without it shifting under you. The big one: the API is stable now. Every function is marked either stable or experimental. Stable stuff won’t just change or disappear anymore. If I rename something, the old name keeps working with a warning for at least two versions and six months. Before freezing it I had the whole API reviewed and cleaned up the things I would have regretted later, like time options that were seconds in one place and milliseconds in another, or two different names for the same origin setting. There’s also a test now that fails the moment the public types change by accident. Then storage. Until now every feature kept its own little store in memory, so jobs and logins only worked in one process. Now there’s one Store in the core, and four new packages that plug into it: redis, postgres, mongo and mysql. You pass in your own database client, so none of them add a dependency. With one of those, jobs, sessions, logins and rate limits work across several processes and servers. Each adapter has to pass the same test suite, and they’re all tested against real database servers, not fakes. They also got a security review. That found a few real things, like a way to inject SQL into MySQL under unusual server settings, and that my login protection had become weaker than before. All fixed. Smaller stuff: React hooks for live data in @inkanjs /query, so you can show job progress or websocket messages with one hook websockets now also run on uWebSockets.js async handlers got faster and are now as fast as plain node:http on the benchmark a fix where the dev inspector could be reached when it shouldn’t About speed, honestly: on the GitHub runner inkan scored 91.0 and Fastify 89.9. inkan was ahead in two runs and level in the third, so I’m calling it level to slightly ahead, not faster. At first 0.8 even looked slower than 0.7, so I measured the CPU time per request separately, and it’s exactly the same as 0.7. The difference was the test machine moving around. One bug I only found during the release: on Node 22 a websocket that gets refused never tells you, it just waits forever. That’s fixed in 0.8.1. Next: I want to make writing adapters for other servers easier, and I still want someone from Fastify and Hono to look at my benchmark code. See you next time ✨...
|
1793119953.4862025
|
1793724753.4862025
|
|
68315
|
My very own WebOS by @ez | Stardance
|
ez
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @ez | Stardance
|
1793119955.8241546
|
1793724755.8241546
|
|
68316
|
my place by @Gooseishere | Stardance
|
Gooseishere
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my place by @Gooseishere | Stardance
|
1793119957.5985067
|
1793724757.5985067
|
|
68317
|
My first slack bot! by @adome595 | Stardance
|
adome595
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @adome595 | Stardanc Title: My first slack bot! by @adome595 | Stardance...
|
1793119959.6471696
|
1793724759.6471696
|
|
68318
|
Emina's Orbit by @Emina-ahmed-challa | Stardan Emina's Orbit by @Emina-ahmed-challa | Stardance...
|
Emina-ahmed-challa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Emina's Orbit by @Emina-ahmed-challa | Title: Emina's Orbit by @Emina-ahmed-challa | Stardance...
|
1793119961.4073033
|
1793724761.4073033
|
|
68319
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792871528.070306
|
1793735528.070306
|
|
68320
|
BLARE by @nidhishgulati | Stardance
|
nidhishgulati
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @nidhishgulati | Stardance
|
1793119965.0627182
|
1793724765.0627182
|
|
68321
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792871528.8804944
|
1793735528.8804944
|
|
68322
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792871529.7174428
|
1793735529.7174428
|
|
68323
|
Daily Dashboard by @TeddyV | Stardance
|
TeddyV
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Daily Dashboard by @TeddyV | Stardance
|
1793119965.9189086
|
1793724765.9189086
|
|
68324
|
Anamnesis by @Eclipse | Stardance
|
Eclipse
|
0
|
5.36
|
0
|
[]
|
[{"post_id": 78441, "ts": "202 [{"post_id": 78441, "ts": "2026-10-10T20:13:21Z", "hours": 2.0125, "text": "Anamnesis: Phase-1 (The Beginning) As the title suggests, I’m done with phase 0, aka some prep and basic backbone of the project. . Tho I tried adding a graph using matplotlib, but it looked quite bland n didn’t serve any useful purpose… so I’ve kept the UI for the end ( at least for now ), and removed the existing graph… . So, from now on, I shall be working on phase-1, which includes: Protein sequence collection Phylogenetic reconstruction Ancestral sequence reconstruction Evolutionary uncertainty Ancient protein candidates And that, ladies and gentlemen, is the real beginning of Anamnesis… . P.S. Till now development was slower as I needed to focus on my studies and stuff, but from now on, things should be swifter…. :)"}, {"post_id": 77799, "ts": "2026-10-08T10:54:36Z", "hours": 3.3478, "text": "Anamnesis: The Beginning This project shall serve as my endgame. . This idea of Anamnesis is simple: Reconstruct ancestral proteins from hundreds of millions of years ago, reconstruct their structures, simulate their molecular dynamics, and trace how mutations transformed their stability, flexibility, and function. Then extend the evolutionary framework to cancer: model how mutations reshape cellular dynamics and search for previously overlooked dynamical states that may make cancer cells unusually vulnerable. . And as you can tell by the time I’ve logged this, I’ve already started working on the basics, that is, I’m still a newbie at biology, and need to learn quite a few things while building it. . Either way, the program can now read the protein, its data and its individual amino acids while knowing which letter corresponds to which amino acid… . A weird incident, that is, I literally wrote my own parser start to end, to read the data related to protein,, only to then realize I could’ve used Biopython instead…. (genius Ik 🥀) . But yeah,, I’ll try to develop the project as fast as I can while learning the biology underneath it (a rare moment in life where you genuinely feel thankful for naturally being a really quick learner). . Soo… that’s it for today? Have a great evening..! 🕯️"}]...
|
Title: Anamnesis by @Eclipse | Stardance
Devlogs: Title: Anamnesis by @Eclipse | Stardance
Devlogs:
Anamnesis: The Beginning This project shall serve as my endgame. . This idea of Anamnesis is simple: Reconstruct ancestral proteins from hundreds of millions of years ago, reconstruct their structures, simulate their molecular dynamics, and trace how mutations transformed their stability, flexibility, and function. Then extend the evolutionary framework to cancer: model how mutations reshape cellular dynamics and search for previously overlooked dynamical states that may make cancer cells unusually vulnerable. . And as you can tell by the time I’ve logged this, I’ve already started working on the basics, that is, I’m still a newbie at biology, and need to learn quite a few things while building it. . Either way, the program can now read the protein, its data and its individual amino acids while knowing which letter corresponds to which amino acid… . A weird incident, that is, I literally wrote my own parser start to end, to read the data related to protein,, only to then realize I could’ve used Biopython instead…. (genius Ik 🥀) . But yeah,, I’ll try to develop the project as fast as I can while learning the biology underneath it (a rare moment in life where you genuinely feel thankful for naturally being a really quick learner). . Soo… that’s it for today? Have a great evening..! 🕯️
Anamnesis: Phase-1 (The Beginning) As the title suggests, I’m done with phase 0, aka some prep and basic backbone of the project. . Tho I tried adding a graph using matplotlib, but it looked quite bland n didn’t serve any useful purpose… so I’ve kept the UI for the end ( at least for now ), and removed the existing graph… . So, from now on, I shall be working on phase-1, which includes: Protein sequence collection Phylogenetic reconstruction Ancestral sequence reconstruction Evolutionary uncertainty Ancient protein candidates And that, ladies and gentlemen, is the real beginning of Anamnesis… . P.S. Till now development was slower as I needed to focus on my studies and stuff, but from now on, things should be swifter…. :)...
|
1792471801.0470006
|
1793335801.0470006
|
|
68325
|
ODM Custom Controller Macropad by @angiraa | Stard ODM Custom Controller Macropad by @angiraa | Stardance...
|
angiraa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ODM Custom Controller Macropad by @angiraa Title: ODM Custom Controller Macropad by @angiraa | Stardance...
|
1793119967.988024
|
1793724767.988024
|
|
68326
|
VTOL by @Nyrox | Stardance
|
Nyrox
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: VTOL by @Nyrox | Stardance
|
1793119968.8761413
|
1793724768.8761413
|
|
68327
|
Edit_X by @SimplifCoder | Stardance
|
SimplifCoder
|
0
|
12.22
|
0
|
[]
|
[{"post_id": 78674, "ts": "202 [{"post_id": 78674, "ts": "2026-10-11T08:22:22Z", "hours": 3.6094, "text": "Devlog #4 So as of this devlog I’m proud to announce ; Ladies and gentlemen the website is broken; Let me explain, so I was causally doing the js, then I thought came to me, what if… then I started tinkering with the html, and now boom, I refreshed the page its completely blank, I mean I don’t know where I went wrong?? The code looks fine but the website doesn’t?, Ill drop the html code, and how the website looks, if I fix the problem ill upd the devlog"}, {"post_id": 78090, "ts": "2026-10-09T15:17:28Z", "hours": 2.4061, "text": "Devlog #3 So as of this devlog I am proud to announce the css is completed . What I completed: CSS, I think? (I hope) HTML, Well mostly fixed Started the JS. The first 2 lines thats it. Problems I ran into: The CSS didn’t work, works now… until I decide to touch it. The HTML completely broke, cuz I forgot to add Welp, That’s mostly it! If you have any suggestions pls do inform me, I’m still new to coding! Cyall, byeeeeeeeeeeeeeeeee"}, {"post_id": 77870, "ts": "2026-10-08T16:41:35Z", "hours": 3.2186, "text": "Devlog #2 So in the last devlog I think I showed yall the page with the bare minimum of css… well this now is the almost completed css. What I completed today : -Made the website look rly nice with cool stuff, like gradients. -Made buttons! yea, buttons that click! and work! The problems I ran into: The css didn’t even connect to the html at first (quick fix) The gradients aren’t in the right colors, in fact most of the colors look nice but, I’m planning to change them to an space black theme, or an ocean blue theme. Pls do comment your suggestions, I always love advice, I’m ready to improve Cyall byeeeeeeeeeeeee"}, {"post_id": 77519, "ts": "2026-10-07T09:41:13Z", "hours": 2.9819, "text": "#Devlog #1 This is an brand new project I’m making, Its going to be an simple platform used make fire edits. What I completed today: Wrote the basic introduction to the website. Coded an upload button Problem I’m running into: -The upload button takes the files then shows an error -The css file doesn’t work…. At all. I would love feedback and how to fix the stuff, Cyall"}]...
|
Title: Edit_X by @SimplifCoder | Stardance
Devlog Title: Edit_X by @SimplifCoder | Stardance
Devlogs:
#Devlog #1 This is an brand new project I’m making, Its going to be an simple platform used make fire edits. What I completed today: Wrote the basic introduction to the website. Coded an upload button Problem I’m running into: -The upload button takes the files then shows an error -The css file doesn’t work…. At all. I would love feedback and how to fix the stuff, Cyall
Devlog #2 So in the last devlog I think I showed yall the page with the bare minimum of css… well this now is the almost completed css. What I completed today : -Made the website look rly nice with cool stuff, like gradients. -Made buttons! yea, buttons that click! and work! The problems I ran into: The css didn’t even connect to the html at first (quick fix) The gradients aren’t in the right colors, in fact most of the colors look nice but, I’m planning to change them to an space black theme, or an ocean blue theme. Pls do comment your suggestions, I always love advice, I’m ready to improve Cyall byeeeeeeeeeeeee
Devlog #3 So as of this devlog I am proud to announce the css is completed . What I completed: CSS, I think? (I hope) HTML, Well mostly fixed Started the JS. The first 2 lines thats it. Problems I ran into: The CSS didn’t work, works now… until I decide to touch it. The HTML completely broke, cuz I forgot to add Welp, That’s mostly it! If you have any suggestions pls do inform me, I’m still new to coding! Cyall, byeeeeeeeeeeeeeeeee
Devlog #4 So as of this devlog I’m proud to announce ; Ladies and gentlemen the website is broken; Let me explain, so I was causally doing the js, then I thought came to me, what if… then I started tinkering with the html, and now boom, I refreshed the page its completely blank, I mean I don’t know where I went wrong?? The code looks fine but the website doesn’t?, Ill drop the html code, and how the website looks, if I fix the problem ill upd the devlog...
|
1793119969.958875
|
1793983969.958875
|
|
68328
|
My awesome macropad! by @Coralei | Stardance
|
Coralei
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Coralei | Stardanc Title: My awesome macropad! by @Coralei | Stardance...
|
1793119971.7230248
|
1793724771.7230248
|
|
68329
|
Vensin.dev Sakura by @Vensin | Stardance
|
Vensin
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-07T20:11:37Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I rebuilt my personal site completely from scratch (vensin.dev v2). The old site had been sitting behind a maintenance page since September while I worked on this one. The look is a cozy old-web style: pixel fonts, little windows with their own title bars, a starry sky in the background. The sidebar is the centerpiece and it’s genuinely alive. It shows my Discord status in real time, coding (with the project and file I’m working on), watching anime, listening to music, playing games, or watching YouTube, each rendered differently depending on what I’m actually doing. My Apple Watch rings show up there too, synced through a Shortcuts automation on my phone. There’s also a “today” widget and a live visitor counter in the footer. The music page is more than just now-playing. Every 30 seconds the site polls Spotify and logs it, and I also imported my full official Spotify data export, so the yearly stats, top tracks, top artists and listening clock are based on real history, not just what the site has seen since launch. The anime page works the same way: a watch log scraped automatically, with weekly bars and badges for seasons I’ve actually finished. The whole site changes with the calendar. Each season has its own particles and color palette, and certain days lock in a special look no matter what you pick yourself: Halloween, Christmas (with a sleigh flying across the sky), New Year, Valentine’s Day, my birthday, and April Fools, which breaks almost everything on purpose for one day. There’s a guestbook with spam and keyword filtering plus a honeypot field, and a contact form that pings me directly on Discord with buttons to approve or reject what came in. Everything on the site, messages, gallery, projects, and a cache of everything pulled from outside APIs, lives in one SQLite file, and a background scheduler keeps that cache warm so visitors never wait on an external API. Nightly backups get encrypted and shipped off-site automatically. My pixel cat Mochi lives in the sidebar and reacts to what I’m doing. She dresses for the season, falls asleep in the browser tab icon when you switch away, and has her own idle clicker game complete with a shop, upgrades, achievements, and a prestige system. There’s also a hidden moon scene easter egg somewhere on the site that I won’t spoil here. The hardest part was keeping everything in sync without it turning into a mess: one database backing the entire site, a scheduler that refreshes different data on different intervals, and a Discord activity system built so that adding support for a new app is just dropping in one small handler file. Getting the whole thing ready to self-host on a Raspberry Pi, including its own Impressum and a proper cookie consent flow, was also its own project on top of everything else. What I’m proud of: there’s no tracking, no ads, it’s fully self-hosted on my own hardware, and it actually feels alive instead of being a static portfolio page. To test it, sign the guestbook, poke Mochi in the sidebar, click into the music and anime pages to see the real live data, and try changing the season picker in the footer.", "repo": "https://github.com/vxnsin/vensin-portfolio-v2", "demo": "https://vensin.dev"}]...
|
[{"post_id": 77673, "ts": "202 [{"post_id": 77673, "ts": "2026-10-07T19:57:25Z", "hours": 0.2811, "text": "Hello my little Stardancers ✨ Devlog #5 for vensin.dev v2: this one’s all about Mochi, my pixel cat, who has quietly become the most work-intensive feature on the whole site. First, the anime page got a real watch log. Every episode gets pulled in automatically and turned into weekly bars, a “finished lately” row, and badges for seasons I’ve actually completed, not just started and abandoned like a coward. Then Mochi herself got proper outfits: a flower for spring, sunglasses for summer, a scarf and witch hat for autumn/Halloween, a santa hat for December, and party hats with actual confetti on special days. Hats sit on her ears now instead of floating above her head like she’s being haunted. Then I got distracted and gave her an entire idle game. Click Mochi, buy her upgrades, the upgrades make more mochi while you’re gone, and when the numbers get silly you spend one of her nine lives to prestige and start over with permanent bonuses. There’s a shop, achievements, and a golden mochi that shows up at random for a bonus. I will not be taking questions about how long I spent balancing the math on this. And somewhere in the code there’s a keyboard shortcut that triggers a full-screen moon scene with two people standing on the ground watching it rise. Find it yourself 🫡"}, {"post_id": 77633, "ts": "2026-10-07T18:03:58Z", "hours": 0.2681, "text": "Hello my little Stardancers ✨ Devlog #4 for vensin.dev v2: the site started celebrating holidays without asking me first. The whole look now follows the calendar. Spring gets sakura petals, summer gets fireflies, autumn has leaves tumbling down, winter gets pixel snow sitting on top of every window. Visitors can override it in the footer if they want a different season than the real one. But a few days of the year lock the look no matter what you pick: Halloween gets ghosts and a cobweb, New Year gets fireworks, my birthday gets confetti, Valentine’s gets pixel hearts, and Christmas gets a full sleigh with two reindeer flying across the sky plus presents falling between the snow. April Fools is its own chapter: the title flips upside down, the cursor turns into a rubber duck, buttons physically dodge your mouse once, and the date claims it’s March 32nd. I will not apologize for any of this. The site can also talk back now. There’s a guestbook with spam filtering (links, slurs, keyboard mashing, a honeypot field bots can’t resist filling in) and a contact form that pings me directly on Discord with a button to approve or reject what came in, so I don’t have to open the admin panel just to read a message. And since all of this now lives in one SQLite file, I added nightly backups: a compressed copy gets made automatically, encrypted, and shipped off to an offsite file host, so a dead SD card can’t just erase the whole site."}, {"post_id": 77596, "ts": "2026-10-07T16:05:14Z", "hours": 0.27, "text": "Hello my little Stardancers ✨ Devlog #3 for vensin.dev v2: the music page, and the boring stuff that makes the fun stuff work. First the boring part, I promise it’s short. Everything on the site now lives in one SQLite file: messages, gallery, projects, and a cache for everything the site pulls from outside. A little scheduler runs inside the server and refreshes the data on its own: Discord every minute, GitHub every hour, anime posters every hour, and so on. A page view never has to wait for GitHub or Spotify, it just reads from the database. Fast for you, cheap for me. Now the fun part. The music page shows what I’m listening to right now, with the cover and a progress bar. But I wanted more than “now playing”, I wanted stats. So every 30 seconds the site asks Spotify what’s playing and writes it down, and that turns into hours listened this year, my most played tracks and artists, and a listening clock that shows at which hour I listen the most. Spoiler: it’s 10 PM, and it’s a lot of System Of A Down. The problem was that the site only counts from the day I turned it on. So I added an import for Spotify’s official data export, and now the yearly stats are real instead of “you listened to 4 songs in 2026”. Spotify then tried its best to break everything: podcasts that aren’t songs, local files with no cover, and a playlist field that got renamed. All handled now, and I’m only a little bit traumatized."}, {"post_id": 77581, "ts": "2026-10-07T15:10:18Z", "hours": 0.3097, "text": "Hello my little Stardancers ✨ Devlog #2 for vensin.dev v2, and the site finally has a face. I went full old-web: pixel fonts, little windows with traffic-light buttons, a starry sky in the background, and at first even cherry blossom petals floating around. I removed those after they kept drifting next to the title and looking like dead pixels. All the icons are pixel art too. I first traced the Steam logo by hand three times, and when it still looked like a potato, I switched to a proper pixel icon set. The real star is the sidebar, because it’s alive. The Discord window shows what I’m doing right now. If I’m coding, you see the project, the file and how many errors VS Code is yelling at me about. If I’m watching anime, you see the show and the episode. If I’m on YouTube, there’s a progress bar. If Discord reports something the site doesn’t know yet, it sends me a DM so I can teach it. Below that, a “today” window flips between the date and the time in Tokyo, and my Apple Watch rings show up as little pixel rings, so now the entire internet can see whether I closed my move ring today. Bold of me, I know. Next devlog: the music page, the anime log, and everything that keeps the data running behind the scenes 🫡"}, {"post_id": 77359, "ts": "2026-10-06T17:32:25Z", "hours": 7.2328, "text": "Hello my little Stardancers ✨Welcome to the very first devlog of vensin.dev “sakura” v2! So, I already have a portfolio. It works, it’s fine, and I don’t like it anymore. It looks like every other developer portfolio out there: a hero section, a “hi, I’m a developer” line, some project cards, done. Nothing about it feels like me. So instead of fixing it, I’m doing the most developer thing possible and rebuilding the whole thing from scratch. The idea is a cozy old-web corner of the internet, like the personal sites from back when people made websites just for fun, mixed with a healthy dose of anime energy: pixel fonts, little windows, a starry sky. And it should feel alive. When you visit, you should see what I’m listening to right now, what I’m watching, what I’m coding, and maybe find a few secrets I’ve hidden around. Less “please hire me”, more “come hang out in my room”. The old site goes into maintenance mode while I build, so the pressure is on. (project is already done, but i post it to show the creation process of making the portfolio bc i forgot to put it on stardance)"}]...
|
Title: Vensin.dev Sakura by @Vensin | Stardance
D Title: Vensin.dev Sakura by @Vensin | Stardance
Devlogs:
Hello my little Stardancers ✨Welcome to the very first devlog of vensin.dev “sakura” v2! So, I already have a portfolio. It works, it’s fine, and I don’t like it anymore. It looks like every other developer portfolio out there: a hero section, a “hi, I’m a developer” line, some project cards, done. Nothing about it feels like me. So instead of fixing it, I’m doing the most developer thing possible and rebuilding the whole thing from scratch. The idea is a cozy old-web corner of the internet, like the personal sites from back when people made websites just for fun, mixed with a healthy dose of anime energy: pixel fonts, little windows, a starry sky. And it should feel alive. When you visit, you should see what I’m listening to right now, what I’m watching, what I’m coding, and maybe find a few secrets I’ve hidden around. Less “please hire me”, more “come hang out in my room”. The old site goes into maintenance mode while I build, so the pressure is on. (project is already done, but i post it to show the creation process of making the portfolio bc i forgot to put it on stardance)
Hello my little Stardancers ✨ Devlog #2 for vensin.dev v2, and the site finally has a face. I went full old-web: pixel fonts, little windows with traffic-light buttons, a starry sky in the background, and at first even cherry blossom petals floating around. I removed those after they kept drifting next to the title and looking like dead pixels. All the icons are pixel art too. I first traced the Steam logo by hand three times, and when it still looked like a potato, I switched to a proper pixel icon set. The real star is the sidebar, because it’s alive. The Discord window shows what I’m doing right now. If I’m coding, you see the project, the file and how many errors VS Code is yelling at me about. If I’m watching anime, you see the show and the episode. If I’m on YouTube, there’s a progress bar. If Discord reports something the site doesn’t know yet, it sends me a DM so I can teach it. Below that, a “today” window flips between the date and the time in Tokyo, and my Apple Watch rings show up as little pixel rings, so now the entire internet can see whether I closed my move ring today. Bold of me, I know. Next devlog: the music page, the anime log, and everything that keeps the data running behind the scenes 🫡
Hello my little Stardancers ✨ Devlog #3 for vensin.dev v2: the music page, and the boring stuff that makes the fun stuff work. First the boring part, I promise it’s short. Everything on the site now lives in one SQLite file: messages, gallery, projects, and a cache for everything the site pulls from outside. A little scheduler runs inside the server and refreshes the data on its own: Discord every minute, GitHub every hour, anime posters every hour, and so on. A page view never has to wait for GitHub or Spotify, it just reads from the database. Fast for you, cheap for me. Now the fun part. The music page shows what I’m listening to right now, with the cover and a progress bar. But I wanted more than “now playing”, I wanted stats. So every 30 seconds the site asks Spotify what’s playing and writes it down, and that turns into hours listened this year, my most played tracks and artists, and a listening clock that shows at which hour I listen the most. Spoiler: it’s 10 PM, and it’s a lot of System Of A Down. The problem was that the site only counts from the day I turned it on. So I added an import for Spotify’s official data export, and now the yearly stats are real instead of “you listened to 4 songs in 2026”. Spotify then tried its best to break everything: podcasts that aren’t songs, local files with no cover, and a playlist field that got renamed. All handled now, and I’m only a little bit traumatized.
Hello my little Stardancers ✨ Devlog #4 for vensin.dev v2: the site started celebrating holidays without asking me first. The whole look now follows the calendar. Spring gets sakura petals, summer gets fireflies, autumn has leaves tumbling down, winter gets pixel snow sitting on top of every window. Visitors can override it in the footer if they want a different season than the real one. But a few days of the year lock the look no matter what you pick: Halloween gets ghosts and a cobweb, New Year gets fireworks, my birthday gets confetti, Valentine’s gets pixel hearts, and Christmas gets a full sleigh with two reindeer flying across the sky plus presents falling between the snow. April Fools is its own chapter: the title flips upside down, the cursor turns into a rubber duck, buttons physically dodge your mouse once, and the date claims it’s March 32nd. I will not apologize for any of this. The site can also talk back now. There’s a guestbook with spam filtering (links, slurs, keyboard mashing, a honeypot field bots can’t resist filling in) and a contact form that pings me directly on Discord with a button to approve or reject what came in, so I don’t have to open the admin panel just to read a message. And since all of this now lives in one SQLite file, I added nightly backups: a compressed copy gets made automatically, encrypted, and shipped off to an offsite file host, so a dead SD card can’t just erase the whole site.
Hello my little Stardancers ✨ Devlog #5 for vensin.dev v2: this one’s all about Mochi, my pixel cat, who has quietly become the most work-intensive feature on the whole site. First, the anime page got a real watch log. Every episode gets pulled in automatically and turned into weekly bars, a “finished lately” row, and badges for seasons I’ve actually completed, not just started and abandoned like a coward. Then Mochi herself got proper outfits: a flower for spring, sunglasses for summer, a scarf and witch hat for autumn/Halloween, a santa hat for December, and party hats with actual confetti on special days. Hats sit on her ears now instead of floating above her head like she’s being haunted. Then I got distracted and gave her an entire idle game. Click Mochi, buy her upgrades, the upgrades make more mochi while you’re gone, and when the numbers get silly you spend one of her nine lives to prestige and start over with permanent bonuses. There’s a shop, achievements, and a golden mochi that shows up at random for a bonus. I will not be taking questions about how long I spent balancing the math on this. And somewhere in the code there’s a keyboard shortcut that triggers a full-screen moon scene with two people standing on the ground watching it rise. Find it yourself 🫡
Ships:
I rebuilt my personal site completely from scratch (vensin.dev v2). The old site had been sitting behind a maintenance page since September while I worked on this one. The look is a cozy old-web style: pixel fonts, little windows with their own title bars, a starry sky in the background. The sidebar is the centerpiece and it’s genuinely alive. It shows my Discord status in real time, coding (with the project and file I’m working on), watching anime, listening to music, playing games, or watching YouTube, each rendered differently depending on what I’m actually doing. My Apple Watch rings show up there too, synced through a Shortcuts automation on my phone. There’s also a “today” widget and a live visitor counter in the footer. The music page is more than just now-playing. Every 30 seconds the site polls Spotify and logs it, and I also imported my full official Spotify data export, so the yearly stats, top tracks, top artists and listening clock are based on real history, not just what the site has seen since launch. The anime page works the same way: a watch log scraped automatically, with weekly bars and badges for seasons I’ve actually finished. The whole site changes with the calendar. Each season has its own particles and color palette, and certain days lock in a special look no matter what you pick yourself: Halloween, Christmas (with a sleigh flying across the sky), New Year, Valentine’s Day, my birthday, and April Fools, which breaks almost everything on purpose for one day. There’s a guestbook with spam and keyword filtering plus a honeypot field, and a contact form that pings me directly on Discord with buttons to approve or reject what came in. Everything on the site, messages, gallery, projects, and a cache of everything pulled from outside APIs, lives in one SQLite file, and a background scheduler keeps that cache warm so visitors never wait on an external API. Nightly backups get encrypted and shipped off-site automatically. My pixel cat Mochi lives in the sidebar and reacts to what I’m doing. She dresses for the season, falls asleep in the browser tab icon when you switch away, and has her own idle clicker game complete with a shop, upgrades, achievements, and a prestige system. There’s also a hidden moon scene easter egg somewhere on the site that I won’t spoil here. The hardest part was keeping everything in sync without it turning into a mess: one database backing the entire site, a scheduler that refreshes different data on different intervals, and a Discord activity system built so that adding support for a new app is just dropping in one small handler file. Getting the whole thing ready to self-host on a Raspberry Pi, including its own Impressum and a proper cookie consent flow, was also its own project on top of everything else. What I’m proud of: there’s no tracking, no ads, it’s fully self-hosted on my own hardware, and it actually feels alive instead of being a static portfolio page. To test it, sign the guestbook, poke Mochi in the sidebar, click into the music and anime pages to see the real live data, and try changing the season picker in the footer....
|
1793220920.5279484
|
1793307320.5279484
|
|
68330
|
RFID Door Lock System by @Ram1 | Stardance
|
Ram1
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: RFID Door Lock System by @Ram1 | Stardance
|
1793119973.5401092
|
1793724773.5401092
|
|
68331
|
Option Pricing Calculator by @adityakashyapxyz | S Option Pricing Calculator by @adityakashyapxyz | Stardance...
|
adityakashyapxyz
|
0
|
13.16
|
0
|
[]
|
[{"post_id": 77458, "ts": "202 [{"post_id": 77458, "ts": "2026-10-07T02:34:53Z", "hours": 8.7667, "text": "Good morning"}, {"post_id": 77354, "ts": "2026-10-06T17:16:13Z", "hours": 4.3981, "text": "Started working on the option pricing project"}]...
|
Title: Option Pricing Calculator by @adityakashyap Title: Option Pricing Calculator by @adityakashyapxyz | Stardance
Devlogs:
Started working on the option pricing project
Good morning...
|
1793119975.7182322
|
1793724775.7182322
|
|
68332
|
My own site! by @Smaya | Stardance
|
Smaya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Smaya | Stardance
|
1793119977.7748427
|
1793724777.7748427
|
|
68333
|
Untitled project by @Pendown | Stardance
|
Pendown
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Pendown | Stardance
|
1793119978.6361783
|
1793724778.6361783
|
|
68334
|
Beacon by @dhruvrsingh | Stardance
|
dhruvrsingh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Beacon by @dhruvrsingh | Stardance
|
1793119980.4079423
|
1793724780.4079423
|
|
68335
|
Blueprint by @dhruvrsingh | Stardance
|
dhruvrsingh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Blueprint by @dhruvrsingh | Stardance
|
1793119982.4884708
|
1793724782.4884708
|
|
68336
|
raspberry pi hole! by @emilia-fish | Stardance
|
emilia-fish
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: raspberry pi hole! by @emilia-fish | Starda Title: raspberry pi hole! by @emilia-fish | Stardance...
|
1793119984.7849462
|
1793724784.7849462
|
|
68337
|
My Personal Website by @udayprakashgupta999 | Star My Personal Website by @udayprakashgupta999 | Stardance...
|
udayprakashgupta999
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My Personal Website by @udayprakashgupta999 Title: My Personal Website by @udayprakashgupta999 | Stardance...
|
1793119986.6682205
|
1793724786.6682205
|
|
68338
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792871530.5479853
|
1793735530.5479853
|
|
68339
|
my blog by @LPcomix123 | Stardance
|
LPcomix123
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my blog by @LPcomix123 | Stardance
|
1793119988.4337888
|
1793724788.4337888
|
|
68340
|
Online Emergency Platform by @EhtishamCodes | Star Online Emergency Platform by @EhtishamCodes | Stardance...
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Online Emergency Platform by @EhtishamCodes Title: Online Emergency Platform by @EhtishamCodes | Stardance...
|
1793119990.441854
|
1793724790.441854
|
|
68341
|
BLARE by @Adarsh123 | Stardance
|
Adarsh123
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @Adarsh123 | Stardance
|
1793119993.6942859
|
1793724793.6942859
|
|
68342
|
My awesome macropad! by @sonu | Stardance
|
sonu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @sonu | Stardance
|
1793119995.7321465
|
1793724795.7321465
|
|
68343
|
sorry I'm moving these by @Eucatastrophe | Sta sorry I'm moving these by @Eucatastrophe | Stardance...
|
Eucatastrophe
|
0
|
13.46
|
0
|
[]
|
[{"post_id": 82133, "ts": "202 [{"post_id": 82133, "ts": "2026-10-24T01:34:59Z", "hours": 3.0214, "text": "this is version 4! version 5 had one less gear segment & doesn’t have the last gear, and v6 be will the final prod model if v5 works"}, {"post_id": 80863, "ts": "2026-10-19T02:44:46Z", "hours": 0.2589, "text": "Possible V4? OK SO friction is a huge problem, bearings staying in place is a problem, gluing stuff together with gel cyanoacrylate is a huge problem. This is going to take longer than I thought lol. Namely, I have to rethink the design,, along with backdriving a DC motor anyway. But it worked a couple times, temporarily."}, {"post_id": 80069, "ts": "2026-10-16T04:38:58Z", "hours": 0.9492, "text": "hopefully that works, had to hunt down the datasheet from this obscure aliexpress product"}, {"post_id": 79676, "ts": "2026-10-15T01:13:16Z", "hours": 3.0164, "text": "there’s nothing wrong with v2 theoretically, but I made a v3 that would make it more compact and fit better with small bearings. so here’s v3!"}, {"post_id": 79216, "ts": "2026-10-13T02:03:46Z", "hours": 0.3344, "text": "nicer looking gears!"}, {"post_id": 78647, "ts": "2026-10-11T05:07:07Z", "hours": 1.7058, "text": "watch me haul ass to a gear system instead of using pulleys new gear system is 20/9 * (52/9) * (52/9) * (20/9) = 165:1"}, {"post_id": 77754, "ts": "2026-10-08T05:15:59Z", "hours": 0.3069, "text": "It generates 3 volts yay At a pretty slow spin it generates 3 volts! I’ll probably add an attachment to spin it with. Also here’s my collection of parts so far, the top wheels snap-fit into the bottom ones!"}, {"post_id": 77553, "ts": "2026-10-07T12:47:38Z", "hours": 0.3069, "text": "Made a schematic and worked on the README Good 5AM everybody :> Here’s a schematic! . Since DC motors are gonna output anywhere from -9V to 9V depending on how fast/how we crank the dynamo, we’ll need something to turn it into a stable 5V in a USB-C. . This uses a full bridge rectifier (schottky diodes) to make the voltage positive. The amperage of this generated voltage is super low, so the UPS module will use it to power a battery, which then trickles high amp voltage into the phone."}, {"post_id": 77542, "ts": "2026-10-07T12:11:43Z", "hours": 3.565, "text": "Worked on a CAD! This is a dynamo, for backdriving a DC motor to produce a voltage across both ends. The purpose, ultimately, is to be able to convert it into a stable 5V at enough amps to charge a phone. First we’d have to get the motor spinning though, at about 8300 RPM / 60 = 138 RPS. I thought about using a gear train to backdrive it but there seems to be too much friction, so I’m using a wheel and rubber band system. The ratio is about 6:1 *8:1, for a total of 48:1. So hopefully brisk spins would work? Otherwise, we would just need one really big sprocket."}]...
|
Title: sorry I'm moving these by @Eucatastroph Title: sorry I'm moving these by @Eucatastrophe | Stardance
Devlogs:
Worked on a CAD! This is a dynamo, for backdriving a DC motor to produce a voltage across both ends. The purpose, ultimately, is to be able to convert it into a stable 5V at enough amps to charge a phone. First we’d have to get the motor spinning though, at about 8300 RPM / 60 = 138 RPS. I thought about using a gear train to backdrive it but there seems to be too much friction, so I’m using a wheel and rubber band system. The ratio is about 6:1 *8:1, for a total of 48:1. So hopefully brisk spins would work? Otherwise, we would just need one really big sprocket.
Made a schematic and worked on the README Good 5AM everybody :> Here’s a schematic! . Since DC motors are gonna output anywhere from -9V to 9V depending on how fast/how we crank the dynamo, we’ll need something to turn it into a stable 5V in a USB-C. . This uses a full bridge rectifier (schottky diodes) to make the voltage positive. The amperage of this generated voltage is super low, so the UPS module will use it to power a battery, which then trickles high amp voltage into the phone.
It generates 3 volts yay At a pretty slow spin it generates 3 volts! I’ll probably add an attachment to spin it with. Also here’s my collection of parts so far, the top wheels snap-fit into the bottom ones!
watch me haul ass to a gear system instead of using pulleys new gear system is 20/9 * (52/9) * (52/9) * (20/9) = 165:1
nicer looking gears!
there’s nothing wrong with v2 theoretically, but I made a v3 that would make it more compact and fit better with small bearings. so here’s v3!
hopefully that works, had to hunt down the datasheet from this obscure aliexpress product
Possible V4? OK SO friction is a huge problem, bearings staying in place is a problem, gluing stuff together with gel cyanoacrylate is a huge problem. This is going to take longer than I thought lol. Namely, I have to rethink the design,, along with backdriving a DC motor anyway. But it worked a couple times, temporarily.
this is version 4! version 5 had one less gear segment & doesn’t have the last gear, and v6 be will the final prod model if v5 works...
|
1793119999.1444235
|
1793724799.1444235
|
|
68344
|
hackpad thingy by @chezburger | Stardance
|
chezburger
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: hackpad thingy by @chezburger | Stardance
|
1793120001.5523057
|
1793724801.5523057
|
|
68345
|
hackpad thingy by @chezburger | Stardance
|
chezburger
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: hackpad thingy by @chezburger | Stardance
|
1793120003.8810048
|
1793724803.8810048
|
|
68346
|
WarioWare Game by @tlen | Stardance
|
tlen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @tlen | Stardance
|
1793120004.7258582
|
1793724804.7258582
|
|
68347
|
College roommate match by @elliebuff | Stardance
|
elliebuff
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: College roommate match by @elliebuff | Star Title: College roommate match by @elliebuff | Stardance...
|
1793120006.4346976
|
1793724806.4346976
|
|
68348
|
GravOS by @obedot | Stardance
|
obedot
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T19:44:41Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "GravOS is now complete! I made a simple web-based operating system with a basic desktop UI. GravOS is about a robot named Grav, who is a character from my game SuperOrbital. Grav is an assistant that helps the main character on their journey. One of the things I found challenging was making the scrolling work correctly inside the apps. When the text wouldn’t fit inside the window, it would just overflow past the boundaries of the window instead of creating a scrollbar and clipping the content. Eventually I figured it out by changing the css display property from block to flex. I am very proud of the parallaxing background, because I think it looks really cool unique. The images themselves were copied over from my other project, but getting the scrolling to work correctly took a bit of time. You can test the project by clicking the Try Project link. You can click on the buttons on the bottom bar such as “Welcome”, “Check Out SuperOrbital” and “Todo List” to open up the apps, and click the X icon in the top right corner of the window to close it. You can drag windows around by clicking and dragging on the top part of the window.", "repo": "https://github.com/ObedH/GravOS", "demo": "https://obedh.github.io/GravOS/"}]...
|
[{"post_id": 78850, "ts": "202 [{"post_id": 78850, "ts": "2026-10-11T19:20:52Z", "hours": 0.6978, "text": "Added a space-themed parallaxing background and a todo list app Making the background was a little bit tricky. I originally made the shader for a different project, SuperOrbital. I used Godot’s movie maker to render the three different parallax layers to images, then I used css to make the images repeat and slide at different speeds. The todo list was really quite easy to make, it’s just a list of checkboxes and text input fields."}, {"post_id": 78826, "ts": "2026-10-11T18:16:53Z", "hours": 0.3225, "text": "Added a new window which tells you about SuperOrbital It took me a while to get the scrolling working on the windows, but I have now successfully added a second functional application which can show you one of my other projects. SuperOrbital is a game I made in Godot for stardance, and it’s basically the theme of this WebOS."}, {"post_id": 77950, "ts": "2026-10-08T22:50:26Z", "hours": 0.9628, "text": "Added an app that lets you check out SuperOrbital (another game I made) The scrollbar is acting weird, and the text overflows, but I couldn’t figure out how to fix it."}, {"post_id": 77683, "ts": "2026-10-07T21:07:04Z", "hours": 2.0906, "text": "I set up the basic desktop interface (mostly just following the WebOS tutorial at this stage) I just got started on GravOS, a web OS about a fictional robot assistant named Grav. Grav is a character in SuperOrbital, which is another one of my stardance projects. Here, I made a simple background and a window that can open and close. I used the WebOS tutorial to learn how to use HTML and CSS, and I found it very helpful."}]...
|
Title: GravOS by @obedot | Stardance
Devlogs:
I s Title: GravOS by @obedot | Stardance
Devlogs:
I set up the basic desktop interface (mostly just following the WebOS tutorial at this stage) I just got started on GravOS, a web OS about a fictional robot assistant named Grav. Grav is a character in SuperOrbital, which is another one of my stardance projects. Here, I made a simple background and a window that can open and close. I used the WebOS tutorial to learn how to use HTML and CSS, and I found it very helpful.
Added an app that lets you check out SuperOrbital (another game I made) The scrollbar is acting weird, and the text overflows, but I couldn’t figure out how to fix it.
Added a new window which tells you about SuperOrbital It took me a while to get the scrolling working on the windows, but I have now successfully added a second functional application which can show you one of my other projects. SuperOrbital is a game I made in Godot for stardance, and it’s basically the theme of this WebOS.
Added a space-themed parallaxing background and a todo list app Making the background was a little bit tricky. I originally made the shader for a different project, SuperOrbital. I used Godot’s movie maker to render the three different parallax layers to images, then I used css to make the images repeat and slide at different speeds. The todo list was really quite easy to make, it’s just a list of checkboxes and text input fields.
Ships:
GravOS is now complete! I made a simple web-based operating system with a basic desktop UI. GravOS is about a robot named Grav, who is a character from my game SuperOrbital. Grav is an assistant that helps the main character on their journey. One of the things I found challenging was making the scrolling work correctly inside the apps. When the text wouldn’t fit inside the window, it would just overflow past the boundaries of the window instead of creating a scrollbar and clipping the content. Eventually I figured it out by changing the css display property from block to flex. I am very proud of the parallaxing background, because I think it looks really cool unique. The images themselves were copied over from my other project, but getting the scrolling to work correctly took a bit of time. You can test the project by clicking the Try Project link. You can click on the buttons on the bottom bar such as “Welcome”, “Check Out SuperOrbital” and “Todo List” to open up the apps, and click the X icon in the top right corner of the window to close it. You can drag windows around by clicking and dragging on the top part of the window....
|
1793220923.6274471
|
1793307323.6274471
|
|
68349
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792871531.3715956
|
1793735531.3715956
|
|
68350
|
My awesome macropad! by @Raeed | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Raeed | Stardance
|
1793120008.785005
|
1793724808.785005
|
|
68351
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792871540.3848326
|
1793735540.3848326
|
|
68352
|
My awesome macropad! by @Theo_Ss | Stardance
|
Theo_Ss
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Theo_Ss | Stardanc Title: My awesome macropad! by @Theo_Ss | Stardance...
|
1793120010.8409607
|
1793724810.8409607
|
|
68353
|
my APOD site by @mailto_harsh_patil | Stardance
|
mailto_harsh_patil
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @mailto_harsh_patil | Stard Title: my APOD site by @mailto_harsh_patil | Stardance...
|
1793120011.735036
|
1793724811.735036
|
|
68354
|
Archery by @Sadiya | Stardance
|
Sadiya
|
1
|
2.0
|
13
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T21:46:55Z", "hours": 2.0, "multiplier": 5.17, "payout": 13, "blessing": "neutral", "text": "I made Archery where the player use their touchpad to shoot at a moving target. The goal is to earn as many points as possible before the timer runs out or the player gets three misses and the game is over. A challenge was getting the JS to work such as the canvas to make the arrows and target. I am proud of being able to finally ship this project since it took me awhile because of school.", "repo": "https://github.com/sadiyameem/archery", "demo": "https://sadiyameem.github.io/archery/"}]...
|
[{"post_id": 80013, "ts": "202 [{"post_id": 80013, "ts": "2026-10-15T23:40:34Z", "hours": 0.4144, "text": "I have finished this project and I plan on writing a readme but haven’t gotten the time to (main reason is school) so hopefully I can get it done as so as I can so I can ship this project. Here is a video of how it looks."}, {"post_id": 79191, "ts": "2026-10-12T23:34:06Z", "hours": 0.8489, "text": "So far I have improved this by fixing the errors in my JS and changing things in my CSS and it is looking betters than before. Here is a video showing how it is so far."}, {"post_id": 78824, "ts": "2026-10-11T18:12:51Z", "hours": 1.2189, "text": "This is what I have so far and it does not look how I expect it to look so I know there are issues, so I will be looking into that but this is what I have so far as of writing all of the code."}]...
|
Title: Archery by @Sadiya | Stardance
Devlogs:
Th Title: Archery by @Sadiya | Stardance
Devlogs:
This is what I have so far and it does not look how I expect it to look so I know there are issues, so I will be looking into that but this is what I have so far as of writing all of the code.
So far I have improved this by fixing the errors in my JS and changing things in my CSS and it is looking betters than before. Here is a video showing how it is so far.
I have finished this project and I plan on writing a readme but haven’t gotten the time to (main reason is school) so hopefully I can get it done as so as I can so I can ship this project. Here is a video of how it looks.
Ships:
I made Archery where the player use their touchpad to shoot at a moving target. The goal is to earn as many points as possible before the timer runs out or the player gets three misses and the game is over. A challenge was getting the JS to work such as the canvas to make the arrows and target. I am proud of being able to finally ship this project since it took me awhile because of school....
|
1793155852.6012313
|
1793242252.6012313
|
|
68355
|
Birch&Beech website by @neo | Stardance
|
neo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Birch&Beech website by @neo | Stardance
|
1793120014.6652913
|
1793724814.6652913
|
|
68356
|
3D video game by @Griffin215 | Stardance
|
Griffin215
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 3D video game by @Griffin215 | Stardance
|
1793120016.7023616
|
1793724816.7023616
|
|
68357
|
playground by @tito_hippert | Stardance
|
tito_hippert
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: playground by @tito_hippert | Stardance
|
1793120018.4493864
|
1793724818.4493864
|