Skip to the content
Year

The year in numbers

From 25 Jan 2026 to the day this page was built, I made 9,057 commits in 15 repositories, on 214 days and in 1,772 hours that each have at least one commit. Every number links to the command that counted it, at the end of the page.

Days

Every day with a commit

The longest run of days with a commit is 67 days, to 11 Oct 2026, and the current one is 67 days. The busiest day was 5 Oct 2026, with 524 commits.

Commits per dayA darker square holds more commits
The table
DayCommits
25 Jan 20262
30 Jan 20261
31 Jan 20261
8 Feb 20263
12 Feb 202614
13 Feb 202613
14 Feb 202617
15 Feb 20262
16 Feb 20261
17 Feb 20267
18 Feb 202615
19 Feb 202628
20 Feb 202615
22 Feb 20267
23 Feb 202611
24 Feb 202617
25 Feb 202610
1 Mar 20263
4 Mar 202611
5 Mar 20261
6 Mar 202613
7 Mar 202618
10 Mar 202624
11 Mar 202634
12 Mar 20267
17 Mar 20263
18 Mar 202653
19 Mar 202646
20 Mar 20263
21 Mar 20264
22 Mar 202619
24 Mar 202619
25 Mar 202679
26 Mar 202610
27 Mar 202648
28 Mar 202617
29 Mar 202616
30 Mar 20269
31 Mar 202638
1 Apr 202652
2 Apr 202619
3 Apr 202615
4 Apr 202683
5 Apr 202655
6 Apr 202612
7 Apr 20263
8 Apr 202611
9 Apr 202642
10 Apr 20268
13 Apr 202611
14 Apr 202631
15 Apr 202657
16 Apr 202633
17 Apr 202649
18 Apr 202614
19 Apr 202618
20 Apr 202649
21 Apr 202615
22 Apr 202687
23 Apr 202681
24 Apr 202642
25 Apr 202614
27 Apr 20264
29 Apr 202611
30 Apr 202615
1 May 20267
2 May 20264
3 May 202655
4 May 202631
5 May 202688
6 May 202610
7 May 202654
8 May 202635
9 May 202626
10 May 20269
11 May 202618
12 May 20265
13 May 20269
14 May 20265
15 May 20269
16 May 202628
17 May 202639
18 May 202629
19 May 202623
20 May 202620
21 May 202654
22 May 202631
23 May 202615
24 May 202612
27 May 20261
28 May 20262
29 May 20263
30 May 20265
5 Jun 20261
6 Jun 202635
7 Jun 202612
8 Jun 20266
9 Jun 20268
11 Jun 20264
14 Jun 20263
15 Jun 20265
16 Jun 20269
17 Jun 202624
18 Jun 202618
19 Jun 20265
21 Jun 20267
22 Jun 20264
24 Jun 20261
25 Jun 20261
26 Jun 20264
27 Jun 202612
28 Jun 2026121
29 Jun 202641
30 Jun 202611
1 Jul 202636
2 Jul 202649
3 Jul 202629
4 Jul 202642
5 Jul 202618
6 Jul 202612
7 Jul 202625
8 Jul 202637
9 Jul 202623
10 Jul 202640
11 Jul 20265
12 Jul 202625
13 Jul 202637
14 Jul 202628
15 Jul 202635
16 Jul 20269
19 Jul 202610
20 Jul 202633
21 Jul 202640
22 Jul 202636
23 Jul 202618
24 Jul 202627
25 Jul 202624
26 Jul 20266
27 Jul 202626
28 Jul 202635
29 Jul 202636
30 Jul 202643
31 Jul 202638
1 Aug 202663
2 Aug 202628
3 Aug 202614
4 Aug 202613
6 Aug 20269
7 Aug 202695
8 Aug 202680
9 Aug 202612
10 Aug 202613
11 Aug 202627
12 Aug 202615
13 Aug 2026103
14 Aug 202614
15 Aug 20264
16 Aug 202615
17 Aug 202639
18 Aug 202619
19 Aug 202637
20 Aug 202652
21 Aug 202615
22 Aug 202698
23 Aug 202644
24 Aug 202639
25 Aug 202689
26 Aug 202636
27 Aug 202621
28 Aug 202636
29 Aug 202631
30 Aug 202635
31 Aug 202669
1 Sep 202613
2 Sep 202678
3 Sep 202624
4 Sep 202645
5 Sep 2026101
6 Sep 202657
7 Sep 202633
8 Sep 202656
9 Sep 202680
10 Sep 202625
11 Sep 2026188
12 Sep 202617
13 Sep 202623
14 Sep 2026141
15 Sep 2026123
16 Sep 2026118
17 Sep 202616
18 Sep 202656
19 Sep 202645
20 Sep 2026196
21 Sep 202649
22 Sep 20267
23 Sep 202659
24 Sep 2026172
25 Sep 2026288
26 Sep 202676
27 Sep 202688
28 Sep 202625
29 Sep 202661
30 Sep 2026107
1 Oct 2026102
2 Oct 2026140
3 Oct 202643
4 Oct 2026195
5 Oct 2026524
6 Oct 2026262
7 Oct 2026201
8 Oct 2026207
9 Oct 2026285
10 Oct 2026246
11 Oct 202669
Months

Month by month

Each bar is a calendar month in Copenhagen time. The repositories are counted together, each commit once.

Hours

Around the clock

3,565 commits, 39 %, were made between midnight and six in the morning, and 2,372 on a Saturday or Sunday. The busiest hour held 95 commits.

Code

The lines written

4,423,214 lines of code and 1,374,240 lines of Markdown were added in 47,441 files. Generated and copied files are left out: they added 3,107,015 lines more.

Merges

Pull requests

988 pull requests were merged. From opened to merged took 5.9 minutes in the middle case, and 84 % were merged within an hour. The most in one day was 111, on 25 Sep 2026.

Pull requests merged per month
The table
Pull requests merged per repository
The table
Claude

Working with Claude Code

7,344 commits, 81 %, name Claude as a co-author. In 1,151 sessions Claude made 331,120 tool calls, and at most 9 sessions, or 28 with their agents, worked in the same ten minutes. Up to 30 May 2026 the counts are Claude Code’s own per day; after it they come from the transcripts, where 2.4 % of the tool calls ended in an error and Claude edited 10,652 files.

Sessions per month
The table
Tool calls per month
The table
Tool calls per toolFrom the transcripts
The table
Ten-minute windows by the sessions at work in them
The table
Sessions at workWindows
13,030
21,259
3517
4176
569
655
732
88
91
Prompts per hour of the dayFrom the transcriptsDay and eveningMidnight to six
The table
Linear

Plans and decisions in Linear

Since 28 Aug 2026 every plan, decision and status is written in Linear: 558 issues in 33 projects, and 103 of them decisions. 278 are completed, 223 of them within a day of being written, and the middle one took 2.7 hours.

Issues per team
The table
Production

In production

13 Cloudflare Workers answer in production. RAMTT’s database is built by 109 migrations with 46,888 lines of SQL, which create 416 tables and 1,016 row level security policies.

Cloudflare
Workers13
RAMTT’s database
Migrations109
Lines of SQL46,888
Tables416
Policies1,016
Beginnings

Where each repository began

The first commit of the year in each repository, in the order they began.

RepositoryFirst commit
First platform25 Jan 2026
RAMTT Cowork8 Feb 2026
Design Cowork15 Feb 2026
First website5 Mar 2026
Second website19 Mar 2026
Prototypes24 Mar 2026
RAMTT monorepo5 Apr 2026
RAMTT before the rewrite3 May 2026
RAMTT marketing22 Jul 2026
Studio site1 Aug 2026
Zibaldone28 Aug 2026
Dotfiles9 Sep 2026
Context bundle9 Sep 2026
Portfolio29 Sep 2026
Design system30 Sep 2026
May

RAMTT on 14 May 2026

An overview of RAMTT counted the monorepo as it stood that day. Each figure is quoted from its line in the file.

What was countedThenWhere it stands
Lines of TypeScript in the RAMTT monorepo582,849WORKING-OVERVIEW-2026-05-14.md, line 25
Database tables296WORKING-OVERVIEW-2026-05-14.md, line 37
API routes392WORKING-OVERVIEW-2026-05-14.md, line 43
Engines91WORKING-OVERVIEW-2026-05-14.md, line 49
Wearable platforms connected8WORKING-OVERVIEW-2026-05-14.md, line 55
UI components310WORKING-OVERVIEW-2026-05-14.md, line 67
Sources

The command behind each number

site/collect.mjs ran these commands on 11 Oct 2026, through the queue that runs one large job at a time on the Mac. The scripts are in site/year/, and their whole outputs are in site/data/.

Commits

Read by site/year/yearstats.py from every branch of the local copies and from the GitHub API for the repositories only there. A commit is counted once, in the first repository that holds it, by its time and subject; bots are left out and times are Copenhagen time.

Commits9,057

Read on 11 Oct 2026 in the portfolio folder, from commits in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Days with a commit214

Read on 11 Oct 2026 in the portfolio folder, from active_days in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Hours with a commit1,772

Read on 11 Oct 2026 in the portfolio folder, from active_hours in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Days from the first commit to the last260

Read on 11 Oct 2026 in the portfolio folder, from span_days in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Longest run of days with a commit67days

Read on 11 Oct 2026 in the portfolio folder, from longest_streak_days in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Days in a row with a commit, up to the last67days

Read on 11 Oct 2026 in the portfolio folder, from current_streak_days in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Commits on the busiest day524

Read on 11 Oct 2026 in the portfolio folder, from busiest_day in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Commits in the busiest hour95

Read on 11 Oct 2026 in the portfolio folder, from max_in_one_hour in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Commits between midnight and six3,565

Read on 11 Oct 2026 in the portfolio folder, from night_0_to_6 in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Commits on a Saturday or Sunday2,372

Read on 11 Oct 2026 in the portfolio folder, from weekend in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Commits written with Claude7,344

Read on 11 Oct 2026 in the portfolio folder, from claude_coauthored in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
First commit of the year25 Jan 2026

Read on 11 Oct 2026 in the portfolio folder, from first_commit in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Repositories with a commit in the year15

Read on 11 Oct 2026 in the portfolio folder, from per_repo in its output.

python3 -I site/year/yearstats.py site/data/year-yearstats.json
Share of the commits written with Claude81%

It divides the commits that name Claude as a co-author by all the commits. It is calculated from commits written with Claude and commits.

Lines

Read by site/year/numstat.py from the diffs of the local copies, without merges. Files in vendor, node_modules, dist and generated folders, lock files, JSON, SVG and source maps are counted apart.

Lines of code added4,423,214

Read on 11 Oct 2026 in the portfolio folder, from total.code_added in its output.

python3 -I site/year/numstat.py site/data/year-numstat.json
Lines of Markdown added1,374,240

Read on 11 Oct 2026 in the portfolio folder, from markdown_added in its output.

python3 -I site/year/numstat.py site/data/year-numstat.json
Lines added by hand or with Claude, in every kind of file9,238,979

Read on 11 Oct 2026 in the portfolio folder, from total.written_added in its output.

python3 -I site/year/numstat.py site/data/year-numstat.json
Lines added in generated and copied files3,107,015

Read on 11 Oct 2026 in the portfolio folder, from total.generated_added in its output.

python3 -I site/year/numstat.py site/data/year-numstat.json
Files changed, without generated ones47,441

Read on 11 Oct 2026 in the portfolio folder, from written_files_touched in its output.

python3 -I site/year/numstat.py site/data/year-numstat.json

Pull requests

Read with the GitHub CLI, the time each was opened and merged.

Merged pull requests988

Read on 11 Oct 2026 in the GitHub API, once for each of RAMTT monorepo, Zibaldone, Design system, Context bundle, Portfolio, Dotfiles, from one line per pull request in its output.

gh pr list -R <owner>/<repository> --state merged --limit 5000 --json number,createdAt,mergedAt --jq '.[] | [.number, .createdAt, .mergedAt] | @tsv'
Minutes from opened to merged, the median5.9minutes

It is the middle of the times from a pull request being opened to its merge. It is calculated from merged pull requests.

Share of the pull requests merged within an hour84%

It divides the pull requests merged within an hour of being opened by all of them. It is calculated from merged pull requests.

Pull requests merged on the busiest day111

It is the date in Copenhagen time with the most merges, and the date is kept with the number. It is calculated from merged pull requests.

Claude

Read by site/year/claude.py from Claude Code’s own daily counts up to their last day, and after it from the transcripts kept on the Mac and in the archive, each session once by its id. It keeps counters only.

Claude Code sessions1,151

Read on 11 Oct 2026 in ~/.claude and ~/Archive/claude-projects-orphans-2026-09-09, from sessions in its output.

python3 -I site/year/claude.py site/data/year-claude.json
Tool calls Claude made331,120

Read on 11 Oct 2026 in ~/.claude and ~/Archive/claude-projects-orphans-2026-09-09, from tool_calls in its output.

python3 -I site/year/claude.py site/data/year-claude.json
Prompts written to Claude, from the transcripts4,359

Read on 11 Oct 2026 in ~/.claude and ~/Archive/claude-projects-orphans-2026-09-09, from prompts in its output.

python3 -I site/year/claude.py site/data/year-claude.json
Sessions at work in the same ten minutes, at most9

Read on 11 Oct 2026 in ~/.claude and ~/Archive/claude-projects-orphans-2026-09-09, from parallel_peak_sessions in its output.

python3 -I site/year/claude.py site/data/year-claude.json
Sessions and their agents at work in the same ten minutes, at most28

Read on 11 Oct 2026 in ~/.claude and ~/Archive/claude-projects-orphans-2026-09-09, from parallel_peak_agents in its output.

python3 -I site/year/claude.py site/data/year-claude.json
Files Claude edited, from the transcripts10,652

Read on 11 Oct 2026 in ~/.claude and ~/Archive/claude-projects-orphans-2026-09-09, from files_edited in its output.

python3 -I site/year/claude.py site/data/year-claude.json
Last day Claude Code’s own daily counts are read for30 May 2026

Read on 11 Oct 2026 in ~/.claude and ~/Archive/claude-projects-orphans-2026-09-09, from cutoff in its output.

python3 -I site/year/claude.py site/data/year-claude.json
Share of the tool calls that ended in an error, from the transcripts2.4%

It divides the tool results marked as an error by all the tool results in the transcripts. It is calculated from tool calls Claude made.

Linear

Read by site/year/linear.py through Linear’s GraphQL API, every issue and project of the workspace, with the key in the Keychain. It keeps counts only.

Issues in Linear558

Read on 11 Oct 2026 in Linear’s API, workspace ramtt, from issues in its output.

python3 -I site/year/linear.py site/data/year-linear.json
Issues completed278

Read on 11 Oct 2026 in Linear’s API, workspace ramtt, from completed in its output.

python3 -I site/year/linear.py site/data/year-linear.json
Issues completed within a day of being written223

Read on 11 Oct 2026 in Linear’s API, workspace ramtt, from completed_within_a_day in its output.

python3 -I site/year/linear.py site/data/year-linear.json
Hours from an issue written to completed, the median2.7hours

Read on 11 Oct 2026 in Linear’s API, workspace ramtt, from median_hours_to_complete in its output.

python3 -I site/year/linear.py site/data/year-linear.json
Decisions written as issues with the label decision103

Read on 11 Oct 2026 in Linear’s API, workspace ramtt, from decisions in its output.

python3 -I site/year/linear.py site/data/year-linear.json
Projects in Linear33

Read on 11 Oct 2026 in Linear’s API, workspace ramtt, from projects in its output.

python3 -I site/year/linear.py site/data/year-linear.json
First issue in Linear28 Aug 2026

Read on 11 Oct 2026 in Linear’s API, workspace ramtt, from first_issue in its output.

python3 -I site/year/linear.py site/data/year-linear.json

Production

The Workers are asked for their deployments by site/year/workers.sh, and the database is counted in its migrations.

Cloudflare Workers in production13

Read on 11 Oct 2026 in the portfolio folder, from one line per Worker that answers in its output.

sh site/year/workers.sh
Database migrations109

Read on 11 Oct 2026 in ~/Projects/RAMTT.

ls ~/Projects/RAMTT/apps/app/supabase/migrations/*.sql | wc -l
Tables the migrations create416

Read on 11 Oct 2026 in ~/Projects/RAMTT.

cat ~/Projects/RAMTT/apps/app/supabase/migrations/*.sql | grep -ciE '^[[:space:]]*create table'
Row level security policies the migrations create1,016

Read on 11 Oct 2026 in ~/Projects/RAMTT.

cat ~/Projects/RAMTT/apps/app/supabase/migrations/*.sql | grep -ciE 'create policy'
Lines of SQL in the migrations46,888

Read on 11 Oct 2026 in ~/Projects/RAMTT.

cat ~/Projects/RAMTT/apps/app/supabase/migrations/*.sql | wc -l

The early record

Quoted from the overview of RAMTT named in each command, each figure from its line.

Lines of TypeScript in the RAMTT monorepo582,849

Read on 11 Oct 2026 in ~/ramtt_bank/decisions/project_overview_md, from the file ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md.

grep -n -x -A2 '582.849' ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md
Database tables296

Read on 11 Oct 2026 in ~/ramtt_bank/decisions/project_overview_md, from the file ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md.

grep -n -x -A2 '296' ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md
API routes392

Read on 11 Oct 2026 in ~/ramtt_bank/decisions/project_overview_md, from the file ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md.

grep -n -x -A2 '392' ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md
Engines91

Read on 11 Oct 2026 in ~/ramtt_bank/decisions/project_overview_md, from the file ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md.

grep -n -x -A2 '91' ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md
Wearable platforms connected8

Read on 11 Oct 2026 in ~/ramtt_bank/decisions/project_overview_md, from the file ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md.

grep -n -x -A2 '8' ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md
UI components310

Read on 11 Oct 2026 in ~/ramtt_bank/decisions/project_overview_md, from the file ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md.

grep -n -x -A2 '310' ~/ramtt_bank/decisions/project_overview_md/WORKING-OVERVIEW-2026-05-14.md