|
5101
|
My first slack bot! by @ajayyadav | Stardance
|
ajayyadav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @ajayyadav | Stardan Title: My first slack bot! by @ajayyadav | Stardance...
|
1793156075.4230764
|
1793760875.4230764
|
|
5102
|
Rocket simulator by @stroodle | Stardance
|
stroodle
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Rocket simulator by @stroodle | Stardance
|
1792702194.6353815
|
1793306994.6353815
|
|
5103
|
My first slack bot! by @astrobuggies | Stardance
|
astrobuggies
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @astrobuggies | Star Title: My first slack bot! by @astrobuggies | Stardance...
|
1792641133.8732662
|
1793245933.8732662
|
|
5104
|
My awesome macropad! by @aazoozgyawali | Stardance
|
aazoozgyawali
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @aazoozgyawali | St Title: My awesome macropad! by @aazoozgyawali | Stardance...
|
1792666500.9448502
|
1793271300.9448502
|
|
5105
|
My first slack bot! by @Az | Stardance
|
Az
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Az | Stardance
|
1792677100.4265277
|
1793281900.4265277
|
|
5106
|
Untitled by @aazoozgyawali | Stardance
|
aazoozgyawali
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @aazoozgyawali | Stardance
|
1793181372.251335
|
1793786172.251335
|
|
5107
|
GAI by @samuel_0xk | Stardance
|
samuel_0xk
|
0
|
24.36
|
0
|
[]
|
[{"post_id": 38823, "ts": "202 [{"post_id": 38823, "ts": "2026-08-01T11:58:28Z", "hours": 10.3825, "text": "GAI v0.6.0 – what changed since v0.5.0 Hi everyone 👋 My last devlogs were about GAI v0.5.0 and the new prompt builder, history system, and token budgeting. I originally thought the next release would mainly contain a few fixes. But while using GAI in a real application, I kept finding places where the abstractions were still too simple. Around 280 commits later, this turned into a much bigger release. The most important changes Added full OpenAI and Anthropic providers, alongside the existing Gemini and Mistral integrations. Added provider-native multi-turn messages instead of putting the whole conversation into one large rendered prompt. Added Workflow.RunEvents , which returns one ordered stream for tokens, retries, iterations, errors, cancellation, and completion. Added model capability descriptors, so applications can check whether a model supports tools, structured output, reasoning, tokenization, and native messages. Added local request validation, so unsupported combinations fail before making a provider request. Added an optional OpenAI Responses API transport with streaming, tool continuation, reasoning context, usage, and better error handling. Added workflow middleware for things such as memory extraction, auditing, formatting, and evaluations. Added OpenTelemetry tracing and an optional Langfuse exporter. Reworked the README and added a complete runnable order-support agent example. Added a lot more provider, workflow, tool, streaming, and end-to-end tests. One important problem I fixed Previously, a model could receive tool definitions twice: Through the provider’s native tool API. As a JSON tool protocol inside the rendered prompt. This wasted tokens and gave the model two different ways to call the same tool. GAI now decides between native and text-based tool transport once when the workflow is created. Native models receive AIRequest.Tools , while other models receive the text fallback. The runtime tools remain executable in both cases. The hardest part Honestly, adding more providers was not the hardest part. The difficult part was keeping one shared Go API without hiding useful provider-specific features. OpenAI, Anthropic, Gemini, and Mistral all represent tools, history, reasoning, streaming, and errors differently. Making everything look identical would remove useful features, but exposing every provider detail would make the abstraction pointless. The new capability descriptor system was my solution. A feature can be supported, unsupported, or unknown, and GAI can validate requests based on the information it actually has. Smaller API changes Because GAI is still pre-v1, I also cleaned up some APIs: NativeMessageBuilder now returns both the compatibility prompt and native messages together. NativeToolModel is deprecated in favor of the more complete ModelDescriber . Workflow.RunEvents is now the recommended API for primary-agent streaming. The older three-channel workflow API remains for middleware compatibility. What I learned The biggest lesson from this release is that an abstraction should not pretend every provider works in exactly the same way. It is better to expose capabilities clearly and fail early than to discover an unsupported combination after opening a stream or calling a tool. GAI is still pre-v1, but it now feels much more like a real agent runtime instead of only a collection of prompt and loop helpers. Repository: https://github.com/lace-ai/gai"}, {"post_id": 12059, "ts": "2026-06-19T17:46:38Z", "hours": 1.3256, "text": "finally I made it v0.5.0 is finish!! v0.5.0 is released • Simpler context.Builder API • Turn-aware history with summarization • Richer OpenTelemetry tracing + debug events • Cleaner agent and model APIs • Better token accounting • Legacy prompt, RAG, and session abstractions removed https://github.com/lace-ai/gai"}, {"post_id": 10104, "ts": "2026-06-16T18:14:24Z", "hours": 4.0831, "text": "What I updated: The history source to include summaries summary agent Prompt Renderer The history source now summarieses the past conversation if it doesn’t fit into the token budget. You can configure it like this: history , err := history . New ( sessionID , store , & history . SummarizerDefinition { Model : model , Enabled : true , }) or create a custom summarizer and pass it in the SummarizerDefinition The Summary agent got some bug fixes and better error handling It doesn’t panic if no model is configured :) The Renderer and the whole Prompt builder is updated with the focus on better renderer final prompts there is now a Render Part function that turns a part into a RenderNode Part and RenderNode can be recursive / hierarchical the default XML Renderer renders something like this: <system>...</system> <history> <user>...</user> <assistant>...</assistant> <user>...</user> .... </history> ...."}, {"post_id": 8711, "ts": "2026-06-14T13:59:03Z", "hours": 8.5656, "text": "Hi, everyone 👋 This is the Devlog of what changed in gai v0.5.0 I have updated the prompt builder and the budget handling for gai, the last couple of days Before there was a AI generated, huge and complex builder full of bugs and problems. Now gai has an intuitive simple and flexible to use prompt builder with build in budget managing The whole builder is build on the concept of an stack that is separated in three parts: System Instructions Context User Prompt / Current Loop System Instructions: These are just static parts that could be just text but also something else, doesn’t matter. There is a helper for loading instructions from a file, that turns these directly into a part that can be used as system instructions. systemInstructions, err := gaictx.LoadPromptFromFile(pathToFile) Context Context is special, it is used for dynamic sources, like history. These sources get rendered at the start of the loop and are just functions that return a part. A source is just an interface: type ContextSource interface { Name() string Function(ctx context.Context, TokenBudget int) (Part, error) } Currently there is just the history source, but in the future I will add some more, but they are meant for the user to implement them self. Current Loop The last section is just the user prompt and the last assistant massages or tool calls (if the assistant calls tools) These are rendered per Iterations. Nothing more. Token Budget The token budget is pretty simple, you pass in a token budget, and reserved output tokens. and the BuildContext function iterates over the sources and passes in the remaining token budget. So Yes, if the first source needs all the budget, the last sources don’t have any budget left. The internal flow is like this: First you pass in the system instructions, context sources, and user prompt: gaictx.New(gaictx.Definition{ SystemInstructions: []gaictx.Part{ systemInstructions, toolInstructions, }, ContextSources: []gaictx.ContextSource{ gaictx.NewHistory(sessionID, store), }, UserPrompt: input.Text, }) Now the stack looks like this: {[part,part], [source], [part]} Then one time at the start of the loop the sources are build: {[part,part], [part], [part]} parts, err := a.PromptBuilder.BuildContext(ctx) On each iteration, the current iterations parts get added to the end, and the prompt gets rendered (default XML render) {[part,part], [source], [part, part, part, part]} => <system>...</system><history><user>...</user></history><userPrompt>...</userPrompt><assistant>...</assistant><tool>...</tool>.... I also updated the way how to build reusable agents. here is a complete example: agent.New(agent.Definition{ Name: \"user-assistant\", Model: model, Tools: []loop.Tool{webSearch}, Prompt: func(ctx context.Context, input agent.RunInput) (gaictx.PromptBuilder, error) { return prompt := gaictx.New(gaictx.Definition{ SystemInstructions: []gaictx.Part{ systemInstructions, toolInstructions, }, ContextSources: []gaictx.ContextSource{ gaictx.NewHistory(sessionID, store), }, UserPrompt: input.Text, }), nil }, }) Work that needs to be done until I publish the new version the history needs to use the summarizer some small bug fixes summery should be more dynamic if it summaries, the summary of turns 1-3 and turns 4-6, this should be somewhere saved, and persisted. maybe some more issues that I find while using the library if someone is rely curios here is the pr: https://github.com/lace-ai/gai/pull/28"}]...
|
Title: GAI by @samuel_0xk | Stardance
Devlogs:
Hi Title: GAI by @samuel_0xk | Stardance
Devlogs:
Hi, everyone 👋 This is the Devlog of what changed in gai v0.5.0 I have updated the prompt builder and the budget handling for gai, the last couple of days Before there was a AI generated, huge and complex builder full of bugs and problems. Now gai has an intuitive simple and flexible to use prompt builder with build in budget managing The whole builder is build on the concept of an stack that is separated in three parts: System Instructions Context User Prompt / Current Loop System Instructions: These are just static parts that could be just text but also something else, doesn’t matter. There is a helper for loading instructions from a file, that turns these directly into a part that can be used as system instructions. systemInstructions, err := gaictx.LoadPromptFromFile(pathToFile) Context Context is special, it is used for dynamic sources, like history. These sources get rendered at the start of the loop and are just functions that return a part. A source is just an interface: type ContextSource interface { Name() string Function(ctx context.Context, TokenBudget int) (Part, error) } Currently there is just the history source, but in the future I will add some more, but they are meant for the user to implement them self. Current Loop The last section is just the user prompt and the last assistant massages or tool calls (if the assistant calls tools) These are rendered per Iterations. Nothing more. Token Budget The token budget is pretty simple, you pass in a token budget, and reserved output tokens. and the BuildContext function iterates over the sources and passes in the remaining token budget. So Yes, if the first source needs all the budget, the last sources don’t have any budget left. The internal flow is like this: First you pass in the system instructions, context sources, and user prompt: gaictx.New(gaictx.Definition{ SystemInstructions: []gaictx.Part{ systemInstructions, toolInstructions, }, ContextSources: []gaictx.ContextSource{ gaictx.NewHistory(sessionID, store), }, UserPrompt: input.Text, }) Now the stack looks like this: {[part,part], [source], [part]} Then one time at the start of the loop the sources are build: {[part,part], [part], [part]} parts, err := a.PromptBuilder.BuildContext(ctx) On each iteration, the current iterations parts get added to the end, and the prompt gets rendered (default XML render) {[part,part], [source], [part, part, part, part]} => <system>...</system><history><user>...</user></history><userPrompt>...</userPrompt><assistant>...</assistant><tool>...</tool>.... I also updated the way how to build reusable agents. here is a complete example: agent.New(agent.Definition{ Name: "user-assistant", Model: model, Tools: []loop.Tool{webSearch}, Prompt: func(ctx context.Context, input agent.RunInput) (gaictx.PromptBuilder, error) { return prompt := gaictx.New(gaictx.Definition{ SystemInstructions: []gaictx.Part{ systemInstructions, toolInstructions, }, ContextSources: []gaictx.ContextSource{ gaictx.NewHistory(sessionID, store), }, UserPrompt: input.Text, }), nil }, }) Work that needs to be done until I publish the new version the history needs to use the summarizer some small bug fixes summery should be more dynamic if it summaries, the summary of turns 1-3 and turns 4-6, this should be somewhere saved, and persisted. maybe some more issues that I find while using the library if someone is rely curios here is the pr: https://github.com/lace-ai/gai/pull/28
What I updated: The history source to include summaries summary agent Prompt Renderer The history source now summarieses the past conversation if it doesn’t fit into the token budget. You can configure it like this: history , err := history . New ( sessionID , store , & history . SummarizerDefinition { Model : model , Enabled : true , }) or create a custom summarizer and pass it in the SummarizerDefinition The Summary agent got some bug fixes and better error handling It doesn’t panic if no model is configured :) The Renderer and the whole Prompt builder is updated with the focus on better renderer final prompts there is now a Render Part function that turns a part into a RenderNode Part and RenderNode can be recursive / hierarchical the default XML Renderer renders something like this: <system>...</system> <history> <user>...</user> <assistant>...</assistant> <user>...</user> .... </history> ....
finally I made it v0.5.0 is finish!! v0.5.0 is released • Simpler context.Builder API • Turn-aware history with summarization • Richer OpenTelemetry tracing + debug events • Cleaner agent and model APIs • Better token accounting • Legacy prompt, RAG, and session abstractions removed https://github.com/lace-ai/gai
GAI v0.6.0 – what changed since v0.5.0 Hi everyone 👋 My last devlogs were about GAI v0.5.0 and the new prompt builder, history system, and token budgeting. I originally thought the next release would mainly contain a few fixes. But while using GAI in a real application, I kept finding places where the abstractions were still too simple. Around 280 commits later, this turned into a much bigger release. The most important changes Added full OpenAI and Anthropic providers, alongside the existing Gemini and Mistral integrations. Added provider-native multi-turn messages instead of putting the whole conversation into one large rendered prompt. Added Workflow.RunEvents , which returns one ordered stream for tokens, retries, iterations, errors, cancellation, and completion. Added model capability descriptors, so applications can check whether a model supports tools, structured output, reasoning, tokenization, and native messages. Added local request validation, so unsupported combinations fail before making a provider request. Added an optional OpenAI Responses API transport with streaming, tool continuation, reasoning context, usage, and better error handling. Added workflow middleware for things such as memory extraction, auditing, formatting, and evaluations. Added OpenTelemetry tracing and an optional Langfuse exporter. Reworked the README and added a complete runnable order-support agent example. Added a lot more provider, workflow, tool, streaming, and end-to-end tests. One important problem I fixed Previously, a model could receive tool definitions twice: Through the provider’s native tool API. As a JSON tool protocol inside the rendered prompt. This wasted tokens and gave the model two different ways to call the same tool. GAI now decides between native and text-based tool transport once when the workflow is created. Native models receive AIRequest.Tools , while other models receive the text fallback. The runtime tools remain executable in both cases. The hardest part Honestly, adding more providers was not the hardest part. The difficult part was keeping one shared Go API without hiding useful provider-specific features. OpenAI, Anthropic, Gemini, and Mistral all represent tools, history, reasoning, streaming, and errors differently. Making everything look identical would remove useful features, but exposing every provider detail would make the abstraction pointless. The new capability descriptor system was my solution. A feature can be supported, unsupported, or unknown, and GAI can validate requests based on the information it actually has. Smaller API changes Because GAI is still pre-v1, I also cleaned up some APIs: NativeMessageBuilder now returns both the compatibility prompt and native messages together. NativeToolModel is deprecated in favor of the more complete ModelDescriber . Workflow.RunEvents is now the recommended API for primary-agent streaming. The older three-channel workflow API remains for middleware compatibility. What I learned The biggest lesson from this release is that an abstraction should not pretend every provider works in exactly the same way. It is better to expose capabilities clearly and fail early than to discover an unsupported combination after opening a stream or calling a tool. GAI is still pre-v1, but it now feels much more like a real agent runtime instead of only a collection of prompt and loop helpers. Repository: https://github.com/lace-ai/gai...
|
1792724056.1263628
|
1793328856.1263628
|
|
5108
|
Homeserver Assistant by @TGStardancer | Stardance
|
TGStardancer
|
1
|
6.05
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-04T00:30:45Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It is an initial version where it makes it easier to set up the screen share and the file system for my mac home server. I learned go and wails.", "repo": "https://github.com/CODERTG2/tether", "demo": "https://github.com/CODERTG2/tether/releases/tag/v1"}]...
|
[{"post_id": 2948, "ts": "2026 [{"post_id": 2948, "ts": "2026-06-05T21:07:26Z", "hours": 1.0836, "text": "scanned ports ui is now a table. I added another simple functionality of being able to ssh with just a click. I had to learn a bit about AppleScript to be able to ssh automatically without needing to type the password."}, {"post_id": 2341, "ts": "2026-06-04T19:42:59Z", "hours": 0.5086, "text": "Port scanning integrated into the app!"}, {"post_id": 2316, "ts": "2026-06-04T19:03:23Z", "hours": 1.4614, "text": "Programmed a port scanner and it worked successfully! Time to integrate it into tether."}, {"post_id": 1720, "ts": "2026-06-03T21:45:31Z", "hours": 1.4164, "text": "Did some reorganization of the codebase. Made IP, username, and password stored across sessions where the password is stored via a keychain. The only thing left to make an initial ship is an icon!!"}, {"post_id": 1628, "ts": "2026-06-03T19:16:21Z", "hours": 1.9811, "text": "Learned the basics of go to make a Wails application for macOS. It has the basic functionality like opening screen share and file system of your homeserver."}]...
|
Title: Homeserver Assistant by @TGStardancer | Sta Title: Homeserver Assistant by @TGStardancer | Stardance
Devlogs:
Learned the basics of go to make a Wails application for macOS. It has the basic functionality like opening screen share and file system of your homeserver.
Did some reorganization of the codebase. Made IP, username, and password stored across sessions where the password is stored via a keychain. The only thing left to make an initial ship is an icon!!
Programmed a port scanner and it worked successfully! Time to integrate it into tether.
Port scanning integrated into the app!
scanned ports ui is now a table. I added another simple functionality of being able to ssh with just a click. I had to learn a bit about AppleScript to be able to ssh automatically without needing to type the password.
Ships:
It is an initial version where it makes it easier to set up the screen share and the file system for my mac home server. I learned go and wails....
|
1793252927.3672378
|
1793339327.3672378
|
|
5109
|
Deleated by @Gui | Stardance
|
Gui
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Deleated by @Gui | Stardance
|
1792781263.4580796
|
1793386063.4580796
|
|
5110
|
Robot Maid 2000 Game by @skyler_heeke | Stardance
|
skyler_heeke
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Robot Maid 2000 Game by @skyler_heeke | Sta Title: Robot Maid 2000 Game by @skyler_heeke | Stardance...
|
1793191675.057639
|
1793796475.057639
|
|
5111
|
My first slack bot! by @kolkatabiriyani2 | Stardan My first slack bot! by @kolkatabiriyani2 | Stardance...
|
kolkatabiriyani2
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @kolkatabiriyani2 | Title: My first slack bot! by @kolkatabiriyani2 | Stardance...
|
1792698819.0212524
|
1793303619.0212524
|
|
5112
|
Mini Keyboard Blob by @Yi | Stardance
|
Yi
|
0
|
1.44
|
0
|
[]
|
[{"post_id": 1008, "ts": "2026 [{"post_id": 1008, "ts": "2026-06-02T19:57:11Z", "hours": 1.4403, "text": "Made a 4-key mini-keyboard with a rotary encoder as a volume controller."}]...
|
Title: Mini Keyboard Blob by @Yi | Stardance
Devl Title: Mini Keyboard Blob by @Yi | Stardance
Devlogs:
Made a 4-key mini-keyboard with a rotary encoder as a volume controller....
|
1792785157.1534724
|
1793389957.1534724
|
|
5113
|
Practice Trading Roblox UGC Limiteds by @porgsrpog Practice Trading Roblox UGC Limiteds by @porgsrpogs | Stardance...
|
porgsrpogs
|
0
|
12.11
|
0
|
[]
|
[{"post_id": 25843, "ts": "202 [{"post_id": 25843, "ts": "2026-07-10T10:04:00Z", "hours": 5.435, "text": "Devlog 2 Project Description: Uses a custom made cloudflare worker to return details on limited items in Roblox such as RAP (Recent Average Price) and Demand (How many of the item was sold within a time period compared to other months/weeks). Changelog: Refactored most of the code to use reusable functions so expandability is easier and it’s simpler to edit certain functionality that many scripts use Details about UGC Limited items are now displayed correctly"}, {"post_id": 24328, "ts": "2026-07-07T20:45:30Z", "hours": 6.6728, "text": "Devlog 1 Project Description: A Roblox game which is used for tracking data on Roblox UGC Limiteds (Similar to stocks) and allows users to use an in-game currency to simulate investing in these items and view how much they could be earning if they made real investments. Changelog: Added an explorer for viewing UGC Limited items Added basic UI so tokens can later be added for making the fake investments Added a basic frame showing analytics of items Added system for retrieving the analytic data using a cloudflare worker I created"}]...
|
Title: Practice Trading Roblox UGC Limiteds by @po Title: Practice Trading Roblox UGC Limiteds by @porgsrpogs | Stardance
Devlogs:
Devlog 1 Project Description: A Roblox game which is used for tracking data on Roblox UGC Limiteds (Similar to stocks) and allows users to use an in-game currency to simulate investing in these items and view how much they could be earning if they made real investments. Changelog: Added an explorer for viewing UGC Limited items Added basic UI so tokens can later be added for making the fake investments Added a basic frame showing analytics of items Added system for retrieving the analytic data using a cloudflare worker I created
Devlog 2 Project Description: Uses a custom made cloudflare worker to return details on limited items in Roblox such as RAP (Recent Average Price) and Demand (How many of the item was sold within a time period compared to other months/weeks). Changelog: Refactored most of the code to use reusable functions so expandability is easier and it’s simpler to edit certain functionality that many scripts use Details about UGC Limited items are now displayed correctly...
|
1792694913.396139
|
1793299713.396139
|
|
5114
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792932780.564273
|
1793796780.564273
|
|
5115
|
My first slack bot! by @kushal56849 | Stardance
|
kushal56849
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @kushal56849 | Stard Title: My first slack bot! by @kushal56849 | Stardance...
|
1792698670.150791
|
1793303470.150791
|
|
5116
|
Coagent by @Alexandermum | Stardance
|
Alexandermum
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Coagent by @Alexandermum | Stardance
|
1793213245.9183981
|
1793818045.9183981
|
|
5117
|
MusicBox by @goosegt710 | Stardance
|
goosegt710
|
0
|
0.29
|
0
|
[]
|
[{"post_id": 1577, "ts": "2026 [{"post_id": 1577, "ts": "2026-06-03T17:55:07Z", "hours": 0.2906, "text": "The MIDI-eval Melodist Started on my music-box journey, or bard-in-a-box as I’d prefer to call it, idea is to use a rotary encoder as a music-box style lever to make an arduino play music through a set of piezo-buzzers, each of a different octave. Humble beginning, but we all start somewhere, this is my very first devlog to commemorate the start, however I encountered my very first problem - I don’t know enough Java to confidently code, so will be stopping rather soon today. Will work on that before I post my next log. Excited for the future, hope to make this funky piece of tech work."}]...
|
Title: MusicBox by @goosegt710 | Stardance
Devlog Title: MusicBox by @goosegt710 | Stardance
Devlogs:
The MIDI-eval Melodist Started on my music-box journey, or bard-in-a-box as I’d prefer to call it, idea is to use a rotary encoder as a music-box style lever to make an arduino play music through a set of piezo-buzzers, each of a different octave. Humble beginning, but we all start somewhere, this is my very first devlog to commemorate the start, however I encountered my very first problem - I don’t know enough Java to confidently code, so will be stopping rather soon today. Will work on that before I post my next log. Excited for the future, hope to make this funky piece of tech work....
|
1793253057.7358434
|
1793857857.7358434
|
|
5118
|
Spotify like app open source by @AlexandruB | Star Spotify like app open source by @AlexandruB | Stardance...
|
AlexandruB
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Spotify like app open source by @AlexandruB Title: Spotify like app open source by @AlexandruB | Stardance...
|
1792713043.4689224
|
1793317843.4689224
|
|
5119
|
Sigma macropad by @Nimoseq | Stardance
|
Nimoseq
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T17:49:41Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a custom macropad for the Hackpad Challenge! The hardest part for me was writing the firmware and getting it all to work properly.", "repo": "https://github.com/N1mos3q/sigma-pad", "demo": ""}]...
|
[{"post_id": 74579, "ts": "202 [{"post_id": 74579, "ts": "2026-09-27T17:45:35Z", "hours": 0.2697, "text": "today i made little changes to the case"}, {"post_id": 26049, "ts": "2026-07-10T17:11:02Z", "hours": 4.6997, "text": "Hackpad name: Sigmapad GitHub Repo: https://github.com/N1mos3q/sigma-pad Description:custom-built 3x3 macropad powered by the Seeed Studio XIAO RP2040. Designed for productivity and gaming, it features a rotary encoder for precise volume control, a 0.91” OLED display for real-time status updates, and 8 addressable RGB LEDs for dynamic underglow lighting. Fully customizable via QMK firmware."}, {"post_id": 4385, "ts": "2026-06-07T18:18:46Z", "hours": 3.2008, "text": "I am making a macropad for a Hackpad mission. And i am currently working on the pcb."}]...
|
Title: Sigma macropad by @Nimoseq | Stardance
Dev Title: Sigma macropad by @Nimoseq | Stardance
Devlogs:
I am making a macropad for a Hackpad mission. And i am currently working on the pcb.
Hackpad name: Sigmapad GitHub Repo: https://github.com/N1mos3q/sigma-pad Description:custom-built 3x3 macropad powered by the Seeed Studio XIAO RP2040. Designed for productivity and gaming, it features a rotary encoder for precise volume control, a 0.91” OLED display for real-time status updates, and 8 addressable RGB LEDs for dynamic underglow lighting. Fully customizable via QMK firmware.
today i made little changes to the case
Ships:
I made a custom macropad for the Hackpad Challenge! The hardest part for me was writing the firmware and getting it all to work properly....
|
1793148723.8749108
|
1793235123.8749108
|
|
5120
|
My first slack bot! by @Eitay | Stardance
|
Eitay
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Eitay | Stardance
|
1793181343.571677
|
1793786143.571677
|
|
5121
|
Untitled by @Joshua_Westrick | Stardance
|
Joshua_Westrick
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Joshua_Westrick | Stardance
|
1793163221.3762553
|
1793768021.3762553
|
|
5122
|
School attendance system by @Gdon | Stardance
|
Gdon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: School attendance system by @Gdon | Stardan Title: School attendance system by @Gdon | Stardance...
|
1793278214.7414827
|
1793883014.7414827
|
|
5123
|
My awesome macropad! by @lukepark62 | Stardance
|
lukepark62
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @lukepark62 | Stard Title: My awesome macropad! by @lukepark62 | Stardance...
|
1792774128.0727966
|
1793378928.0727966
|
|
5124
|
3D Printing Guide Website by @Johnny | Stardance
|
Johnny
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 3D Printing Guide Website by @Johnny | Star Title: 3D Printing Guide Website by @Johnny | Stardance...
|
1792799367.711637
|
1793404167.711637
|
|
5125
|
ignore by @Gerafftes | Stardance
|
Gerafftes
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ignore by @Gerafftes | Stardance
|
1792918431.8152602
|
1793782431.8152602
|
|
5126
|
Escape Game by @Mirage_I | Stardance
|
Mirage_I
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Escape Game by @Mirage_I | Stardance
|
1793238797.2056286
|
1793843597.2056286
|
|
5127
|
A to-do productivity app by @daksh_shah | Stardanc A to-do productivity app by @daksh_shah | Stardance...
|
daksh_shah
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A to-do productivity app by @daksh_shah | S Title: A to-do productivity app by @daksh_shah | Stardance...
|
1792752644.1698718
|
1793357444.1698718
|
|
5128
|
My awesome macropad! by @Potatoes9000 | Stardance
|
Potatoes9000
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Potatoes9000 | Sta Title: My awesome macropad! by @Potatoes9000 | Stardance...
|
1792659036.4996107
|
1793263836.4996107
|
|
5129
|
Boss Battle Music Attempt #3 by @Yi | Stardance
|
Yi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Boss Battle Music Attempt #3 by @Yi | Stard Title: Boss Battle Music Attempt #3 by @Yi | Stardance...
|
1793274793.1838887
|
1793879593.1838887
|
|
5130
|
SteamSense-ESP32-Bathroom-Climate-Monitor by @Gera SteamSense-ESP32-Bathroom-Climate-Monitor by @Gerafftes | Stardance...
|
Gerafftes
|
0
|
2.79
|
0
|
[]
|
[{"post_id": 7652, "ts": "2026 [{"post_id": 7652, "ts": "2026-06-12T19:55:06Z", "hours": 2.3333, "text": "I’ve completed the DigiKey tutorial and searched for the Receptacle USB-C Connector. I’ll use the DX07B024ZJ1C1088. Now, I’ll create the custom ESP32 board ;)"}, {"post_id": 5016, "ts": "2026-06-08T17:45:34Z", "hours": 0.4603, "text": "Started learning KiCad with DigiKey. The annoying part was Hackatime/WakaTime. The timer kept tracking the wrong project and KiCad was not sending progress correctly, even though it was listed as a monitored app. After about an hour of debugging, I found an old .wakatime-project file causing the wrong name and set up a manual KiCad heartbeat command for the correct StarDance project. Not much visible hardware progress today, but the tracking problem is finally understood and mostly fixed :))))"}]...
|
Title: SteamSense-ESP32-Bathroom-Climate-Monitor b Title: SteamSense-ESP32-Bathroom-Climate-Monitor by @Gerafftes | Stardance
Devlogs:
Started learning KiCad with DigiKey. The annoying part was Hackatime/WakaTime. The timer kept tracking the wrong project and KiCad was not sending progress correctly, even though it was listed as a monitored app. After about an hour of debugging, I found an old .wakatime-project file causing the wrong name and set up a manual KiCad heartbeat command for the correct StarDance project. Not much visible hardware progress today, but the tracking problem is finally understood and mostly fixed :))))
I’ve completed the DigiKey tutorial and searched for the Receptacle USB-C Connector. I’ll use the DX07B024ZJ1C1088. Now, I’ll create the custom ESP32 board ;)...
|
1792612452.5031912
|
1793217252.5031912
|
|
5131
|
My first slack bot! by @isaacvsam09 | Stardance
|
isaacvsam09
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @isaacvsam09 | Stard Title: My first slack bot! by @isaacvsam09 | Stardance...
|
1793271179.8956964
|
1793875979.8956964
|
|
5132
|
My first slack bot! by @randomcoder | Stardance
|
randomcoder
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @randomcoder | Stard Title: My first slack bot! by @randomcoder | Stardance...
|
1793256661.3704112
|
1793861461.3704112
|
|
5133
|
Reading Wrapped! by @nanooo | Stardance
|
nanooo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Reading Wrapped! by @nanooo | Stardance
|
1792932856.994905
|
1793796856.994905
|
|
5134
|
Hbp100 by @Erox | Stardance
|
Erox
|
1
|
25.37
|
314
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T08:40:18Z", "hours": 20.0, "multiplier": 15.55, "payout": 314, "blessing": "neutral", "text": "Hbp100 After all the debugging, rewrites, benchmarks, broken builds now Hbp100 v3.1.1 is now release d.. What started as a small python privacy project eventually and became a full Rust implementation with a Python interface. The current version has: A native Rust core Python support through PyO3 Ml-powered contextual privacy decisions Reversible placeholder masking Session-based metadata Extremely low processing latency Releases on GitHub and crates.io There are still edge cases, the extractor can still be improved, and there are plenty of things I want to build next like rayon and multi threaded performance for more speed . It is not like , i have less speed(the current speed is enough to make flash accept defeat) but why not , i use arch btw. and now i can finally sleep at ease .", "repo": "https://github.com/Erox-02/humming-bird-v3", "demo": "https://hbp100-v3-web.vercel.app/"}]...
|
[{"post_id": 67253, "ts": "202 [{"post_id": 67253, "ts": "2026-09-13T10:00:36Z", "hours": 3.2161, "text": "This time i removed all the extractors , and made a new impl to add config from json files or code in python and rust both , it took me a lot of time also i added a website built on hbp100 this time for easier review but dont forget me crate"}, {"post_id": 59769, "ts": "2026-09-01T18:19:08Z", "hours": 2.1569, "text": "This time i fixed the session issue and wrote THE README MYSELF ,took me a lot of time still worth it"}, {"post_id": 57931, "ts": "2026-08-30T08:30:07Z", "hours": 2.0364, "text": "Finally session based metadata added now i can sleep in ease also it is v3.1.1 both on crates and github"}, {"post_id": 54711, "ts": "2026-08-25T19:44:36Z", "hours": 6.9267, "text": "This is probably the most hardcore devlog in this whole session, my task was simply write debug , ask gpt why it didnt work , then deepseek wrote code still didnt work and thts how 7 hrs passed me adding session with persistent memory also with a lot of optimizations , also v3.1.0 is on cargo now , go ahead and check it up for me uWu."}, {"post_id": 53028, "ts": "2026-08-23T12:36:57Z", "hours": 3.2983, "text": "This time it is a huge improvement , it looks like v3 to v3.0.1 but i added pyo3 and python api’s , i mean now even python can use my rust package with rust like speed + safety in python , also i fixed some small bugs in extractor , also added benchmarks (the speed is insane , see on the tagged screenshot ) also the ml is hella fast , in python the ml model only took 3x time than a whole iteration in rust with extractors and pyo3 overhead , also now i have got some more ideas to add in my hbp100 i think those will make it even better and polished.."}, {"post_id": 47281, "ts": "2026-08-15T03:57:56Z", "hours": 5.1125, "text": "today finally i shipped hbp100 v3 on crates “ https://crates.io/crates/hbp100/3.0.0 ” , this time no python runtime full rust even ml in rust thx to lightgbm3 , now it is far faster than the python pkl one , it took me 3+hrs just to train the model and to convert my old python logic into rust , then i had to do the dual readme setup to prevent the bug i came to meet on my last project too , now its fine i made a release on github too , in the crates release there is no “test.rs” but in git release i added tht , the tagged screenshot is result of test"}, {"post_id": 45578, "ts": "2026-08-12T05:11:26Z", "hours": 2.8333, "text": "actually when i started the project i didnt knew abt stardance , still after v2.2 i used it , v2.2 was pure python and really fast but still it didnt convince me , so i went to v3 rust and i tried rust and python hybrid it sucked i am unable to debug the mess i made so i am thinking to write the ml portion in rust too , i have a live website for v2.2 too , i am new to onnx so it might take some time debugging , still my v2.2 was pretty much successful , one can try tht on “ https://github.com/Erox-02/humming-bird-v3/releases/tag/v2.0.0 ” , so next will be v3.0 and i intend to ship the live website as a other project"}]...
|
Title: Hbp100 by @Erox | Stardance
Devlogs:
actua Title: Hbp100 by @Erox | Stardance
Devlogs:
actually when i started the project i didnt knew abt stardance , still after v2.2 i used it , v2.2 was pure python and really fast but still it didnt convince me , so i went to v3 rust and i tried rust and python hybrid it sucked i am unable to debug the mess i made so i am thinking to write the ml portion in rust too , i have a live website for v2.2 too , i am new to onnx so it might take some time debugging , still my v2.2 was pretty much successful , one can try tht on “ https://github.com/Erox-02/humming-bird-v3/releases/tag/v2.0.0 ” , so next will be v3.0 and i intend to ship the live website as a other project
today finally i shipped hbp100 v3 on crates “ https://crates.io/crates/hbp100/3.0.0 ” , this time no python runtime full rust even ml in rust thx to lightgbm3 , now it is far faster than the python pkl one , it took me 3+hrs just to train the model and to convert my old python logic into rust , then i had to do the dual readme setup to prevent the bug i came to meet on my last project too , now its fine i made a release on github too , in the crates release there is no “test.rs” but in git release i added tht , the tagged screenshot is result of test
This time it is a huge improvement , it looks like v3 to v3.0.1 but i added pyo3 and python api’s , i mean now even python can use my rust package with rust like speed + safety in python , also i fixed some small bugs in extractor , also added benchmarks (the speed is insane , see on the tagged screenshot ) also the ml is hella fast , in python the ml model only took 3x time than a whole iteration in rust with extractors and pyo3 overhead , also now i have got some more ideas to add in my hbp100 i think those will make it even better and polished..
This is probably the most hardcore devlog in this whole session, my task was simply write debug , ask gpt why it didnt work , then deepseek wrote code still didnt work and thts how 7 hrs passed me adding session with persistent memory also with a lot of optimizations , also v3.1.0 is on cargo now , go ahead and check it up for me uWu.
Finally session based metadata added now i can sleep in ease also it is v3.1.1 both on crates and github
This time i fixed the session issue and wrote THE README MYSELF ,took me a lot of time still worth it
This time i removed all the extractors , and made a new impl to add config from json files or code in python and rust both , it took me a lot of time also i added a website built on hbp100 this time for easier review but dont forget me crate
Ships:
Hbp100 After all the debugging, rewrites, benchmarks, broken builds now Hbp100 v3.1.1 is now release d.. What started as a small python privacy project eventually and became a full Rust implementation with a Python interface. The current version has: A native Rust core Python support through PyO3 Ml-powered contextual privacy decisions Reversible placeholder masking Session-based metadata Extremely low processing latency Releases on GitHub and crates.io There are still edge cases, the extractor can still be improved, and there are plenty of things I want to build next like rayon and multi threaded performance for more speed . It is not like , i have less speed(the current speed is enough to make flash accept defeat) but why not , i use arch btw. and now i can finally sleep at ease ....
|
1793130498.8010464
|
1793216898.8010464
|
|
5135
|
Untitled by @clayanicholson | Stardance
|
clayanicholson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @clayanicholson | Stardance
|
1793177678.4793904
|
1793782478.4793904
|
|
5136
|
Untitled by @clayanicholson | Stardance
|
clayanicholson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @clayanicholson | Stardance
|
1792810114.3106387
|
1793414914.3106387
|
|
5137
|
Double Jointed Arm by @Sxilver | Stardance
|
Sxilver
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Double Jointed Arm by @Sxilver | Stardance
|
1792713100.2875154
|
1793317900.2875154
|
|
5138
|
ShadowMed by @shanmukha | Stardance
|
shanmukha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ShadowMed by @shanmukha | Stardance
|
1793220732.0617733
|
1793825532.0617733
|
|
5139
|
Untitled by @clayanicholson | Stardance
|
clayanicholson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @clayanicholson | Stardance
|
1792666394.820413
|
1793271194.820413
|
|
5140
|
Ergonomic Gaming Keyboard by @joyceyhaha | Stardan Ergonomic Gaming Keyboard by @joyceyhaha | Stardance...
|
joyceyhaha
|
0
|
10.28
|
0
|
[]
|
[{"post_id": 5739, "ts": "2026 [{"post_id": 5739, "ts": "2026-06-09T17:15:36Z", "hours": 1.8111, "text": "Finished Firmware! After following all the steps on the QMK website, I ran into errors when compiling. It took a lot of troubleshooting, and it was mainly all caused by my irregular keypad (it’s not a 4 x 4 keypad but had 16 keys) I’m very happy once it finally compiled. Hopefully, I wrote the firmware in the correct order, but I can only test that out once I get all the parts and build it. Last step is compiling everything into a github repo!"}, {"post_id": 3863, "ts": "2026-06-06T22:43:41Z", "hours": 4.7278, "text": "Finally finished case! A part of this time I spent rerouting parts of the PCB board since I realised the USB port needs to point outward. I also discovered you can precisely move each switch location on KiCAD, so I adjusted that alongside the border to be perfect. For the casing, originally I just wanted 2 pieces. However, I really wanted the screws to be invisible from the top, meaning I needed to screw from the bottom of the case. In order to ensure the 3D printer can print the case, I cut the case into 3 pieces where each piece can be oriented so tht there are more material on the bottom layer compared to the top (No hanging pieces that need scaffolding) I’m really liking how this turned out, I haven’t decided on the colors of the casing yet, but that also depends on what filaments the 3D printer has, so that’s a decision for future me. (I made the top layer of casing transparent so that you can see the PCB board)"}, {"post_id": 2251, "ts": "2026-06-04T17:21:00Z", "hours": 1.8889, "text": "I finished the schematics and PCB Board layout! I ended up slightly tweaking my plan for the layout. On the top left corner, I am adding the ESC button, so I will only have one key for space. The matrix wiring for the schematic wasn’t too difficult, but the main issue for me was the PCB copper routing. It was easy to connect between the keys, but when connecting the rows and the columns to the microcontroller, I ran into trouble making it work with only 2 layers. I went back to the schematic multiple times to switch connections so that the copper routing wouldn’t intersect. The final PCB board looks so cool! Designing the case will be fun as I have a good deal of CAD experience."}, {"post_id": 1686, "ts": "2026-06-03T20:47:04Z", "hours": 1.8556, "text": "Preliminary Plan for Layout Hi I’m Joyce, and I’m following the Hackpad tutorial to make a little gaming keyboard that can be used for most computer games. Since I also want to make it ergonomic, the layout below also curves like how fingers usually relaxed when in a curled, comfortable position. I’m not 100% sure about where the space bar should be and whether I should have a “V” key, but we will see. As my first ever hardware project, I’ve been figuring out KiCAD. So far, I have the schematics down, so now I need to figure out the routing for the PCB board."}]...
|
Title: Ergonomic Gaming Keyboard by @joyceyhaha | Title: Ergonomic Gaming Keyboard by @joyceyhaha | Stardance
Devlogs:
Preliminary Plan for Layout Hi I’m Joyce, and I’m following the Hackpad tutorial to make a little gaming keyboard that can be used for most computer games. Since I also want to make it ergonomic, the layout below also curves like how fingers usually relaxed when in a curled, comfortable position. I’m not 100% sure about where the space bar should be and whether I should have a “V” key, but we will see. As my first ever hardware project, I’ve been figuring out KiCAD. So far, I have the schematics down, so now I need to figure out the routing for the PCB board.
I finished the schematics and PCB Board layout! I ended up slightly tweaking my plan for the layout. On the top left corner, I am adding the ESC button, so I will only have one key for space. The matrix wiring for the schematic wasn’t too difficult, but the main issue for me was the PCB copper routing. It was easy to connect between the keys, but when connecting the rows and the columns to the microcontroller, I ran into trouble making it work with only 2 layers. I went back to the schematic multiple times to switch connections so that the copper routing wouldn’t intersect. The final PCB board looks so cool! Designing the case will be fun as I have a good deal of CAD experience.
Finally finished case! A part of this time I spent rerouting parts of the PCB board since I realised the USB port needs to point outward. I also discovered you can precisely move each switch location on KiCAD, so I adjusted that alongside the border to be perfect. For the casing, originally I just wanted 2 pieces. However, I really wanted the screws to be invisible from the top, meaning I needed to screw from the bottom of the case. In order to ensure the 3D printer can print the case, I cut the case into 3 pieces where each piece can be oriented so tht there are more material on the bottom layer compared to the top (No hanging pieces that need scaffolding) I’m really liking how this turned out, I haven’t decided on the colors of the casing yet, but that also depends on what filaments the 3D printer has, so that’s a decision for future me. (I made the top layer of casing transparent so that you can see the PCB board)
Finished Firmware! After following all the steps on the QMK website, I ran into errors when compiling. It took a lot of troubleshooting, and it was mainly all caused by my irregular keypad (it’s not a 4 x 4 keypad but had 16 keys) I’m very happy once it finally compiled. Hopefully, I wrote the firmware in the correct order, but I can only test that out once I get all the parts and build it. Last step is compiling everything into a github repo!...
|
1792666137.5727751
|
1793270937.5727751
|
|
5141
|
My awesome macropad! by @yahyaovz12 | Stardance
|
yahyaovz12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @yahyaovz12 | Stard Title: My awesome macropad! by @yahyaovz12 | Stardance...
|
1793235001.355288
|
1793839801.355288
|
|
5142
|
Designing my own RAM w/ Verilog by @rensinna | Sta Designing my own RAM w/ Verilog by @rensinna | Stardance...
|
rensinna
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Designing my own RAM w/ Verilog by @rensinn Title: Designing my own RAM w/ Verilog by @rensinna | Stardance...
|
1793260309.2248135
|
1793865109.2248135
|
|
5143
|
My first slack bot! by @falak | Stardance
|
falak
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @falak | Stardance
|
1792774501.6136491
|
1793379301.6136491
|
|
5144
|
Untitled by @clayanicholson | Stardance
|
clayanicholson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @clayanicholson | Stardance
|
1792713142.2416627
|
1793317942.2416627
|
|
5145
|
My first slack bot! by @Synophis73 | Stardance
|
Synophis73
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Synophis73 | Starda Title: My first slack bot! by @Synophis73 | Stardance...
|
1793184715.997495
|
1793789515.997495
|
|
5146
|
SlackBot by @AFJ | Stardance
|
AFJ
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T03:12:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Slack bot using the guide. Hosted it on Nest. Hosting was the hard part cus i was new to nest so i asked ai about it. And the other thing is that i gave the demo url of a slack community channel so please try it out there I dont know how to give proper demo for this kind of projects", "repo": "https://github.com/AfshinJamseed/Slap-Bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C08D8B0STPE?_gl=1*19jtvtu*_gcl_au*NTE5MTkwNjIxLjE3ODA0MTE3OTcuLS4tLjE3ODYxMDgzNzUuMzQ1ODMyNjMwLjE3ODYxMDgzNzUuMTc4NjE1NjYxNQ.."}]...
|
[{"post_id": 43040, "ts": "202 [{"post_id": 43040, "ts": "2026-08-08T02:55:53Z", "hours": 0.74, "text": "Slap Bot"}, {"post_id": 42673, "ts": "2026-08-07T15:00:49Z", "hours": 0.0825, "text": "working on my slackbot"}]...
|
Title: SlackBot by @AFJ | Stardance
Devlogs:
work Title: SlackBot by @AFJ | Stardance
Devlogs:
working on my slackbot
Slap Bot
Ships:
I made a Slack bot using the guide. Hosted it on Nest. Hosting was the hard part cus i was new to nest so i asked ai about it. And the other thing is that i gave the demo url of a slack community channel so please try it out there I dont know how to give proper demo for this kind of projects...
|
1792875274.450418
|
1793739274.450418
|
|
5147
|
7 Day Prophecy by @Thanu | Stardance
|
Thanu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 7 Day Prophecy by @Thanu | Stardance
|
1793188281.3819325
|
1793793081.3819325
|
|
5148
|
My awesome macropad! by @rylvion | Stardance
|
rylvion
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @rylvion | Stardanc Title: My awesome macropad! by @rylvion | Stardance...
|
1793188269.5913122
|
1793793069.5913122
|
|
5149
|
Learning JS and TS by @Sahild | Stardance
|
Sahild
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Learning JS and TS by @Sahild | Stardance
|
1792889340.9487379
|
1793753340.9487379
|
|
5150
|
PCB business card by @geenk | Stardance
|
geenk
|
0
|
3.39
|
0
|
[]
|
[{"post_id": 2326, "ts": "2026 [{"post_id": 2326, "ts": "2026-06-04T19:17:07Z", "hours": 2.1022, "text": "Prototype routing done!"}, {"post_id": 1472, "ts": "2026-06-03T14:58:51Z", "hours": 1.2892, "text": "Schematic mostly doneee"}]...
|
Title: PCB business card by @geenk | Stardance
De Title: PCB business card by @geenk | Stardance
Devlogs:
Schematic mostly doneee
Prototype routing done!...
|
1792601525.0607207
|
1793206325.0607207
|