DEV Community

Cover image for From Electron to Native Desktop Apps: How I Rebuilt TimoDesk for macOS and Windows
Moniruzzaman Saikat
Moniruzzaman Saikat

Posted on

From Electron to Native Desktop Apps: How I Rebuilt TimoDesk for macOS and Windows

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:

https://timodesk.com

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:

https://timodesk.com

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:

https://timodesk.com

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)