Work Timer

screenshot of Work Timer
react
remix
mantine
prisma

Time tracking app built with Remix, supports authentication, projects management, and monthly or custom reports

Overview

WorkTimer is a time tracking app built with Remix that offers various features such as authentication, projects management, and monthly or custom reports. It is designed to be self-hosted, meaning it can be hosted on any platform of your choice, and the best part is that you can use it for free.

Features

  • Time entries management: WorkTimer allows you to easily manage your time entries, making it convenient to keep track of how you spend your time on different tasks or projects.
  • Authentication: The app supports authentication, which means that you can securely access your time tracking data by logging in with your credentials.
  • Multi-user support: WorkTimer provides multi-user support with an admin role, allowing multiple users to use the app and manage their own time entries.
  • Projects management: With WorkTimer, you can efficiently manage your projects by organizing and categorizing your time entries based on different projects or tasks.
  • Monthly or custom reports: The app provides the option to generate monthly reports or custom reports, enabling you to analyze and review your time tracking data in a convenient and customizable format.
  • Import/Export to CSV: WorkTimer offers the ability to import and export your time tracking data in CSV format, allowing for seamless integration and data transfer with other applications.

Pre-built Docker Image

If you prefer using a pre-built Docker image, you can simply run it using the following command:

docker run -p 3000:3000 nicolazambello/worktimer

Docker Compose

For more flexibility and customization, you can use Docker Compose. Here's an example of a docker-compose.yml file with Traefik as a reverse proxy:

version: '3'
services:
  app:
    image: nicolazambello/worktimer
    ports:
      - 3000:3000
    environment:
      # Add your configuration variables here
      - DATABASE_URL=...
      - AUTH_SECRET=...
      - REMIX_APP_ENV=production
      - REMIX_LOOKUP_CONFIG_PATH=.remixrc
      - REMIX_SESSION_SECRET=verysecret
      - REMIX_CSRF_SECRET=csrfsecret
    
  traefik:
    image: traefik:v2.4
    command:
      - --api.insecure=true
      - --providers.docker=true
    ports:
      - 80:80
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Custom Deployment or Development

If you have specific requirements or want to customize the deployment or development process, you can follow the instructions provided in the documentation.

Summary

WorkTimer is a powerful time tracking app built with Remix. It offers features such as time entries management, authentication, projects management, and monthly or custom reports. With its self-hosting capability, you can easily use WorkTimer on any platform of your choice. Whether you are a freelancer, a small team, or an individual looking to track your time efficiently, WorkTimer provides the tools you need to stay organized and productive.

react
React

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components

remix
Remix

Remix is a modern JavaScript framework that focuses on building fast and performant web applications. It emphasizes a combination of server-rendered content and client-side interactivity, offering a robust architecture for creating scalable and maintainable projects.

mantine
Mantine UI

A fully featured React components library. 100+ components, 50+ hooks.

prisma
Prisma

Prisma is a server-side library that helps developers read and write data to the database in an intuitive, efficient and safe way.

fullstack
Fullstack

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.

zod
Zod

Zod is a TypeScript-first schema declaration and validation library. It allows you to define schemas that can validate data at runtime while providing excellent TypeScript inference, making it perfect for API validation, form validation, and type-safe data handling.