Sitemap

Vibe Coding Again: Rebuilding a Mentorship Program from No-Code to Code

4 min readJun 1, 2025

--

I’m rebuilding a mentorship program platform, moving away from a no-code tool into something custom, purpose-built, and long-term maintainable. The platform supports applications, matching, session tracking, and admin workflows, with role-based access for mentors, mentees, and admins. I’m building it on Replit (for now).

I’ve tried vibe coding a matching Python program with ChatGPT before “vibe coding” was even a term. That was fun. This time, I wanted to go deeper.

🔍 Lessons So Far

  • Plan your cycles before building. Replit’s agent wants to build immediately, but without showing the big picture. I first used ChatGPT to define the system, break it into cycles, and outline each one. Then I used Replit Agent to execute and debug.

I discovered Replit Assistant later. I’ll compare its behavior to ChatGPT. Not sure why they’re separate, but maybe it helps each AI stay focused.

  • Pick your framework and language up front. I chose Flask for flexibility, Python because it’s what I know (barely 😝).
  • Use test-driven thinking. Replit marks every to-do as done, even if the code is broken 🙈.

I will define what success looks like for each cycle and eventually set up end-to-end tests.

  • Multitask while Replit works. Replit is faster than a human, but even a 5-minute pause 👯 makes me want to context switch.
  • Expect small changes mid-cycle. I renamed “application” to “form” in the middle of a sprint. A friend suggested I push my code to GitHub and use Cursor for fine-grained edits and branching.

Later I will try to collaborate: split tasks, work in branches, and merge into main.

Using Replit as a Starter

The first time I tried Replit, I just described what I wanted and the agent created a flood of files. I didn’t understand them, couldn’t debug them, and the preview didn’t work. It was overwhelming.

The initial version was complete, but I didn’t know what was completed.

The Agent just want to build

This time, I started by defining the architecture, feature list, and tech stack in ChatGPT. Then I broke everything into cycles 🔄, each scoped to one shippable feature. I don’t even look at the files Replit creates; I just test the preview. That reduced my anxiety and helped me stay focused.

The planning chat with ChatGPT took over an hour. I asked it to design each cycle assuming I’d spend six hours per week. But in practice? Each cycle took maybe five minutes to generate code, another five to deploy, and two to ten minutes to debug. It really depends on how much I need to test. I know it’ll take longer when I add end-to-end tests, still figuring out how to ask AI to help with that. But within another hour, I had already completed four cycles. ⏩

The feature list and cycle plan I created aren’t fixed blueprints; they’re more like guides I follow. I update them when I learn something new or change my mind. For example, I might still switch to Google Forms instead of building my own. And I often revise the next cycle after finishing the current one. That’s fine. It’s good, actually. Like eating an elephant, I just take one bite at a time.

I like this kind of exploration while building. Along the way, I’ve also learned how to evaluate a tech stack, and even picked up new terms, like figuring out what a flake is.

Agent said all tasks are completed but immediately errors

Examples: feature lists and cycle plans

👥 Frontend (for members)

  • Slack-based sign-in (restricted to community)
  • Application form: mentor, mentee, or both
  • Form reuse: view/edit submissions
  • Match view: see and connect
  • Commitment workflow: mentors select, mentees confirm
  • Session tracking: log meetings, report ghosting/issues
  • Survey & resources

🧑‍💼 Backstage (for admins)

  • User management with role editing and logs
  • Static content pages (FAQ, guides) with viewer_scope
  • Form builder with preview, formatting, validation
  • Match uploads and controls
  • Analytics dashboard

🔨 How I’m Building It

✅ Completed (Cycles 1–4)

  • Cycle 1: Fake login, session handling, dashboard shell
  • Cycle 2: Admin dashboard + static content with viewer_scope
  • Cycle 3: Admin user management, role editing, match-based views
  • Cycle 4: Application form submission system with permissions

🚧 Upcoming (Cycles 5+)

  • Cycle 5: Admin form builder with live preview and formatting
  • Cycle 6: Advanced form logic (conditional fields, limits, validation)
  • Cycle 7: Submission review and match upload
  • Cycle 8: Match view and commitment workflow
  • Cycle 9: Session tracking and ghost reporting
  • Cycle 10: Admin tools for session/issues
  • Cycle 11: Final survey + feedback
  • Cycle 12+: Analytics, polish, and beyond

🧪 Example: Cycle 1

Goal: Simulate login and build a basic authenticated structure without Slack integration.

Outcome: A working Flask app where users can “log in”, view a welcome message, and access a protected dashboard. This sets the foundation for future real Slack auth and user-specific features.

What I Got:

  • Fake login/session
  • Protected dashboard
  • SQLite user table
  • Bootstrap shell

To-do list

  • Set up Flask project
  • Add Bootstrap
  • Create /login, /logout, /dashboard
  • Store user info in session + DB
  • Add basic nav and styling

🤩 I’m happy to hear how you do data or products. Feel free to reach out to me on LinkedIn Karen Hsieh

🙋🙋‍♀️ Welcome to Ask Me Anything.

--

--

Karen Hsieh
Karen Hsieh

Written by Karen Hsieh

Data📊 Empower 🙌 Product 💜

No responses yet