CodeKidsIDE
- 8 Devlogs
- 40 Total hours
CodeKidsIDE A verry simple ide for kids with lots of options for them, including lessons and explained debugging now with a web version
CodeKidsIDE A verry simple ide for kids with lots of options for them, including lessons and explained debugging now with a web version
Stable Desktop Synchronization (Live Sync Reworked)
One of the biggest issues discovered during testing involved the Desktop synchronization system.
Previously, if you linked the Desktop application while it didn’t contain any projects or files, the synchronization process treated the empty Desktop workspace as the latest version and deleted the existing files stored on the Website. This could result in accidental data loss.
The synchronization logic has now been completely redesigned.
The Website is now considered the source of truth during the initial connection. When a Desktop client is linked for the first time, the Web version automatically pushes all current files to the Desktop instead of allowing the Desktop to overwrite existing data. This guarantees that users never lose their work simply because they connected a fresh installation.
Another issue appeared while editing code in the browser. Because Live Sync constantly updated the editor, keyboard shortcuts such as Ctrl+Z (Undo) could stop working correctly or even freeze the editing experience.
This has also been fixed. While the user is actively editing and the editor has focus, incoming synchronization updates are temporarily ignored. Once editing stops, synchronization continues normally in the background. As a result, undo/redo shortcuts now work exactly as expected without interfering with Live Sync.
Smarter Error Detection and Feedback
The error reporting system has been completely rewritten to provide much clearer and more helpful feedback.
Previously, runtime errors could display completely incorrect line numbers, sometimes reporting errors hundreds of lines away from where the problem actually existed. This made debugging frustrating, especially for beginners.
The new parser now extracts the correct source location and accurately reports the line where the error originated using the detected line information.
In addition, many common programming mistakes are now recognized automatically. Instead of displaying only a technical interpreter message, CodeKids now explains the problem in plain language.
For example:
Missing quotation marks now generate a clear explanation telling the user that strings must be enclosed inside single or double quotes.
Mixing tabs and spaces produces an understandable warning instead of a confusing interpreter error.
Common syntax mistakes now include helpful hints and suggestions for fixing the issue.
Every major error now includes a dedicated [TIP] section whenever possible, helping beginners understand not only what went wrong, but also how to solve it.
UI & User Experience Improvements
Several parts of the interface have been modernized to create a smoother and more professional experience.
All default browser alert() and confirm() dialogs have been removed and replaced with fully custom modal windows that match the application’s design.
Toast notifications have also been introduced across the IDE, providing lightweight feedback for actions such as saving files, synchronization events, successful operations, and warnings without interrupting the user’s workflow.
The onboarding experience has also been improved. Previously, the guided tutorial could sometimes appear before the welcome screen had finished loading, leaving users unable to continue.
The onboarding system now initializes correctly, ensuring that the welcome screen appears first before starting the interactive tutorial. This creates a much smoother first-time experience for new users.
Web Improvements & Desktop Version V2
I’ve been focusing on improving the web version based on the feedback I received. The goal was to make the IDE easier to use for complete beginners while polishing the overall experience.
Web Improvements:
Replaced native browser dialogs with custom in-app modals for a more consistent and professional UI.
Improved the lesson flow to make challenges clearer and easier to understand.
Expanded the educational content with more explanations before exercises.
Redesigned the console to provide clearer error messages and better debugging feedback.
Improved the code explanation system and started separating code explanations from debugging information.
Refined the onboarding experience so new users can quickly learn how to use the IDE.
Added and polished project templates directly inside the web IDE.
Fixed various UI issues and improved the overall responsiveness and smoothness of the application.
These improvements address the majority of the feedback received during testing and make the web version significantly more beginner-friendly.
Development Begins on Desktop Version V2
Alongside the improvements to the web version, development has officially begun on Desktop Version V2.
Unlike the original desktop version, which was designed as a standalone application, Version V2 is being built to work seamlessly with the web platform, creating a unified experience across both environments.
Planned Features:
Automatic project synchronization between the desktop app and the website.
Continue working on the same project from any device without manually transferring files.
Shared lessons, XP, achievements, and learning progress.
Automatic project backups.
Near real-time synchronization whenever projects are modified.
Improved local performance for larger projects while keeping the convenience of cloud access.
The long-term vision is to make the web version and Desktop Version V2 feel like a single platform. Users will be able to start coding in the browser, continue on the desktop application, and switch back at any time with their projects and progress automatically synchronized.
Web Version Complete
The web version of CodeKids IDE is now complete and ready to ship.
I added many of the features I had planned, including autocomplete, better error feedback, support for multiple files and folders, cross-file imports, and theme support. The goal was to create a coding environment that is simple enough for beginners while still feeling like a real IDE.
Development doesn’t stop here, though. My next focus will be building a much more powerful desktop version, with even more features, better performance, and an improved experience for kids learning to code.
Better Error Feedback & File System Complete
I finished implementing Better Error Feedback and the new file system for CodeKids IDE.
Error messages are now much more beginner-friendly, helping users understand what went wrong instead of only showing technical errors. For common mistakes, the editor now provides simple explanations and helpful suggestions. For example, if a user tries to use a variable before creating it, CodeKids IDE will display a message like:
You used the variable x before creating it. Create it first, for example: x = 10.
I also completed the new file system, which now supports creating multiple files and folders, as well as importing Python files from one another. This makes it much easier to organize projects and gives users a more realistic development experience while keeping the interface simple for beginners.
To make the editor more enjoyable to use, I also added theme support, allowing users to switch between different editor themes.
These features are important milestones for Version 2 and bring CodeKids IDE one step closer to becoming a complete learning environment for new programmers.
Working on Better Error Feedback
With autocomplete now finished, I’m currently working on Better Error Feedback.
The goal is to make error messages much more beginner-friendly. Instead of displaying confusing technical errors, CodeKids IDE will explain what went wrong in simple language, point to the exact location of the problem, and provide helpful suggestions on how to fix it.
I’m also improving how errors are presented so they’re easier to understand at a glance. Since CodeKids IDE is designed for kids and beginners, I want mistakes to become learning opportunities instead of frustrating roadblocks.
This feature is still in development, but it’s one of the biggest improvements planned for Version 2 and should make learning to code much more approachable.
Working on Autocomplete
Today I started working on one of the biggest features planned for Version 2: autocomplete.
I spent time researching how modern code editors provide suggestions while you’re typing and planning how to integrate a similar system into CodeKids IDE. My goal is to make coding easier for beginners by suggesting keywords, built-in functions, and common code patterns as they type.
Just finished a web version
I tried to build a simple Python IDE for kids using CustomTkinter. I wanted a clean layout with a code editor, file explorer, and a run button that doesn’t freeze the app. I also wanted to translate scary Python errors into simple English and add a lesson system with badges.I managed to do it by using the threading module to run code in the background. I used standard tkinter Text widgets for the code editor so I could add syntax highlighting and line numbers. For the errors, I wrote a helper script that uses regex to find common mistakes and prints friendly hints. The lessons and badges are stored in a local JSON file.I will modify it in the future. Right now the input function doesn’t work because of the background thread, so I want to fix that. I also plan to add more templates and maybe drag and drop file support.