r/VibeCodeDevs • • 11h ago

ShowoffZone - Flexing my latest project Opus 5.5 is a beast. Made a full game in less than a month...

26 Upvotes

Never thought I would, one day, make a game so features packed in... Less than a month. Been coding for the past two decades, and with AI for the past year, well, I'll never write a single line of code again... 😱

Started working on Voltane, a RC car game around the 20 September, launched a beta about ten days ago and we are reaching a point where the game starts to be really complete and polished.

Just added local split screen, useable in the campaing mode, as well as the offline - and the online mode. 😍

What a time to be alive 😁

Feel free to check it out @ https://playvoltane.com


r/VibeCodeDevs • • 17h ago

App clones

15 Upvotes

I made this site to keep a close eye on clone projects of well-known software


r/VibeCodeDevs • • 8h ago

ReleaseTheFeature – Announce your app/site/tool I turned a piano e-book into a practice app with Opencode, then threw out the method and rebuilt it around my teacher's advice

10 Upvotes

Hi r/vibecoding! This is a web app that I made with AI to give me structure when learning a new piece on the piano.

My full process:

First, I asked claude for reputable piece-learning guides, and it gave me Fundamentals of Piano Practice by Chuan Chang.

Then, I downloaded the PDF e-book and read the first chapter, so that I could distill it into a concise text guide for how the book recommends one learns a new piece efficiently.

Next, I manually set up the coding project with React Router, Cloudflare Workers, Cloudflare D1, Drizzle and Better Auth. I made sure to use the Better Auth anonymous plugin so that using the app won't require sign-in, as well as the email OTP plugin so that signing in would be easier on mobile.

After that, I gave my text guide into Opencode (cd'ed into the starter project) and asked it to build the full app, which essentially became my MVP.

Then, I got the agent to spawn a browser and test through all the user flows to catch any errors.

I also then inspected all of the pages myself to see if it was all up to my liking. So I then gave feedback to the AI, and did some cycles of this.

I then tried the app out on my phone during my next piano practice session, and found lots of friction in using the method from the E-book.

I much preferred the principles that my piano teacher would often tell me during my weekly lesson, so I straight up asked Claude for a new piece-learning method and then slightly refined it to resemble them.

Then I got the AI to change up the entire methodology of the app.

After that I did some more UI inspection-feedback cycles.

Then, I thought about what else I would need in an app like this. The metronome on my piano is min 30bpm and max 255bpm, so sometimes I use a separate metronome app on my phone. So, I put an actual metronome directly into Reperquadia.

Another part of my workflow is how I take breaks, so I got the AI to implement a pomodoro-style timer within the app too, with timer sound and configurable work duration.

After all of this, I then opened the app on my phone and took a screenshot and told the AI to make the app look more mobile-friendly.

And then, I added a few convenience/novelty features: streaks and focus time statistics, light/dark toggle, read-only share links (to share your progress on a piece with others)

And that's all! I started using the app and so far it's been very helpful for me. The only other feature I may need to add is the ability to record what you just played so that you can listen back to it (either through MIDI or audio recording, I'm not sure yet).

https://reperquadia.synov8studio.com

I'm sharing it here since it's free and is something I'm very excited to use to learn the pieces for my grade 8 exam.


r/VibeCodeDevs • • 3h ago

ShowoffZone - Flexing my latest project a green test doesn't necessarily mean an AI agent actually fixed the bug

1 Upvotes

one thing I've been thinking about while building Intervene is how easy it is for a coding agent to get a test passing without really establishing what changed

Intervene is an open source debugging tool I've been developing for agents like Cline and Claude Code. the idea is to have the agent propose possible explanations for a failure, then run controlled local experiments to figure out which ones are supported before touching the code

got the initial experiment engine and diagnosis workflow built out, and it's made me think a lot more about what counts as an actual successful debugging attempt

say a test fails three times out of ten because there's some intermittent concurrency issue

the agent changes a config setting, reruns it once, and it passes

that looks good in the terminal, but statistically it tells you very little. it might have passed even if you hadn't changed anything

and if the agent also changed several other things along the way, you don't really know which change mattered anyway

so I've been trying to make Intervene preserve the distinction between observations, explanations, and confirmation

repeated tests are recorded as actual trials, invalid runs are treated separately, and the final report needs to be able to say inconclusive rather than just rewarding whichever explanation survived the longest

I still need much stronger real-world evaluation, but this has changed how I think about using AI coding tools myself

curious how people here deal with flaky tests when Claude or Cline says it's fixed something. do you usually have it repeat the test, run a broader suite, or inspect the changes manually?


r/VibeCodeDevs • • 8h ago

Im working on a data flow design

0 Upvotes

i have a pretty good understanding of python and an okay understanding of c enough to be able to parse the meaning of lines in c but not write it myself, im working on trying to change the way the heap and stack work in a custom python like language, heres the code with hopefully enough comments to explain whats happening, im looking for people who understand the underlying hardware even if they dont understand code as well:

#include <stdio.h>

#include <stdint.h>

#include <stdbool.h>

#include <stdlib.h>

#include <string.h>

/* --- COMPILE-TIME GEOMETRIC CONSTANTS --- */

#define MAX_TYPE_SLOTS 1024

#define MAX_INSTRUCTIONS 64

#define RECURSION_LIMIT 128

/* --- COMPILE-TIME STRING HASHER (Fowler–Noll–Vo FNV-1a) --- */

// Converts human-readable variable names into static, flat integer keys

uint32_t compile_time_hash(const char* str) {

uint32_t hash = 2166136261U;

while (*str) {

hash ^= (uint8_t)*str++;

hash *= 16777619U;

}

return hash;

}

/* ============================================================================

* 1. TYPE-SEGMENTED HEAP PAGE DESIGN

* ============================================================================

* Instead of a blank canvas, memory is grouped by type. Every slot is flat,

* uniform, and sorted continuously by compile-time name hash to support O(log N)

* lookups and perfect cache alignment with zero fragmentation.

*/

typedef struct {

uint32_t name_hash; // Compiled variable name integer identifier

int64_t value; // Raw data storage value

bool is_allocated; // Invariant availability state tracker

} IntVariableSlot;

// Change your global heap definition to a dynamic reference layout

typedef struct {

IntVariableSlot* slots; // Changed from fixed array to dynamic pointer

uint32_t total_count;

uint32_t max_capacity; // Tracks current total slot allocation bounds

} DynamicIntegerPage;

DynamicIntegerPage GlobalIntegerHeap = { .slots = NULL, .total_count = 0, .max_capacity = 0 };

// Your sequential allocation step using page count expansion math

void expand_integer_heap_page() {

// If empty, start with 1 page block (1024 slots); otherwise add exactly +1 page chunk

uint32_t current_pages = GlobalIntegerHeap.max_capacity / MAX_TYPE_SLOTS;

uint32_t new_capacity = (current_pages + 1) * MAX_TYPE_SLOTS;

IntVariableSlot* new_canvas = realloc(GlobalIntegerHeap.slots, new_capacity * sizeof(IntVariableSlot));

if (!new_canvas) {

printf("🚨 SYSTEM FAULT: Canvas expansion allocation failed.\n");

exit(1);

}

// Clear and zero-initialize the newly appended slot region to prevent corruption

memset(new_canvas + GlobalIntegerHeap.max_capacity, 0, (new_capacity - GlobalIntegerHeap.max_capacity) * sizeof(IntVariableSlot));

GlobalIntegerHeap.slots = new_canvas;

GlobalIntegerHeap.max_capacity = new_capacity;

printf("📦 CANVAS EXPANSION: Allocated Page %d. Total Capacity: %u Slots.\n", current_pages + 1, new_capacity);

}

// Global instance representing our structured Integer hardware lane

int32_t find_or_create_variable_slot(uint32_t target_hash) {

// Initialize heap memory bounds at first touch if empty

if (GlobalIntegerHeap.slots == NULL) {

expand_integer_heap_page();

}

int low = 0;

int high = (int)GlobalIntegerHeap.total_count - 1;

while (low <= high) {

int mid = low + (high - low) / 2;

if (GlobalIntegerHeap.slots[mid].name_hash == target_hash) {

return mid;

}

if (GlobalIntegerHeap.slots[mid].name_hash < target_hash) {

low = mid + 1;

} else {

high = mid - 1;

}

}

// Your dynamic capacity safeguard check

if (GlobalIntegerHeap.total_count >= GlobalIntegerHeap.max_capacity) {

expand_integer_heap_page(); // Requests current pages + 1 seamlessly

}

// Shift data safely knowing memory constraints are dynamically expanded

for (int i = GlobalIntegerHeap.total_count; i > low; i--) {

GlobalIntegerHeap.slots[i] = GlobalIntegerHeap.slots[i - 1];

}

GlobalIntegerHeap.slots[low].name_hash = target_hash;

GlobalIntegerHeap.slots[low].value = 0;

GlobalIntegerHeap.slots[low].is_allocated = true;

GlobalIntegerHeap.total_count++;

return low;

}

/* ============================================================================

* 2. STRUCTURAL OPCODES & DECENTRALIZED COMPOSITE POINTERS

* ============================================================================

*/

typedef enum {

OP_MOVE_READ_PRINT, // Basic operation demonstration

OP_CALL, // Stackless horizontal frame handoff

OP_RETURN // Jump back via permanent page coordinates

} Opcode;

typedef struct {

Opcode op;

uint32_t target_page_id; // Used exclusively for CALL macros

} Instruction;

/* ============================================================================

* 3. PERMANENT FUNCTION CHIP LAYOUT

* ============================================================================

* Every function acts as a physical silicon chip permanently etched into memory.

* It houses its local instructions, input slots, a local parameter history

* page registry, and an execution safety tracker.

*/

typedef struct {

// Array tracking the history of past parameter pointers passed down this lane

uintptr_t stride_history[RECURSION_LIMIT];

// O(1) Boolean map corresponding to absolute pointer offset addresses

bool visited_tripwire_mask[MAX_TYPE_SLOTS];

uint32_t depth;

} ParameterPage;

typedef struct FunctionPage {

uint32_t page_id;

Instruction instructions[MAX_INSTRUCTIONS];

uint32_t total_instructions;

// Independent Memory Communication Channels

uintptr_t input_slot; // Data Token Baton Input Pin

uintptr_t output_slot; // Data Token Baton Output Pin

// Permanent Distributed Stack Return Coordinates

uint32_t return_pc_checkpoint;

struct FunctionPage* return_page_coordinate;

// Localized Parameter Stack & O(1) Loop Interrupter registry

ParameterPage params;

} FunctionPage;

/* ============================================================================

* 4. THE GLOBAL MICRO-SCALE HARDWARE ENGINE HARNESS

* ============================================================================

*/

typedef struct {

FunctionPage* active_page;

int32_t pc; // System Program Counter

} GlobalEngine;

GlobalEngine VM = { .active_page = NULL, .pc = -1 };

// Shifts global execution tracker to a different isolated chip state

void shift_execution_context(FunctionPage* target_chip) {

VM.active_page = target_chip;

VM.pc = -1; // Reset to -1 to perfectly align with Move, then Read loop timing

}

// Declare explicit global layout blocks for lookup linkages

extern FunctionPage FunctionChip_A;

extern FunctionPage FunctionChip_B;

// Runs the hardwired hardware loop execution pass

void run_engine_circuit() {

while (VM.active_page != NULL) {

FunctionPage* current_chip = VM.active_page;

// 1. MOVE: Always advance step before evaluating or parsing the instruction

VM.pc++;

// Bound validation safety check

if (VM.pc >= (int32_t)current_chip->total_instructions) {

printf("Hardware End Marker reached on Chip %d.\n", current_chip->page_id);

break;

}

// 2. READ: Fetch instruction at the active PC index

Instruction current_instruction = current_chip->instructions[VM.pc];

// 3. EXECUTE: Evaluate decoded instruction layout

switch (current_instruction.op) {

case OP_MOVE_READ_PRINT: {

// Read from variable heap directly via pointer passed to the input slot

int32_t slot = (int32_t)current_chip->input_slot;

printf("[Execution Chip %d] Reading Variable Value: %ld\n",

current_chip->page_id, GlobalIntegerHeap.slots[slot].value);

break;

}

case OP_CALL: {

// Determine destination state targets dynamically via configuration parameters

FunctionPage* target_chip = (current_instruction.target_page_id == 202) ? &FunctionChip_B : &FunctionChip_A;

printf("[Execution Chip %d] Initiating stackless handoff to Chip %d...\n",

current_chip->page_id, target_chip->page_id);

// --- THE STRUCTURAL O(1) INTERRUPT TRIPWIRE ---

// Translate the input data pointer address down to a clean virtual integer ID offset

uint32_t virtual_id = (uint32_t)current_chip->input_slot;

if (target_chip->params.visited_tripwire_mask[virtual_id]) {

// LOOP TREE INTERRUPT TRIGGERED: Force PC straight to local emergency vector

printf("🚨 MICRO-INTERRUPT: Cyclic pointer loop / directory tree link tripped!\n");

printf(" Halting forward execution. Activating local emergency handler vector.\n");

VM.pc = MAX_INSTRUCTIONS - 2; // Force program counter to the final terminal error slot

continue;

}

// Log state to parameter page registry and flag mask as visited in O(1) time

target_chip->params.visited_tripwire_mask[virtual_id] = true;

target_chip->params.stride_history[target_chip->params.depth++] = current_chip->input_slot;

// Decentralized Stack Handoff: Save return link coordinates directly inside target page

target_chip->return_page_coordinate = current_chip;

target_chip->return_pc_checkpoint = VM.pc;

// Pass the linear data token baton forward to target input slot

target_chip->input_slot = current_chip->input_slot;

// Shift global architecture view down to the next physical station lane

shift_execution_context(target_chip);

break;

}

case OP_RETURN: {

FunctionPage* return_target = current_chip->return_page_coordinate;

if (return_target == NULL) {

printf("[Terminal Exit] Execution context finished with no return path.\n");

VM.active_page = NULL;

break;

}

printf("[Execution Chip %d] Winding down. Returning token baton to Chip %d.\n",

current_chip->page_id, return_target->page_id);

// Clear local loop-checking footprint registry as we successfully step out of branch

uint32_t active_token_id = (uint32_t)current_chip->input_slot;

current_chip->params.visited_tripwire_mask[active_token_id] = false;

if (current_chip->params.depth > 0) current_chip->params.depth--;

// Pass updated token baton back to original creator's interface pins

return_target->input_slot = current_chip->input_slot;

// Shift global pointer back to originator and restore saved PC coordinate seamlessly

VM.active_page = return_target;

VM.pc = current_chip->return_pc_checkpoint;

break;

}

}

}

}

/* ============================================================================

* 5. COMPILER ETCHING & HARNESS TEST RUNTIME

* ============================================================================

*/

FunctionPage FunctionChip_A;

FunctionPage FunctionChip_B;

void compile_system_circuits() {

// ---- ETCH FUNCTION CHIP A CODE ----

FunctionChip_A.page_id = 101;

FunctionChip_A.total_instructions = 2;

FunctionChip_A.instructions[0] = (Instruction){ .op = OP_MOVE_READ_PRINT };

FunctionChip_A.instructions[1] = (Instruction){ .op = OP_CALL, .target_page_id = 202 };

FunctionChip_A.params.depth = 0;

memset(FunctionChip_A.params.visited_tripwire_mask, 0, sizeof(FunctionChip_A.params.visited_tripwire_mask));

// ---- ETCH FUNCTION CHIP B CODE ----

FunctionChip_B.page_id = 202;

FunctionChip_B.total_instructions = 2;

FunctionChip_B.instructions[0] = (Instruction){ .op = OP_MOVE_READ_PRINT };

FunctionChip_B.instructions[1] = (Instruction){ .op = OP_CALL, .target_page_id = 101 };

// Etch a Software Micro-Interrupt handler routine at the absolute final execution instruction slot boundary

FunctionChip_B.instructions[MAX_INSTRUCTIONS - 1] = (Instruction){ .op = OP_RETURN };

FunctionChip_B.params.depth = 0;

memset(FunctionChip_B.params.visited_tripwire_mask, 0, sizeof(FunctionChip_B.params.visited_tripwire_mask));

}

int main() {

printf("=== BOOTING CUSTOM SPATIAL CIRCUITS HARNESS ===\n\n");

// 1. Recreate Python's high level allocation abstraction into a sorted fixed-stride heap layout

uint32_t var_a_hash = compile_time_hash("my_folder_pointer");

int32_t memory_token_slot = find_or_create_variable_slot(var_a_hash);

GlobalIntegerHeap.slots[memory_token_slot].value = 888; // Assign state value to invariant memory location

printf("Variable 'my_folder_pointer' compiled to permanent hash key: %u\n", var_a_hash);

printf("Assigned to Contiguous Sorted Heap Slot Index: %d\n\n", memory_token_slot);

// 2. Hardware Lithography Step: Etch instructions permanently onto function chip pages

compile_system_circuits();

// 3. Set the linear pointer baton into Chip A's entrance pins and fire up execution

FunctionChip_A.input_slot = (uintptr_t)memory_token_slot;

shift_execution_context(&FunctionChip_A);

printf("--- STARTING CONCURRENT FLOW CIRCUIT (SAFE LOOP RUN) ---\n");

run_engine_circuit();

printf("\n--- RE-RUNNING CIRCUIT WITH CYCLIC TRANSACTION TOKEN ---\n");

// Simulate hitting a shortcut file pointing back to a processed parent directory.

// By forcing the engine to re-run without clearing masks, Chip B will discover it already processed this token ID.

shift_execution_context(&FunctionChip_A);

run_engine_circuit();

printf("\n=== SYSTEM EXECUTION CLEANUP COMPLETED WITH ZERO CRASHES ===\n");

return 0;

}