|
3986
|
Full-Suite MacroPad by @Chrismil122 | Stardance
|
Chrismil122
|
0
|
15.88
|
0
|
[]
|
[{"post_id": 2997, "ts": "2026 [{"post_id": 2997, "ts": "2026-06-05T22:27:02Z", "hours": 4.8911, "text": "Finished most of the firmware and will need to program the display. Only the core BLE HID is there with all the keys and rotary encoder programmed. I also committed all the files to GitHub."}, {"post_id": 2388, "ts": "2026-06-04T20:51:28Z", "hours": 1.4625, "text": "I just finished the assembly of the MacroPad in Onshape, added more fillets so everything fits cleanly, and made the knob."}, {"post_id": 1894, "ts": "2026-06-04T03:34:49Z", "hours": 1.6694, "text": "Finished back part of the case, now I just have to double check everything and also make the knob for the encoder."}, {"post_id": 1833, "ts": "2026-06-04T01:35:51Z", "hours": 1.8792, "text": "Finished front part of the case, now I just have to make the knob and the back part of the case."}, {"post_id": 1687, "ts": "2026-06-03T20:48:40Z", "hours": 1.3403, "text": "Revised schematic to include battery voltage sensing, pullup resistors for interrupts and I2C, and a decoupling capacitor for the I2C IO Expander to prevent brownouts. Also fixed PCB to reflect said changes."}, {"post_id": 1251, "ts": "2026-06-03T03:16:08Z", "hours": 0.6428, "text": "Finished PCB by adding all the 3D Models for the components and adding all the traces (Tung for protection)."}, {"post_id": 1197, "ts": "2026-06-03T01:38:54Z", "hours": 1.4056, "text": "I started working on the PCB and got a lot of the way done. I only have to rearrange some of the parts and route the traces."}, {"post_id": 1123, "ts": "2026-06-02T23:13:30Z", "hours": 1.4011, "text": "Just finished the schematic (more possible in the future), now I’m going to work on the PCB"}, {"post_id": 981, "ts": "2026-06-02T19:19:10Z", "hours": 1.1847, "text": "Currently working of the schematic and trying to find the correct parts."}]...
|
Title: Full-Suite MacroPad by @Chrismil122 | Stard Title: Full-Suite MacroPad by @Chrismil122 | Stardance
Devlogs:
Currently working of the schematic and trying to find the correct parts.
Just finished the schematic (more possible in the future), now I’m going to work on the PCB
I started working on the PCB and got a lot of the way done. I only have to rearrange some of the parts and route the traces.
Finished PCB by adding all the 3D Models for the components and adding all the traces (Tung for protection).
Revised schematic to include battery voltage sensing, pullup resistors for interrupts and I2C, and a decoupling capacitor for the I2C IO Expander to prevent brownouts. Also fixed PCB to reflect said changes.
Finished front part of the case, now I just have to make the knob and the back part of the case.
Finished back part of the case, now I just have to double check everything and also make the knob for the encoder.
I just finished the assembly of the MacroPad in Onshape, added more fillets so everything fits cleanly, and made the knob.
Finished most of the firmware and will need to program the display. Only the core BLE HID is there with all the keys and rotary encoder programmed. I also committed all the files to GitHub....
|
1793530077.9731624
|
1794134877.9731624
|
|
3985
|
My first slack bot! by @keyia | Stardance
|
keyia
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @keyia | Stardance
|
1793191974.733934
|
1793796774.733934
|
|
3984
|
BloatDestroyer by @ismaiel | Stardance
|
ismaiel
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BloatDestroyer by @ismaiel | Stardance
|
1792896650.3548894
|
1793760650.3548894
|
|
3983
|
My awesome macropad! by @nuha_babool | Stardance
|
nuha_babool
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @nuha_babool | Star Title: My awesome macropad! by @nuha_babool | Stardance...
|
1793386157.7359765
|
1793990957.7359765
|
|
3982
|
my macropad! by @jotato | Stardance
|
jotato
|
0
|
0.96
|
0
|
[]
|
[{"post_id": 2334, "ts": "2026 [{"post_id": 2334, "ts": "2026-06-04T19:27:54Z", "hours": 0.9578, "text": "macropad sesh 1: day 1 of working on my macropad! :D very new to this so i am just following the guide :> Today I finished drawing schematic and designing PCB on KiCad. Almost done cadding the case (just need to add a USB cutout). I’m using onshape bc im more comfortable with it compared to fusion. side note: Spent way to long trying to get lapse to work. uhm it caused my computer to crash and had to close everything just to record. got it working in the end tho so yay! probably should get a better laptop lol only has 3 keys for now bc im new to this also i uploaded 3 screenshots to this but idk why its not showing, apologies for that timelapse: https://lapse.hackclub.com/timelapse/dl-MCfH8BBMt"}]...
|
Title: my macropad! by @jotato | Stardance
Devlog Title: my macropad! by @jotato | Stardance
Devlogs:
macropad sesh 1: day 1 of working on my macropad! :D very new to this so i am just following the guide :> Today I finished drawing schematic and designing PCB on KiCad. Almost done cadding the case (just need to add a USB cutout). I’m using onshape bc im more comfortable with it compared to fusion. side note: Spent way to long trying to get lapse to work. uhm it caused my computer to crash and had to close everything just to record. got it working in the end tho so yay! probably should get a better laptop lol only has 3 keys for now bc im new to this also i uploaded 3 screenshots to this but idk why its not showing, apologies for that timelapse: https://lapse.hackclub.com/timelapse/dl-MCfH8BBMt...
|
1793530219.488402
|
1794135019.488402
|
|
3981
|
Hearing device by @ameet | Stardance
|
ameet
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Hearing device by @ameet | Stardance
|
1793508835.9072788
|
1794113635.9072788
|
|
3980
|
Untitled by @redac1ed | Stardance
|
redac1ed
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @redac1ed | Stardance
|
1793461733.5227923
|
1794066533.5227923
|
|
3979
|
Untitled by @redac1ed | Stardance
|
redac1ed
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @redac1ed | Stardance
|
1793177677.4492931
|
1793782477.4492931
|
|
3978
|
Longboard S3 by @abiepr | Stardance
|
abiepr
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Longboard S3 by @abiepr | Stardance
|
1793346809.9889686
|
1793951609.9889686
|
|
3977
|
My first slack bot! by @Arushi | Stardance
|
Arushi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Arushi | Stardance
|
1793152511.5059407
|
1793757311.5059407
|
|
3976
|
My awesome macropad! by @WilliamTreu | Stardance
|
WilliamTreu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @WilliamTreu | Star Title: My awesome macropad! by @WilliamTreu | Stardance...
|
1793361312.0865085
|
1793966112.0865085
|
|
3975
|
Untitled by @redac1ed | Stardance
|
redac1ed
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @redac1ed | Stardance
|
1793393514.3646088
|
1793998314.3646088
|
|
3974
|
My awesome macropad! by @Arushi | Stardance
|
Arushi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Arushi | Stardance
|
1793346749.5172744
|
1793951549.5172744
|
|
3973
|
Knight game by @bobmaximus | Stardance
|
bobmaximus
|
0
|
4.2
|
0
|
[]
|
[{"post_id": 1763, "ts": "2026 [{"post_id": 1763, "ts": "2026-06-03T23:12:28Z", "hours": 4.1983, "text": "Working on swordfighting"}]...
|
Title: Knight game by @bobmaximus | Stardance
Dev Title: Knight game by @bobmaximus | Stardance
Devlogs:
Working on swordfighting...
|
1793566304.4987726
|
1794171104.4987726
|
|
3972
|
Doraemon platformer by @SiddhiHiran | Stardance
|
SiddhiHiran
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Doraemon platformer by @SiddhiHiran | Stard Title: Doraemon platformer by @SiddhiHiran | Stardance...
|
1793371676.3272932
|
1793976476.3272932
|
|
3971
|
My website! by @Dana | Stardance
|
Dana
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My website! by @Dana | Stardance
|
1793414955.617213
|
1794019755.617213
|
|
3970
|
Robot Head by @Hunter_Hill | Stardance
|
Hunter_Hill
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Robot Head by @Hunter_Hill | Stardance
|
1793195261.9748914
|
1793800061.9748914
|
|
3969
|
My awesome macropad! by @P13 | Stardance
|
P13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @P13 | Stardance
|
1793368147.2250888
|
1793972947.2250888
|
|
3968
|
hmmm by @phamtuan72az | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: hmmm by @phamtuan72az | Stardance
|
1793400983.997234
|
1794005783.997234
|
|
3967
|
My awesome macropad! by @MohnishBatraju | Stardanc My awesome macropad! by @MohnishBatraju | Stardance...
|
MohnishBatraju
|
0
|
0.33
|
0
|
[]
|
[{"post_id": 30165, "ts": "202 [{"post_id": 30165, "ts": "2026-07-17T14:58:20Z", "hours": 0.3336, "text": "I was working on my macro pad it was easy creating the PCB and connecting the wires i was finding trouble when i was building the case of it. It was easy to build the firmware."}]...
|
Title: My awesome macropad! by @MohnishBatraju | S Title: My awesome macropad! by @MohnishBatraju | Stardance
Devlogs:
I was working on my macro pad it was easy creating the PCB and connecting the wires i was finding trouble when i was building the case of it. It was easy to build the firmware....
|
1793379082.1645808
|
1793983882.1645808
|
|
3966
|
Backrooms Animation by @ | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Backrooms Animation by @ | Stardance
|
1793454772.7825472
|
1794059572.7825472
|
|
3965
|
My first slack bot! by @Schmidt_x64 | Stardance
|
Schmidt_x64
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Schmidt_x64 | Stard Title: My first slack bot! by @Schmidt_x64 | Stardance...
|
1793433176.3300173
|
1794037976.3300173
|
|
3964
|
miso by @masonnishimura123 | Stardance
|
masonnishimura123
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: miso by @masonnishimura123 | Stardance
|
1793188535.0374296
|
1793793335.0374296
|
|
3963
|
My awesome macropad! by @therichst | Stardance
|
therichst
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @therichst | Starda Title: My awesome macropad! by @therichst | Stardance...
|
1793220711.9476104
|
1793825511.9476104
|
|
3962
|
My awesome macropad! by @ | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ | Stardance
|
1793411249.6856663
|
1794016049.6856663
|
|
3961
|
My first slack bot! by @IceVeryChill | Stardance
|
IceVeryChill
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @IceVeryChill | Star Title: My first slack bot! by @IceVeryChill | Stardance...
|
1793177575.5573525
|
1793782375.5573525
|
|
3960
|
ReachBot by @jaitly_ansh_1 | Stardance
|
jaitly_ansh_1
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ReachBot by @jaitly_ansh_1 | Stardance
|
1793353802.8533914
|
1793958602.8533914
|
|
3959
|
Untitled project by @Kara | Stardance
|
Kara
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Kara | Stardance
|
1793173827.0147448
|
1793778627.0147448
|
|
3958
|
My awesome macropad! by @Allura | Stardance
|
Allura
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Allura | Stardance
|
1793270930.3203452
|
1793875730.3203452
|
|
3957
|
gesture light by @Ghostyfrog | Stardance
|
Ghostyfrog
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: gesture light by @Ghostyfrog | Stardance
|
1793202935.7069676
|
1793807735.7069676
|
|
3956
|
arcade game website by @gelwo_rm | Stardance
|
gelwo_rm
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: arcade game website by @gelwo_rm | Stardanc Title: arcade game website by @gelwo_rm | Stardance...
|
1793198978.8246765
|
1793803778.8246765
|
|
3955
|
Untitled project by @ada | Stardance
|
ada
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @ada | Stardance
|
1793552046.1423383
|
1794156846.1423383
|
|
3954
|
My first slack bot! by @liliavaceva05 | Stardance
|
liliavaceva05
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @liliavaceva05 | Sta Title: My first slack bot! by @liliavaceva05 | Stardance...
|
1793501386.034532
|
1794106186.034532
|
|
3953
|
Macropad by @Jaydenjiang | Stardance
|
Jaydenjiang
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Macropad by @Jaydenjiang | Stardance
|
1793454974.4233487
|
1794059774.4233487
|
|
3952
|
My awesome macropad! by @YuviVerma | Stardance
|
YuviVerma
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @YuviVerma | Starda Title: My awesome macropad! by @YuviVerma | Stardance...
|
1793454798.9783034
|
1794318798.9783034
|
|
3951
|
My awesome macropad! by @reach_saransh | Stardance
|
reach_saransh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @reach_saransh | St Title: My awesome macropad! by @reach_saransh | Stardance...
|
1793256805.484869
|
1793861605.484869
|
|
3950
|
1st Discord Bot Iteration by @kyarpi | Stardance
|
kyarpi
|
0
|
3.74
|
0
|
[]
|
[{"post_id": 1179, "ts": "2026 [{"post_id": 1179, "ts": "2026-06-03T01:14:52Z", "hours": 3.7375, "text": "This will be my first short devlog. I created a basic Discord application that does some commands such as play tic-tac-toe and rock, paper, scissors! Nothing too crazy but, what else should I add to it?"}]...
|
Title: 1st Discord Bot Iteration by @kyarpi | Star Title: 1st Discord Bot Iteration by @kyarpi | Stardance
Devlogs:
This will be my first short devlog. I created a basic Discord application that does some commands such as play tic-tac-toe and rock, paper, scissors! Nothing too crazy but, what else should I add to it?...
|
1793472587.4255865
|
1794077387.4255865
|
|
3949
|
Orbit by @c0mrade | Stardance
|
c0mrade
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Orbit by @c0mrade | Stardance
|
1793192057.357384
|
1793796857.357384
|
|
3948
|
My awesome macropad! by @jellycorn | Stardance
|
jellycorn
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @jellycorn | Starda Title: My awesome macropad! by @jellycorn | Stardance...
|
1793364651.9265392
|
1793969451.9265392
|
|
3947
|
My awesome macropad! by @jin | Stardance
|
jin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @jin | Stardance
|
1793228080.481331
|
1793832880.481331
|
|
3946
|
My awesome macropad! by @kyarpi | Stardance
|
kyarpi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @kyarpi | Stardance
|
1793422110.1075132
|
1794026910.1075132
|
|
3945
|
idk by @theLegend | Stardance
|
theLegend
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: idk by @theLegend | Stardance
|
1793494088.7129066
|
1794098888.7129066
|
|
3944
|
My awesome macropad! by @derped | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @derped | Stardance
|
1793372059.8284867
|
1793976859.8284867
|
|
3943
|
Game elements for the iq game by @OpenAir_Company Game elements for the iq game by @OpenAir_Company | Stardance...
|
OpenAir_Company
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T02:45:38Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a printable VEX IQ unique game element - a shooting game!", "repo": "https://github.com/Trittler-w/VEX-IQ-game-elements", "demo": ""}]...
|
[{"post_id": 6607, "ts": "2026 [{"post_id": 6607, "ts": "2026-06-11T02:37:51Z", "hours": 0.8169, "text": "Devlog: Modeling VEX IQ Game Elements Project: VEX IQ Custom Game Elements Software: Onshape Status: Part Modeling Phase Progress Update: Today’s focus was on drafting the core interactive pieces for the VEX IQ project. The individual parts are coming together nicely, and I’ve established a solid foundation for the final assembly. What I’ve Built So Far: Target Discs: Modeled two large blue discs and one smaller yellow disc. They feature clean central mounting holes and recessed inner faces, typical for VEX IQ structural mounting. Textured Rollers/Rods: Created two long, blue cylindrical elements with distinct horizontal ridges. The texturing turned out well and should visually simulate grip for robot intakes or roller mechanisms. The Container: Drafted a basic, open-top rectangular bin (light blue). Based on the project scope, this will likely serve as the holding area for the game balls. Workspace Organization: To keep the project modular and easy to navigate, the document is organized into specific part studios. You can see the workflow mapped out in the bottom tabs: separating “Balls,” “Big targets,” “Targets to be unlocked,” and the “Box of balls.” This setup is making iteration on individual pieces much cleaner. Next Steps: Transition over to the Assembly 1 tab to begin mating these components together. Establish the mechanical constraints (rotational, fastened, etc.) between the textured rods, the discs, and their eventual mounting frames. Finalize the modeling in the “Balls” tab to ensure they scale correctly with the open-top box."}]...
|
Title: Game elements for the iq game by @OpenAir_C Title: Game elements for the iq game by @OpenAir_Company | Stardance
Devlogs:
Devlog: Modeling VEX IQ Game Elements Project: VEX IQ Custom Game Elements Software: Onshape Status: Part Modeling Phase Progress Update: Today’s focus was on drafting the core interactive pieces for the VEX IQ project. The individual parts are coming together nicely, and I’ve established a solid foundation for the final assembly. What I’ve Built So Far: Target Discs: Modeled two large blue discs and one smaller yellow disc. They feature clean central mounting holes and recessed inner faces, typical for VEX IQ structural mounting. Textured Rollers/Rods: Created two long, blue cylindrical elements with distinct horizontal ridges. The texturing turned out well and should visually simulate grip for robot intakes or roller mechanisms. The Container: Drafted a basic, open-top rectangular bin (light blue). Based on the project scope, this will likely serve as the holding area for the game balls. Workspace Organization: To keep the project modular and easy to navigate, the document is organized into specific part studios. You can see the workflow mapped out in the bottom tabs: separating “Balls,” “Big targets,” “Targets to be unlocked,” and the “Box of balls.” This setup is making iteration on individual pieces much cleaner. Next Steps: Transition over to the Assembly 1 tab to begin mating these components together. Establish the mechanical constraints (rotational, fastened, etc.) between the textured rods, the discs, and their eventual mounting frames. Finalize the modeling in the “Balls” tab to ensure they scale correctly with the open-top box.
Ships:
I made a printable VEX IQ unique game element - a shooting game!...
|
1793616942.609043
|
1793703342.609043
|
|
3942
|
Untitled project by @Olorin | Stardance
|
Olorin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Olorin | Stardance
|
1793569757.676789
|
1794174557.676789
|
|
3941
|
My first slack bot! by @anisht245 | Stardance
|
anisht245
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-02T05:27:55Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a bot for the Hack Club Slack. It is called stardance bot. This bot can give the nasa picture of the day and tell jokes. The most challenging part was getting the inital code going. After this part, I will able to go through the process much easier. Making the app 24/7 was pretty hard, but after some googling, I got past that issue. I am most proud of the end result. Seeing it work makes me very happy. People should know the commands such as /sd-help, /sd-nasa, /sd-joke, and /sd-ping before using my bot.", "repo": "https://github.com/anishtiwari0518-spec/stardance-bot/tree/master", "demo": "https://app.slack.com/client/E09V59WQY1E/C0AFG0XGGMP"}]...
|
[{"post_id": 652, "ts": "2026- [{"post_id": 652, "ts": "2026-06-02T05:24:14Z", "hours": 0.4878, "text": "I just finished my first slack bot. Go check it out in the Hack Club slack. To activate it, type /sd-help to see all the commands you can try"}, {"post_id": 595, "ts": "2026-06-02T02:47:54Z", "hours": 0.2894, "text": "I am currently worked on my first slack bot the replies with pong, fetches NASA’s picture of the day, a programming hoke, and can list the available commands"}]...
|
Title: My first slack bot! by @anisht245 | Stardan Title: My first slack bot! by @anisht245 | Stardance
Devlogs:
I am currently worked on my first slack bot the replies with pong, fetches NASA’s picture of the day, a programming hoke, and can list the available commands
I just finished my first slack bot. Go check it out in the Hack Club slack. To activate it, type /sd-help to see all the commands you can try
Ships:
I made a bot for the Hack Club Slack. It is called stardance bot. This bot can give the nasa picture of the day and tell jokes. The most challenging part was getting the inital code going. After this part, I will able to go through the process much easier. Making the app 24/7 was pretty hard, but after some googling, I got past that issue. I am most proud of the end result. Seeing it work makes me very happy. People should know the commands such as /sd-help, /sd-nasa, /sd-joke, and /sd-ping before using my bot....
|
1793602693.6857407
|
1793689093.6857407
|
|
3940
|
Tokn - A CLI TOTP app by @nautrw | Stardance
|
nautrw
|
1
|
19.0
|
303
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T21:02:33Z", "hours": 19.0, "multiplier": 15.96, "payout": 303, "blessing": "neutral", "text": "My project is a CLI app that generates TOTP (Time-based one-time password) codes for authentication to other apps. I built this to make it easier for me and perhaps others when logging in to apps that require TOTP, as reaching for my phone was annoying. To make it secure, I also implemented password encryption to make it safer. Along the way, I learned about the basics of encryption, UI/UX design, and building real projects. I think I will come back to this at some point in the future and improve it even more.", "repo": "https://github.com/nautrw/tokn", "demo": "https://pypi.org/project/tokn-nautrw"}]...
|
[{"post_id": 15298, "ts": "202 [{"post_id": 15298, "ts": "2026-06-24T20:58:37Z", "hours": 1.4864, "text": "After quite some time of tinkering, I was able to publish my project on PyPI. In the process, I also wrote a readme and recorded a live demo. I believe I can ship now."}, {"post_id": 15213, "ts": "2026-06-24T18:36:38Z", "hours": 1.9061, "text": "I have polished the get command to make it somewhat more obvious to the user which of the two codes to use based on the amount of time the current one has left. Also, I made it expand the path so as to allow ~ in the QR code image path."}, {"post_id": 12911, "ts": "2026-06-21T04:25:28Z", "hours": 1.5864, "text": "I figured out how to fix this bug where it would ask the user for the password regardless of whether they used the –help flag or not. This was because I was handling that logic inside the CLI command group, which is how I make the subcommands, but also runs every time a subcommand is run. I fixed this by using a custom decorator for the commands. This will generally be much more flexible because now I can have commands that don’t require a password."}, {"post_id": 9639, "ts": "2026-06-16T01:28:25Z", "hours": 0.2931, "text": "The add command will now check for existing keys by comparing the issuer and label."}, {"post_id": 9628, "ts": "2026-06-16T01:05:49Z", "hours": 1.6739, "text": "Nothing too major, as I haven’t had much time to work on the project. Instead of always requiring a subcommand when running the add command, it will default to QR code because that is the most common. Then, the option to add just a normal secret key is –code, and, now, I implemented just getting from an URI. Also, I made it so that the QR and URI inputs will allow the user to override the output because they generally come with the issuer and label."}, {"post_id": 7258, "ts": "2026-06-12T03:23:19Z", "hours": 0.4025, "text": "I have started working on improving the overall UX of the app. Instead of an init command, it will automatically detect if the user is a new user and run a sort of wizard. It’s still a little wonky, and I will fix that tomorrow, but when it is done the app will be much easier to use."}, {"post_id": 7230, "ts": "2026-06-12T02:02:19Z", "hours": 0.7092, "text": "I have split the add command into QR and just a regular raw secret key. The QR option only asks for the image path, because the URI should contain the issuer and label. This should increase clarity for the user because it won’t change the arguments passed to the command based on a flag as it did before."}, {"post_id": 7210, "ts": "2026-06-12T01:14:50Z", "hours": 3.1306, "text": "I switched to using a pyproject.toml file because this will be getting published sometime, and I will probably also use poetry. For the sake of compatibility with the other established TOTP apps, as well as to use the full extent of the TOTP URIs (they contain the issuer and account name already), I decided to divide the keys into issuers and accounts under those issuers. I will work on redesigning the add command to do this. Progress!"}, {"post_id": 6314, "ts": "2026-06-10T17:02:28Z", "hours": 0.985, "text": "I added a way to get the secret key from a QR code image to make it easier for the user to use. Previously they would have to scan the image themselves and get the code."}, {"post_id": 5966, "ts": "2026-06-09T23:57:41Z", "hours": 0.8367, "text": "I have polished some of the prompts. The keys file is also stored in a platform-agnostic way (on Linux it will be stored in ~/.local/share/tokn, but on Windows is another location)."}, {"post_id": 5762, "ts": "2026-06-09T17:41:18Z", "hours": 1.7889, "text": "Since last time: The init command initializes a new keys file; I would’ve just made it automatically initiate the process upon any command, but it would’ve made things like the get command a little wonky The list command lists all the keys The passwd command (not shown) changes the password The rm command removes a key I have added input validation to most of the commands now, and I found out how to do aliases I still need to polish some things, specially the consistency of the vocabulary (keys, services, etc.) and the prompts"}, {"post_id": 5622, "ts": "2026-06-09T14:28:30Z", "hours": 1.165, "text": "I got the basics of the app working! I can add new secrets and then retrieve them. I decided to show the next code because it doesn’t update automatically (it is meant to be a CLI app), so this will help if the code has a few seconds left. The password also takes a few seconds to verify, so this will prevent having to run it over and over. The next feature is data validation, as it is very basic right now."}, {"post_id": 5126, "ts": "2026-06-08T20:16:31Z", "hours": 2.625, "text": "I have the encryption working, so now I can grab the password salt, make the password hash from that, and use it to decrypt the other part of the file. I wrote this little test to showcase it, the key is generated and then I can encrypt and decrypt the file. Next thing to work on is storing the secret keys."}, {"post_id": 604, "ts": "2026-06-02T03:13:51Z", "hours": 0.4314, "text": "I can generate basic TOTPs now! This is currently with a random key, but soon I will add files to store the keys."}]...
|
Title: Tokn - A CLI TOTP app by @nautrw | Stardanc Title: Tokn - A CLI TOTP app by @nautrw | Stardance
Devlogs:
I can generate basic TOTPs now! This is currently with a random key, but soon I will add files to store the keys.
I have the encryption working, so now I can grab the password salt, make the password hash from that, and use it to decrypt the other part of the file. I wrote this little test to showcase it, the key is generated and then I can encrypt and decrypt the file. Next thing to work on is storing the secret keys.
I got the basics of the app working! I can add new secrets and then retrieve them. I decided to show the next code because it doesn’t update automatically (it is meant to be a CLI app), so this will help if the code has a few seconds left. The password also takes a few seconds to verify, so this will prevent having to run it over and over. The next feature is data validation, as it is very basic right now.
Since last time: The init command initializes a new keys file; I would’ve just made it automatically initiate the process upon any command, but it would’ve made things like the get command a little wonky The list command lists all the keys The passwd command (not shown) changes the password The rm command removes a key I have added input validation to most of the commands now, and I found out how to do aliases I still need to polish some things, specially the consistency of the vocabulary (keys, services, etc.) and the prompts
I have polished some of the prompts. The keys file is also stored in a platform-agnostic way (on Linux it will be stored in ~/.local/share/tokn, but on Windows is another location).
I added a way to get the secret key from a QR code image to make it easier for the user to use. Previously they would have to scan the image themselves and get the code.
I switched to using a pyproject.toml file because this will be getting published sometime, and I will probably also use poetry. For the sake of compatibility with the other established TOTP apps, as well as to use the full extent of the TOTP URIs (they contain the issuer and account name already), I decided to divide the keys into issuers and accounts under those issuers. I will work on redesigning the add command to do this. Progress!
I have split the add command into QR and just a regular raw secret key. The QR option only asks for the image path, because the URI should contain the issuer and label. This should increase clarity for the user because it won’t change the arguments passed to the command based on a flag as it did before.
I have started working on improving the overall UX of the app. Instead of an init command, it will automatically detect if the user is a new user and run a sort of wizard. It’s still a little wonky, and I will fix that tomorrow, but when it is done the app will be much easier to use.
Nothing too major, as I haven’t had much time to work on the project. Instead of always requiring a subcommand when running the add command, it will default to QR code because that is the most common. Then, the option to add just a normal secret key is –code, and, now, I implemented just getting from an URI. Also, I made it so that the QR and URI inputs will allow the user to override the output because they generally come with the issuer and label.
The add command will now check for existing keys by comparing the issuer and label.
I figured out how to fix this bug where it would ask the user for the password regardless of whether they used the –help flag or not. This was because I was handling that logic inside the CLI command group, which is how I make the subcommands, but also runs every time a subcommand is run. I fixed this by using a custom decorator for the commands. This will generally be much more flexible because now I can have commands that don’t require a password.
I have polished the get command to make it somewhat more obvious to the user which of the two codes to use based on the amount of time the current one has left. Also, I made it expand the path so as to allow ~ in the QR code image path.
After quite some time of tinkering, I was able to publish my project on PyPI. In the process, I also wrote a readme and recorded a live demo. I believe I can ship now.
Ships:
My project is a CLI app that generates TOTP (Time-based one-time password) codes for authentication to other apps. I built this to make it easier for me and perhaps others when logging in to apps that require TOTP, as reaching for my phone was annoying. To make it secure, I also implemented password encryption to make it safer. Along the way, I learned about the basics of encryption, UI/UX design, and building real projects. I think I will come back to this at some point in the future and improve it even more....
|
1793569680.1195736
|
1793656080.1195736
|
|
3939
|
My very useful macropad! by @adhyan2810 | Stardanc My very useful macropad! by @adhyan2810 | Stardance...
|
adhyan2810
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very useful macropad! by @adhyan2810 | S Title: My very useful macropad! by @adhyan2810 | Stardance...
|
1792914678.5456185
|
1793778678.5456185
|
|
3938
|
Patch Notes by @late-parrot | Stardance
|
late-parrot
|
0
|
1.35
|
0
|
[]
|
[{"post_id": 11665, "ts": "202 [{"post_id": 11665, "ts": "2026-06-19T00:28:49Z", "hours": 1.3456, "text": "Basic movement and tileset I implemented a simple movement system based off of a previous game, and set up a tileset so that I could build and test levels. I Also added some CC0 assets for testing purposes (I’ll change the assets later–I don’t really think they fit the style I’m going for) and set up the Hackatime extension. No actual gameplay mechanics yet, but I’ll do some testing and create some soon. I’m planning to implement sets of rules that change for each run, and the player will have to figure out how the rules work in order to progress and complete the run."}]...
|
Title: Patch Notes by @late-parrot | Stardance
De Title: Patch Notes by @late-parrot | Stardance
Devlogs:
Basic movement and tileset I implemented a simple movement system based off of a previous game, and set up a tileset so that I could build and test levels. I Also added some CC0 assets for testing purposes (I’ll change the assets later–I don’t really think they fit the style I’m going for) and set up the Hackatime extension. No actual gameplay mechanics yet, but I’ll do some testing and create some soon. I’m planning to implement sets of rules that change for each run, and the player will have to figure out how the rules work in order to progress and complete the run....
|
1793184649.4120681
|
1793789449.4120681
|
|
3937
|
My awesome macropad! by @Azra | Stardance
|
Azra
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Azra | Stardance
|
1793180994.8456225
|
1793785794.8456225
|