Skip to content

plumkewe/indie-app-santa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

178 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

example query and indie app santa app

Indie App Santa

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!

Apps

Schema

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

Loading

Queries

Developer Names and Twitter Usernames

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; 

Developer Count by Country

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.08

Top 10 Developers by Number of Apps submitted

SELECT 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         1

Offers

SELECT 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     0

Total Money Saved (2021-2023)

SELECT 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

About

I created this repository to archive previous Indie App Santa deals.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages