Skip to content
Walid Karray
Go back

Why I Stopped Paying for Time-Tracking SaaS and Built Presto Instead

You’re a freelancer. You track billable days. You send activity reports to clients. Why does your tooling feel like it was built for a 500-person company?

Most time-tracking apps are designed for teams, managers, and enterprise workflows. They come with seat-based pricing, bloated dashboards, and features you’ll never touch. All you need is a clean monthly report showing which days you worked — and maybe a PDF to attach to your invoice.

That’s exactly what Presto does. Nothing more, nothing less.

What Is Presto?

Presto is an open-source, self-hosted activity report generator. It lets you:

It’s MIT-licensed, fully self-contained, and takes under 2 minutes to deploy.

The Dashboard: Your Year at a Glance

When you open Presto, the first thing you see is your activity dashboard — a card-based overview of all your reports for the year, grouped by client.

Presto Dashboard — Activity report cards grouped by client, with calendar previews and revenue

Presto Dashboard — Activity report cards grouped by client, with calendar previews and revenue

Each card shows the month, mission name, a mini calendar preview (so you can visually spot worked days), the number of days billed, and the revenue. Reports are color-coded by client and tagged as Draft or Validated.

You can filter by company or client, navigate between years, and create a new report in two clicks.

No clutter. No Gantt charts. Just your work, organized by month.

The Report Editor: Click, Fill, Done

The heart of Presto is the calendar-based report editor. Each day in the month is a clickable cell — tap once for a full day, tap again for a half day, tap again to clear it. That’s it.

Presto Activity Report Editor — Calendar view with full days, half days, and holiday markers

Presto Activity Report Editor — Calendar view with full days, half days, and holiday markers

The side panel shows you a live summary: days worked out of available workdays, your daily rate, and the total amount. When a report is complete, toggle it to Validated and hit Export PDF to generate a print-ready document.

Features that save real time:

Reporting: Know Your Numbers

The Reporting page gives you a high-level view of your freelance business for the year.

Presto Reporting Dashboard — KPIs, revenue charts, and utilization gauge

Presto Reporting Dashboard — KPIs, revenue charts, and utilization gauge

Four KPI cards at the top:

Below that, interactive charts break down revenue by client (stacked bar), client distribution (donut), and monthly trends for both revenue and days.

If you work with clients in different currencies (EUR, USD, GBP…), Presto automatically converts everything to your base currency using live exchange rates. You see one unified number.

PDF Export: Professional Reports in Seconds

When a report is validated, Presto generates a server-side PDF using React PDF. The output includes:

The filename is auto-generated (e.g., Acme_Corp-API_Project-2025-12.pdf). Download, attach to your invoice email, done.

Multi-Client, Multi-Currency, Multi-Language

Presto is built for freelancers who juggle multiple clients across borders:

Deploy in 60 Seconds

Presto ships as a single Docker image. No microservices, no separate frontend container, no Redis, no message queue. Just the app and PostgreSQL.

# docker-compose.yml
services:
  presto:
    image: axforge/presto:latest
    ports:
      - "8080:8080"
    environment:
      DATABASE_URL: postgresql://presto:secret@db:5432/presto
      JWT_SECRET: your-secret-key-min-32-characters-long
    depends_on:
      - db

  db:
    image: postgres:17-alpine
    environment:
      POSTGRES_USER: presto
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: presto
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:
docker compose up -d

Open http://localhost:8080, create an account, and start tracking.

Single-user mode

If you’re the only user, skip authentication entirely:

environment:
  AUTH_DISABLED: "true"

No login screen. No password. Just open the app and go.

Lock it down after setup

Created your account? Disable registration so nobody else can sign up:

environment:
  REGISTRATION_ENABLED: "false"

The Tech Behind It

For the curious:

Migrations run automatically at startup. The Docker image is a multi-stage build that produces a lean Alpine-based container.

Who Is Presto For?

Presto is for freelancers and independent consultants who:

If you’ve been using spreadsheets, Notion templates, or overpriced time trackers to do what is fundamentally a simple task — Presto is your exit ramp.

Get Started

Star the repo if you find it useful. Contributions and feedback are welcome.

Presto is open-source and actively maintained. Built by a freelancer, for freelancers.


Share this post:

Previous Post
This CLI Tool Solved My AWS SSO Credentials Nightmare (DEPRECATED)
Next Post
Quick Guide: Automating Tailscale Certificate Configuration on Synology DSM