From Electron to Native Desktop Apps: How I Rebuilt TimoDesk for macOS and Windows
Over the last month, I have spent most of my time rebuilding TimoDesk.
This was not a normal update or a small feature release. TimoDesk needed a complete desktop application rewrite.
The previous application was built with Electron and React. It worked well, but after running for long periods, we faced problems such as higher memory usage, larger application bundles, occasional performance issues, and an experience that did not always feel fully native.
Because TimoDesk is designed to run silently in the background for many hours, efficiency matters.
So I made a major decision.
I rebuilt the macOS application using Swift and the Windows application using .NET WPF.
Both applications are now in production.
Why This Was a Big Challenge for Me
Before starting this work, I had never written a single line of Swift in my entire development career.
I also had no native desktop application running in production.
My background was mainly in JavaScript. JavaScript was one of my first loves in programming. Over the years, I wrote production applications with React, worked with Vue around 2020 and 2021, used Node.js, and learned enough Electron to understand how desktop applications could be created with web technologies.
However, knowing how to create a basic Electron application and building a production-grade desktop application are two very different things.
TimoDesk was my first serious desktop product.
During the rewrite, I had to learn new technologies, understand operating-system-specific behavior, handle background services, manage performance, and make sure the applications could work reliably for real users.
I built both native applications myself while working under constant pressure and learning completely new technology stacks at the same time.
Seeing both applications reach production is a major personal achievement for me.
What TimoDesk Does
TimoDesk is a complete time tracking and productivity platform for remote teams, companies, agencies, and professionals.
The desktop application runs in the background and can:
- Track working time
- Record applications used during work
- Track visited URLs
- Capture screenshots at configured intervals
- Synchronize time tracking data with the backend dashboard
- Associate tracked time with projects and tasks
- Operate silently without interrupting the user
For organizers, team managers, and company owners, TimoDesk also provides real-time visibility into team activity.
Managers can view:
- Which team members are currently active
- Who is idle or inactive
- Which task each person is working on
- Current project activity
- Logged time and productivity information
- Periodic screenshots and application usage
We also provide browser extensions for Chrome and Mozilla Firefox. These extensions help connect browser activity with the broader TimoDesk productivity system.
Why We Moved Away from Electron
Electron helped us build the original version quickly because it allowed us to use JavaScript and React.
For many applications, Electron is still a practical choice. However, TimoDesk has requirements that make native development especially valuable.
A time tracking application may remain active for an entire working day. It continuously handles timers, background synchronization, application monitoring, URL tracking, screenshots, and local system events.
Over long working sessions, every unnecessary resource matters.
The Electron version performed well in many situations, but we also experienced challenges such as:
- Higher memory consumption
- Larger installation packages
- Resource pressure during long sessions
- Less direct operating system integration
- An interface that did not always feel completely native
The native rewrite gives us greater control over performance, background processing, memory usage, system permissions, and operating system integration.
The goal is to make TimoDesk lightweight, reliable, efficient, and closely connected to the operating system.
Building the macOS Version with Swift
The macOS version was developed using Swift.
This was one of the most challenging parts of the project because Swift was completely new to me.
I had to learn how macOS handles permissions, application monitoring, screenshots, background tasks, local storage, synchronization, system events, and user interface behavior.
macOS has strict privacy and security requirements, especially for applications that interact with screen recording, accessibility features, and application activity.
Building these features properly required more than simply translating JavaScript code into Swift. I had to redesign many parts of the application around the macOS environment.
The result is a native application that feels more closely integrated with macOS and gives us a stronger foundation for future development.
Building the Windows Version with .NET WPF
For Windows, I rebuilt TimoDesk using .NET and WPF.
The Windows application needed to handle many of the same responsibilities as the macOS application, but Windows has its own APIs, lifecycle behavior, installation requirements, background processes, permissions, and system-level challenges.
The WPF version gives us greater access to the Windows environment and allows us to optimize the experience specifically for Windows users.
Instead of maintaining one general desktop application for every operating system, we can now improve each version based on the strengths and behavior of its platform.
Linux May Be Next
I am also considering building a native Linux version.
The long-term goal is to make TimoDesk highly efficient across all major operating systems.
Linux presents its own challenges because desktop environments, display systems, permissions, and application packaging can vary significantly.
However, a native Linux version would allow TimoDesk to serve more developers, technical teams, remote companies, and organizations that rely heavily on Linux workstations.
TimoDesk Is Becoming More Than a Time Tracker
Time tracking is only one part of the larger vision.
We are building TimoDesk as a complete work operating system for remote teams.
Our team is actively working on:
- Project management
- Task management
- Payroll management
- Remote team operations
- Productivity analytics
- Mobile applications
- AI-powered recommendations
- Cost and performance insights
The objective is simple: teams should not need to move between many disconnected platforms to manage their daily work.
A company should be able to manage projects, assign tasks, track time, monitor productivity, calculate payroll, review team performance, and communicate important work information from one connected system.
Mobile Applications Are Also Coming
We are also developing mobile applications for TimoDesk.
The mobile application will make it easier for users and managers to stay connected to their work from anywhere.
Managers will be able to review team activity, tracked hours, projects, tasks, notifications, and productivity information without always opening the web dashboard.
The mobile experience is an important part of making TimoDesk a complete work solution.
AI Features for Better Productivity
We are also working on AI-powered features.
The purpose of these features is not simply to add AI because it is popular. The goal is to use existing work data to generate useful recommendations.
Based on how teams already use TimoDesk, the platform may be able to suggest:
- Better task allocation
- More accurate project estimates
- Productivity improvements
- Potential workflow problems
- Time-consuming activities
- Opportunities to reduce project costs
- Work patterns that may affect delivery
- Better planning for future projects
The idea is to help teams make better decisions using the work information they already generate.
What I Learned
This project reminded me that developers should not be limited by the technologies they already know.
A month ago, Swift was completely unfamiliar to me.
Today, I have a native macOS application written in Swift and a Windows application written in .NET WPF running in production.
The process was difficult. There were bugs, pressure, unfamiliar APIs, operating system restrictions, and many moments where the next step was not obvious.
But production software is often built that way.
You learn, solve one problem at a time, test constantly, and continue until the product becomes real.
This experience gave me more confidence in my ability to move beyond web development and build deeper, system-level software.
Try TimoDesk
TimoDesk is built for remote teams, agencies, companies, and professionals who need better visibility into projects, time, and productivity.
You can use it to:
- Track project time
- Monitor productivity
- Review application and URL usage
- Capture periodic screenshots
- Manage remote team activity
- Understand how working hours are spent
You can explore TimoDesk at:
This native rewrite is only the beginning. The next stage is to make TimoDesk faster, smarter, more efficient, and capable of becoming the complete work platform remote teams can rely on every day.
Here is the clean Markdown version, ready for DEV.to, GitHub, Medium, or any Markdown editor:
From Electron to Native Desktop Apps: How I Rebuilt TimoDesk for macOS and Windows
Over the last month, I have spent most of my time rebuilding TimoDesk.
This was not a normal update or a small feature release. TimoDesk needed a complete desktop application rewrite.
The previous application was built with Electron and React. It worked well, but after running for long periods, we faced problems such as higher memory usage, larger application bundles, occasional performance issues, and an experience that did not always feel fully native.
Because TimoDesk is designed to run silently in the background for many hours, efficiency matters.
So I made a major decision.
I rebuilt the macOS application using Swift and the Windows application using .NET WPF.
Both applications are now in production.
Why This Was a Big Challenge for Me
Before starting this work, I had never written a single line of Swift in my entire development career.
I also had no native desktop application running in production.
My background was mainly in JavaScript. JavaScript was one of my first loves in programming. Over the years, I wrote production applications with React, worked with Vue around 2020 and 2021, used Node.js, and learned enough Electron to understand how desktop applications could be created with web technologies.
However, knowing how to create a basic Electron application and building a production-grade desktop application are two very different things.
TimoDesk was my first serious desktop product.
During the rewrite, I had to learn new technologies, understand operating-system-specific behavior, handle background services, manage performance, and make sure the applications could work reliably for real users.
I built both native applications myself while working under constant pressure and learning completely new technology stacks at the same time.
Seeing both applications reach production is a major personal achievement for me.
What TimoDesk Does
TimoDesk is a complete time tracking and productivity platform for remote teams, companies, agencies, and professionals.
The desktop application runs in the background and can:
Track working time
Record applications used during work
Track visited URLs
Capture screenshots at configured intervals
Synchronize time-tracking data with the backend dashboard
Associate tracked time with projects and tasks
Operate silently without interrupting the user
For organizers, team managers, and company owners, TimoDesk also provides real-time visibility into team activity.
Managers can view:
Which team members are currently active
Who is idle or inactive
Which task each person is working on
Current project activity
Logged time and productivity information
Periodic screenshots and application usage
We also provide browser extensions for Chrome and Mozilla Firefox. These extensions help connect browser activity with the broader TimoDesk productivity system.
Why We Moved Away from Electron
Electron helped us build the original version quickly because it allowed us to use JavaScript and React.
For many applications, Electron is still a practical choice. However, TimoDesk has requirements that make native development especially valuable.
A time-tracking application may remain active for an entire working day. It continuously handles timers, background synchronization, application monitoring, URL tracking, screenshots, and local system events.
Over long working sessions, every unnecessary resource matters.
The Electron version performed well in many situations, but we also experienced challenges such as:
Higher memory consumption
Larger installation packages
Resource pressure during long sessions
Less direct operating system integration
An interface that did not always feel completely native
The native rewrite gives us greater control over performance, background processing, memory usage, system permissions, and operating system integration.
The goal is to make TimoDesk lightweight, reliable, efficient, and closely connected to the operating system.
Building the macOS Version with Swift
The macOS version was developed using Swift.
This was one of the most challenging parts of the project because Swift was completely new to me.
I had to learn how macOS handles permissions, application monitoring, screenshots, background tasks, local storage, synchronization, system events, and user interface behavior.
macOS has strict privacy and security requirements, especially for applications that interact with screen recording, accessibility features, and application activity.
Building these features properly required more than simply translating JavaScript code into Swift. I had to redesign many parts of the application around the macOS environment.
The result is a native application that feels more closely integrated with macOS and gives us a stronger foundation for future development.
Building the Windows Version with .NET WPF
For Windows, I rebuilt TimoDesk using .NET and WPF.
The Windows application needed to handle many of the same responsibilities as the macOS application, but Windows has its own APIs, lifecycle behavior, installation requirements, background processes, permissions, and system-level challenges.
The WPF version gives us greater access to the Windows environment and allows us to optimize the experience specifically for Windows users.
Instead of maintaining one general desktop application for every operating system, we can now improve each version based on the strengths and behavior of its platform.
Linux May Be Next
I am also considering building a native Linux version.
The long-term goal is to make TimoDesk highly efficient across all major operating systems.
Linux presents its own challenges because desktop environments, display systems, permissions, and application packaging can vary significantly.
However, a native Linux version would allow TimoDesk to serve more developers, technical teams, remote companies, and organizations that rely heavily on Linux workstations.
TimoDesk Is Becoming More Than a Time Tracker
Time tracking is only one part of the larger vision.
We are building TimoDesk as a complete work operating system for remote teams.
Our team is actively working on:
Project management
Task management
Payroll management
Remote team operations
Productivity analytics
Mobile applications
AI-powered recommendations
Cost and performance insights
The objective is simple: teams should not need to move between many disconnected platforms to manage their daily work.
A company should be able to manage projects, assign tasks, track time, monitor productivity, calculate payroll, review team performance, and communicate important work information from one connected system.
Mobile Applications Are Also Coming
We are also developing mobile applications for TimoDesk.
The mobile application will make it easier for users and managers to stay connected to their work from anywhere.
Managers will be able to review team activity, tracked hours, projects, tasks, notifications, and productivity information without always opening the web dashboard.
The mobile experience is an important part of making TimoDesk a complete work solution.
AI Features for Better Productivity
We are also working on AI-powered features.
The purpose of these features is not simply to add AI because it is popular. The goal is to use existing work data to generate useful recommendations.
Based on how teams already use TimoDesk, the platform may be able to suggest:
Better task allocation
More accurate project estimates
Productivity improvements
Potential workflow problems
Time-consuming activities
Opportunities to reduce project costs
Work patterns that may affect delivery
Better planning for future projects
The idea is to help teams make better decisions using the work information they already generate.
What I Learned
This project reminded me that developers should not be limited by the technologies they already know.
A month ago, Swift was completely unfamiliar to me.
Today, I have a native macOS application written in Swift and a Windows application written in .NET WPF running in production.
The process was difficult. There were bugs, pressure, unfamiliar APIs, operating system restrictions, and many moments when the next step was not obvious.
But production software is often built that way.
You learn, solve one problem at a time, test constantly, and continue until the product becomes real.
This experience gave me more confidence in my ability to move beyond web development and build deeper, system-level software.
Try TimoDesk
TimoDesk is built for remote teams, agencies, companies, and professionals who need better visibility into projects, time, and productivity.
You can use it to:
Track project time
Monitor productivity
Review application and URL usage
Capture periodic screenshots
Manage remote team activity
Understand how working hours are spent
You can explore TimoDesk at:
This native rewrite is only the beginning. The next stage is to make TimoDesk faster, smarter, more efficient, and capable of becoming the complete work platform remote teams can rely on every day.
This version uses Markdown-compatible headings, lists, and a clickable link.
bro markdown in # or whatever
From Electron to Native Desktop Apps: How I Rebuilt TimoDesk for macOS and Windows
Over the last month, I have spent most of my time rebuilding TimoDesk.
This was not a normal update or a small feature release. TimoDesk needed a complete desktop application rewrite.
The previous application was built with Electron and React. It worked well, but after running for long periods, we faced problems such as higher memory usage, larger application bundles, occasional performance issues, and an experience that did not always feel fully native.
Because TimoDesk is designed to run silently in the background for many hours, efficiency matters.
So I made a major decision.
I rebuilt the macOS application using Swift and the Windows application using .NET WPF.
Both applications are now in production.
Why This Was a Big Challenge for Me
Before starting this work, I had never written a single line of Swift in my entire development career.
I also had no native desktop application running in production.
My background was mainly in JavaScript. JavaScript was one of my first loves in programming. Over the years, I wrote production applications with React, worked with Vue around 2020 and 2021, used Node.js, and learned enough Electron to understand how desktop applications could be created with web technologies.
However, knowing how to create a basic Electron application and building a production-grade desktop application are two very different things.
TimoDesk was my first serious desktop product.
During the rewrite, I had to learn new technologies, understand operating-system-specific behavior, handle background services, manage performance, and make sure the applications could work reliably for real users.
I built both native applications myself while working under constant pressure and learning completely new technology stacks at the same time.
Seeing both applications reach production is a major personal achievement for me.
What TimoDesk Does
TimoDesk is a complete time tracking and productivity platform for remote teams, companies, agencies, and professionals.
The desktop application runs in the background and can:
- Track working time
- Record applications used during work
- Track visited URLs
- Capture screenshots at configured intervals
- Synchronize time-tracking data with the backend dashboard
- Associate tracked time with projects and tasks
- Operate silently without interrupting the user
For organizers, team managers, and company owners, TimoDesk also provides real-time visibility into team activity.
Managers can view:
- Which team members are currently active
- Who is idle or inactive
- Which task each person is working on
- Current project activity
- Logged time and productivity information
- Periodic screenshots and application usage
We also provide browser extensions for Chrome and Mozilla Firefox. These extensions help connect browser activity with the broader TimoDesk productivity system.
Why We Moved Away from Electron
Electron helped us build the original version quickly because it allowed us to use JavaScript and React.
For many applications, Electron is still a practical choice. However, TimoDesk has requirements that make native development especially valuable.
A time-tracking application may remain active for an entire working day. It continuously handles timers, background synchronization, application monitoring, URL tracking, screenshots, and local system events.
Over long working sessions, every unnecessary resource matters.
The Electron version performed well in many situations, but we also experienced challenges such as:
- Higher memory consumption
- Larger installation packages
- Resource pressure during long sessions
- Less direct operating system integration
- An interface that did not always feel completely native
The native rewrite gives us greater control over performance, background processing, memory usage, system permissions, and operating system integration.
The goal is to make TimoDesk lightweight, reliable, efficient, and closely connected to the operating system.
Building the macOS Version with Swift
The macOS version was developed using Swift.
This was one of the most challenging parts of the project because Swift was completely new to me.
I had to learn how macOS handles permissions, application monitoring, screenshots, background tasks, local storage, synchronization, system events, and user interface behavior.
macOS has strict privacy and security requirements, especially for applications that interact with screen recording, accessibility features, and application activity.
Building these features properly required more than simply translating JavaScript code into Swift. I had to redesign many parts of the application around the macOS environment.
The result is a native application that feels more closely integrated with macOS and gives us a stronger foundation for future development.
Building the Windows Version with .NET WPF
For Windows, I rebuilt TimoDesk using .NET and WPF.
The Windows application needed to handle many of the same responsibilities as the macOS application, but Windows has its own APIs, lifecycle behavior, installation requirements, background processes, permissions, and system-level challenges.
The WPF version gives us greater access to the Windows environment and allows us to optimize the experience specifically for Windows users.
Instead of maintaining one general desktop application for every operating system, we can now improve each version based on the strengths and behavior of its platform.
Linux May Be Next
I am also considering building a native Linux version.
The long-term goal is to make TimoDesk highly efficient across all major operating systems.
Linux presents its own challenges because desktop environments, display systems, permissions, and application packaging can vary significantly.
However, a native Linux version would allow TimoDesk to serve more developers, technical teams, remote companies, and organizations that rely heavily on Linux workstations.
TimoDesk Is Becoming More Than a Time Tracker
Time tracking is only one part of the larger vision.
We are building TimoDesk as a complete work operating system for remote teams.
Our team is actively working on:
- Project management
- Task management
- Payroll management
- Remote team operations
- Productivity analytics
- Mobile applications
- AI-powered recommendations
- Cost and performance insights
The objective is simple: teams should not need to move between many disconnected platforms to manage their daily work.
A company should be able to manage projects, assign tasks, track time, monitor productivity, calculate payroll, review team performance, and communicate important work information from one connected system.
Mobile Applications Are Also Coming
We are also developing mobile applications for TimoDesk.
The mobile application will make it easier for users and managers to stay connected to their work from anywhere.
Managers will be able to review team activity, tracked hours, projects, tasks, notifications, and productivity information without always opening the web dashboard.
The mobile experience is an important part of making TimoDesk a complete work solution.
AI Features for Better Productivity
We are also working on AI-powered features.
The purpose of these features is not simply to add AI because it is popular. The goal is to use existing work data to generate useful recommendations.
Based on how teams already use TimoDesk, the platform may be able to suggest:
- Better task allocation
- More accurate project estimates
- Productivity improvements
- Potential workflow problems
- Time-consuming activities
- Opportunities to reduce project costs
- Work patterns that may affect delivery
- Better planning for future projects
The idea is to help teams make better decisions using the work information they already generate.
What I Learned
This project reminded me that developers should not be limited by the technologies they already know.
A month ago, Swift was completely unfamiliar to me.
Today, I have a native macOS application written in Swift and a Windows application written in .NET WPF running in production.
The process was difficult. There were bugs, pressure, unfamiliar APIs, operating system restrictions, and many moments when the next step was not obvious.
But production software is often built that way.
You learn, solve one problem at a time, test constantly, and continue until the product becomes real.
This experience gave me more confidence in my ability to move beyond web development and build deeper, system-level software.
Try TimoDesk
TimoDesk is built for remote teams, agencies, companies, and professionals who need better visibility into projects, time, and productivity.
You can use it to:
- Track project time
- Monitor productivity
- Review application and URL usage
- Capture periodic screenshots
- Manage remote team activity
- Understand how working hours are spent
You can explore TimoDesk at:
This native rewrite is only the beginning. The next stage is to make TimoDesk faster, smarter, more efficient, and capable of becoming the complete work platform remote teams can rely on every day.
Top comments (0)