<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 0xLysandre</title>
    <description>The latest articles on DEV Community by 0xLysandre (@0xlysandre).</description>
    <link>https://dev.to/0xlysandre</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2093620%2F807d3431-dbde-4f8c-a517-4a4158d1d893.png</url>
      <title>DEV Community: 0xLysandre</title>
      <link>https://dev.to/0xlysandre</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/0xlysandre"/>
    <language>en</language>
    <item>
      <title>I'm not a "real" developer, I used AI to build a study scheduler. Here's how it went.</title>
      <dc:creator>0xLysandre</dc:creator>
      <pubDate>Wed, 18 Feb 2026 14:27:41 +0000</pubDate>
      <link>https://dev.to/0xlysandre/im-not-a-real-developer-i-used-ai-to-build-a-study-scheduler-heres-how-it-went-2k8g</link>
      <guid>https://dev.to/0xlysandre/im-not-a-real-developer-i-used-ai-to-build-a-study-scheduler-heres-how-it-went-2k8g</guid>
      <description>&lt;p&gt;The problem that started everything&lt;br&gt;
A close friend in medical school was drowning in revision schedules. He'd tried Notion, Google Calendar, Anki, nothing clicked. He needed something offline, fast, and built specifically around spaced repetition for studying.&lt;br&gt;
I'm technical enough to understand code, but I'd never built a desktop app. Learning Electron, React, TypeScript, and SQLite from scratch would take months — time I didn't have.&lt;br&gt;
So I made a bet: could I build this entire app using AI coding assistants?&lt;br&gt;
Three months later, MaestrOS exists. It's a fully functional cross-platform study scheduler with 2,500+ lines of production code, and my friend uses it every day.&lt;br&gt;
Here's what actually happened when a non-expert tried to build software with AI.&lt;/p&gt;

&lt;p&gt;What I built&lt;br&gt;
MaestrOS is a desktop app (Windows/Mac/Linux) that helps students organize study sessions using spaced repetition — the technique where you review material at increasing intervals (1 day, 3 days, 7 days, etc.) to maximize retention.&lt;br&gt;
Core features:&lt;/p&gt;

&lt;p&gt;Spaced repetition scheduling algorithm&lt;br&gt;
5-level mastery system (tracks what you know vs. need to review)&lt;br&gt;
Offline-first (your data stays local, no cloud required)&lt;br&gt;
Optional Google Calendar sync&lt;br&gt;
Gamification (streaks, achievements, progress tracking)&lt;/p&gt;

&lt;p&gt;Tech stack:&lt;/p&gt;

&lt;p&gt;Electron 38 + React 18 + TypeScript&lt;br&gt;
SQLite (via better-sqlite3) for local database&lt;br&gt;
Tailwind CSS for styling&lt;br&gt;
electron-builder for cross-platform packaging&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/0xLysandre/MaestrOS" rel="noopener noreferrer"&gt;https://github.com/0xLysandre/MaestrOS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My AI-assisted workflow&lt;br&gt;
I used Claude throughout the entire project — primarily Claude Opus 4.5 for complex architecture and logic, and Claude Sonnet 4.5 when I needed faster iterations on simpler tasks.&lt;br&gt;
Here's my actual process for each feature:&lt;br&gt;
Step 1: Describe what I want (in plain language)&lt;br&gt;
Me: "I need a React component that displays a weekly calendar view. &lt;br&gt;
Each day should show tasks scheduled for that day. Tasks should be &lt;br&gt;
color-coded by mastery level (1-5). Clicking a task should open &lt;br&gt;
a modal to mark it complete."&lt;br&gt;
Step 2: Claude generates the code&lt;br&gt;
Claude would give me:&lt;/p&gt;

&lt;p&gt;The React component structure&lt;br&gt;
State management logic&lt;br&gt;
CSS styling (Tailwind classes)&lt;br&gt;
Event handlers&lt;/p&gt;

&lt;p&gt;Step 3: I read the code (even when I don't fully understand)&lt;br&gt;
This was critical. I'd ask follow-up questions:&lt;br&gt;
Me: "Why did you use useCallback here?"&lt;br&gt;
Claude: "Because the function is passed as a prop to child components..."&lt;br&gt;
Even if I didn't get it 100%, I'd learn something.&lt;br&gt;
Step 4: Test in the app&lt;br&gt;
Copy, paste, run. Most of the time it worked. Sometimes it didn't.&lt;br&gt;
Step 5: Debug with Claude when it breaks&lt;br&gt;
Me: [pastes error message]&lt;/p&gt;

&lt;p&gt;TypeError: Cannot read property 'map' of undefined at Calendar.jsx:47&lt;/p&gt;

&lt;p&gt;Claude: "The issue is that 'tasks' is undefined when the component &lt;br&gt;
first renders. You need to add a conditional check..."&lt;br&gt;
This cycle repeated hundreds of times over three months.&lt;/p&gt;

&lt;p&gt;What worked incredibly well&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generating boilerplate and setup
The initial Electron + React + TypeScript setup is painful if you've never done it. Claude did it in minutes. I would've spent days googling Webpack configs and build scripts.&lt;/li&gt;
&lt;li&gt;Learning by doing (faster than tutorials)
Instead of watching 10 hours of Electron tutorials, I just started building. When I hit a wall, I asked Claude to explain. I learned React hooks, SQLite schemas, and IPC communication through real problems, not abstract examples.&lt;/li&gt;
&lt;li&gt;Debugging cryptic error messages
Electron errors are notoriously obscure. Claude was brilliant at this:
Error: Electron Security Warning (Insecure Content-Security-Policy)
I had no idea what this meant. Claude explained it, gave me the fix, and taught me why it mattered for security.&lt;/li&gt;
&lt;li&gt;Implementing algorithms I barely understood
The spaced repetition algorithm is based on SM-2 (SuperMemo 2). I read the Wikipedia page and understood maybe 40% of it. I described what I wanted to Claude, it generated the logic, and I tested it until it worked correctly.
Did I fully understand the math? No. Did it work? Yes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What didn't work (and frustrated me)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Even Claude makes mistakes with rapidly-evolving frameworks
Claude would occasionally suggest Electron patterns that worked in version 32 but had changed by version 38. The framework moves fast, and even the best AI can lag behind the latest updates.
Lesson: Always cross-reference with the official docs when something feels off, especially for version-specific APIs.&lt;/li&gt;
&lt;li&gt;Security suggestions were sometimes dangerous
Claude once suggested a configuration that would've made IPC communication easier but created a security hole. I only caught it because I'd read Electron's security checklist.
Lesson: Never trust AI on security. Read the framework's security guide yourself.&lt;/li&gt;
&lt;li&gt;AI doesn't understand architecture
Claude is great at "build this component" but terrible at "how should I structure this entire app?"
I had to figure out:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Should state live in the main process or renderer?&lt;br&gt;
How do I organize the database schema?&lt;br&gt;
What belongs in a service vs. a component?&lt;/p&gt;

&lt;p&gt;Claude gave me options, but I had to decide.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Performance issues took real debugging
The app worked but was slow (2-second load time, laggy calendar). Claude suggested fixes that didn't help. I had to profile the app myself, read about lazy loading, and implement optimizations manually.
Lesson: AI writes code that works, not code that's fast.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What I actually learned&lt;br&gt;
Here's the thing: I didn't become an expert. But I'm no longer completely lost.&lt;br&gt;
What I understand about Electron (sort of)&lt;br&gt;
I can now:&lt;/p&gt;

&lt;p&gt;Explain the difference between main process and renderer process (even if I still mix them up sometimes)&lt;br&gt;
Follow the security checklist without breaking things&lt;br&gt;
Package the app for different platforms (though I still don't understand half the electron-builder config)&lt;br&gt;
Navigate the docs when something breaks&lt;/p&gt;

&lt;p&gt;Do I really understand Electron? Not deeply. But I understand it enough to fix bugs and add features.&lt;br&gt;
What I understand about React&lt;br&gt;
I can:&lt;/p&gt;

&lt;p&gt;Build components that work&lt;br&gt;
Use hooks without completely breaking things&lt;br&gt;
Debug when the UI doesn't update&lt;br&gt;
Copy patterns from the codebase and adapt them&lt;/p&gt;

&lt;p&gt;Could I architect a React app from scratch? Probably not. Can I maintain this one? Yes.&lt;br&gt;
What I understand about SQLite&lt;br&gt;
I know:&lt;/p&gt;

&lt;p&gt;How to write basic queries&lt;br&gt;
When to add an index (when things get slow)&lt;br&gt;
Why better-sqlite3 worked when sqlite3 didn't&lt;br&gt;
How to not corrupt the database&lt;/p&gt;

&lt;p&gt;Am I a database expert? Hell no. But the data persists and queries are fast enough.&lt;/p&gt;

&lt;p&gt;The honest truth&lt;br&gt;
I didn't master these technologies. I learned just enough to be dangerous.&lt;br&gt;
But here's what matters: the app works. My friend uses it daily. Other students are using it too.&lt;br&gt;
I can add features. I can fix bugs. I can read error messages and figure out what broke.&lt;br&gt;
Is that "real knowledge"? Maybe not by traditional standards. But it's useful knowledge.&lt;br&gt;
And I got there in 3 months instead of never starting because the learning curve felt too steep.&lt;/p&gt;

&lt;p&gt;The uncomfortable truth&lt;br&gt;
Some people will say "you didn't really build it, the AI did."&lt;br&gt;
Here's my response: Claude wrote the code. I built the product.&lt;br&gt;
I decided:&lt;/p&gt;

&lt;p&gt;What features to build (and which to cut)&lt;br&gt;
How the UI should work&lt;br&gt;
What data to store&lt;br&gt;
When something was "good enough" vs. needed refinement&lt;br&gt;
How to prioritize based on real user feedback&lt;/p&gt;

&lt;p&gt;Claude was my typing assistant, not my brain.&lt;br&gt;
It's like saying an architect "didn't really design the building" because they used CAD software instead of drawing by hand.&lt;/p&gt;

&lt;p&gt;If you want to try this yourself&lt;br&gt;
Here's my advice:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pick a real problem
Don't build a todo app. Build something that solves an actual problem for someone you know. You'll stay motivated, and you'll get real feedback.&lt;/li&gt;
&lt;li&gt;Start small, iterate
I didn't build all of MaestrOS at once. I started with "display a list of tasks." Then "add a task." Then "mark complete." Each feature built on the last.&lt;/li&gt;
&lt;li&gt;Read the code AI generates
Don't just copy-paste blindly. Skim it. Ask "why did it do this?" Even if you only understand 60%, that's better than 0%.&lt;/li&gt;
&lt;li&gt;Master the conversation with your AI
I learned that Claude responds better when you:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Give context upfront ("I'm building an Electron app with React...")&lt;br&gt;
Ask it to explain WHY, not just HOW&lt;br&gt;
Show it error messages in full&lt;br&gt;
Ask for alternatives when the first solution doesn't work&lt;/p&gt;

&lt;p&gt;The quality of your output depends on the quality of your prompts.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Embrace the gaps in your knowledge
I still don't fully understand TypeScript generics. I still mess up async/await sometimes. That's okay. You don't need to be an expert to ship.&lt;/li&gt;
&lt;li&gt;Keep a "things that work" doc
When you solve a tricky problem, save the solution. I have a Notion doc with ~50 snippets I reused throughout the project.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result&lt;br&gt;
My friend uses MaestrOS every day. It helped him pass his exams. Other medical students have started using it too.&lt;br&gt;
I didn't become a "real developer" (whatever that means). But I built something real, learned a ton, and proved you don't need to spend years mastering a tech stack before you ship.&lt;br&gt;
If you're hesitating to use AI because it feels like cheating — stop. It's just a tool. A very powerful one.&lt;br&gt;
The code is open source: &lt;a href="https://github.com/0xLysandre/MaestrOS" rel="noopener noreferrer"&gt;https://github.com/0xLysandre/MaestrOS&lt;/a&gt;&lt;br&gt;
And if you want to see the detailed process of how I did this (with actual prompts, architecture decisions, and lessons learned), I'm documenting everything in a course. Drop a comment if you're interested.&lt;/p&gt;

&lt;p&gt;Questions I expect in the comments&lt;br&gt;
"How long did it actually take?"&lt;br&gt;
~3 months, working 5-10 hours per week. Probably 120-150 hours total.&lt;br&gt;
"Could you have done this without AI?"&lt;br&gt;
Technically yes, but it would've taken 6-12 months and I probably would've quit.&lt;br&gt;
"What's the hardest part AI couldn't help with?"&lt;br&gt;
Deciding what to build. Claude can't tell you what features matter or what your users actually need.&lt;br&gt;
"Why only Claude? What about ChatGPT/Cursor/Copilot?"&lt;br&gt;
I tried others early on but found Claude better at understanding context over long conversations. For a months-long project, that continuity mattered.&lt;br&gt;
"Do you feel like a 'fake' developer?"&lt;br&gt;
No. I shipped a real product that solves a real problem. That's more than most developers do.&lt;/p&gt;

&lt;p&gt;What do you think? Is using AI to build software "real development" or not? I'm genuinely curious to hear different perspectives.&lt;/p&gt;

&lt;p&gt;PS: Shoutout to Anthropic for building Claude. This project literally wouldn't exist without it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>electron</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
