This repository archives all December deals from Indie App Santa between 2021 and 2023. Unfortunately, Indie App Santa was acquired and is now filled with AI slop apps that no one cares about. It's quite sad, if you ask me, since it was a win-win proposition for everyone involved: developers, users, and the organiser. I discovered many indie developers through it (not to mention the contributions to the AppRaven community), and I still follow them closely on Twitter, even though many have since moved to platforms like Mastodon and Bluesky.
I spent countless hours updating this repository in the past, mostly because I was pretty stupid back then. It wasn’t perfect or particularly useful, but it had a certain charm. After a while, I created a horrific (in the negative sense of the word) .sql database. It was an abomination, and it's no wonder no one used it.
Now, thanks to Apple’s iTunes API, I’ve created and enriched a .csv file with up to date data.
There's also a .json with every sigle piece data that you can retrive via API.
Important
This repository has nothing to do with Indie App Santa!
This database may contain some inaccurate data!
erDiagram
about {
INT ID_about PK
INT ID_developer FK
TINYINT ID_service FK
TINYTEXT information
}
app {
INT ID_application PK
INT ID_developer FK
TINYTEXT app_name
TINYTEXT app_inline_description
VARCHAR app_itunesID
BIT app_availavility
}
country {
VARCHAR ID_country PK
TINYTEXT country_name
}
deal {
INT ID_deal PK
INT ID_application FK
CHAR ID_offer_type FK
DATE offer_date
DECIMAL money_saved
}
developer {
INT ID_developer PK
TINYTEXT first_name
TINYTEXT last_name
VARCHAR ID_country FK
}
presence {
INT ID_presence PK
INT ID_app FK
TINYINT ID_service FK
TINYTEXT information
}
service {
TINYINT ID_service PK
TINYTEXT service_description
}
type {
CHAR ID_type PK
TINYTEXT offer_description
}
about }|..|| developer : developer_in_question
about }|..|| service : online_service
app }|..|| developer : developer_information
developer }|..|| country : country_of_developer
deal }|..|| app : application_information
deal }|..|| type : type_of_discount
presence }|..|| app : application_in_question
presence }|..|| service : applicarion_presence_service
SELECT Concat(d.first_name, ' ', d.last_name) AS developer_name,
c.country_name,
ab.information AS twitter_username
FROM developer d
LEFT JOIN country c
ON d.id_country = c.id_country
LEFT JOIN about ab
ON d.id_developer = ab.id_developer
AND ab.id_service = 3
WHERE d.first_name IS NOT NULL
AND d.last_name IS NOT NULL
ORDER BY developer_name; SELECT COALESCE(c.country_name, 'No Data') AS country,
Count(*) AS developer_count,
Round(Count(*) * 100.0 / (SELECT Count(*)
FROM developer), 2) AS percentage
FROM developer d
LEFT JOIN country c
ON d.id_country = c.id_country
GROUP BY country
ORDER BY developer_count DESC; Country Developer Count Percentage (%)
United States 19 20.43
United Kingdom 10 10.75
Germany 9 9.68
Netherlands 6 6.45
France 5 5.38
India 4 4.30
No Data 3 3.23
Australia 3 3.23
Switzerland 3 3.23
Italy 3 3.23
Japan 3 3.23
Czech Republic 2 2.15
Spain 2 2.15
Ireland 2 2.15
Norway 2 2.15
New Zealand 2 2.15
Ukraine 2 2.15
Austria 1 1.08
Belgium 1 1.08
Bulgaria 1 1.08
Brazil 1 1.08
Belarus 1 1.08
Canada 1 1.08
Greece 1 1.08
Latvia 1 1.08
Poland 1 1.08
Russia 1 1.08
Singapore 1 1.08
Slovenia 1 1.08
Turkey 1 1.08SELECT Concat(d.first_name, ' ', d.last_name) AS developer_name,
Count(DISTINCT a.id_application) AS number_of_apps
FROM developer d
JOIN app a
ON d.id_developer = a.id_developer
JOIN deal de
ON a.id_application = de.id_application
WHERE Month(de.offer_date) = 12
AND Year(de.offer_date) IN ( 2021, 2022, 2023 )
GROUP BY d.id_developer
ORDER BY number_of_apps DESC
LIMIT 10; Developer Name Number of Apps
Greg Gardner 7
Kriss Smolka 5
Jordi Bruin 3
Khoa Pham 3
François Boulais 2
Ryan McLeod 2
Hidde van der Ploeg 2
Stefan Liesendahl 2
Rony Fedal 2
Thomas Durandx 1SELECT t.offer_description,
Sum(CASE
WHEN Year(de.offer_date) = 2021 THEN 1
ELSE 0
END) AS "2021",
Sum(CASE
WHEN Year(de.offer_date) = 2022 THEN 1
ELSE 0
END) AS "2022",
Sum(CASE
WHEN Year(de.offer_date) = 2023 THEN 1
ELSE 0
END) AS "2023"
FROM deal de
JOIN type t
ON de.id_offer_type = t.id_type
WHERE Month(de.offer_date) = 12
AND Year(de.offer_date) IN ( 2021, 2022, 2023 )
GROUP BY t.offer_description
ORDER BY t.offer_description; Offer Description 2021 2022 2023
PP DISCOUNT 0 13 0
DISCOUNT 4 1 0
FREE 23 11 36
FREE SUBSCRIPTION 0 3 0
SUBSCRIPTION DISCOUNT 0 3 0SELECT Year(offer_date) AS year,
Sum(money_saved) AS total_money_saved
FROM deal
WHERE Month(offer_date) = 12
AND Year(offer_date) IN ( 2021, 2022, 2023 )
GROUP BY Year(offer_date)
ORDER BY year; Year Total Money Saved ($)
2021 241.77
2022 494.72
2023 1267.65
Total 2004.14