nathaniel@dalencon:~/gumit$

ES GL EN

gumit.net
Back to the portfolio

Website live · app in testing on Google Play

Gum It!Mobile game · Android

Blow your bubble-gum bubble, dodge buildings and go further than anyone

A free mobile game and, behind it, a complete product: a leaderboard, an economy of gums that can only be earned by playing, prize draws and its own platform where any business books and pays for its ads. A native Kotlin app, its own PHP and MySQL server and a website in seven languages, all built by me.

gumit.net
languages in the game and website
7
steps to publish an ad
4
of net profits to social causes
10%
a year to play ad-free
€2.99

The product, inside

Real screenshots of the live website.

  • Advertiser platform

    Advertiser platform

    Format and impressions, ad upload, payment and review. Tiered pricing and the VAT summary are calculated live.

  • The website on mobile

    The website on mobile

    Download, languages and access to the advertiser platform from the same home page.

  • Home page in seven languages

    Home page in seven languages

    Chinese, English, French, German, Italian, Japanese and Spanish.

On mobile

The same website, adapted to every screen: real screenshots on a phone.

gumit.net on mobile
gumit.net on mobile

Measured in production

The gumit.net home page, measured on 4 November 2026 with the browser’s own tools.

Total weight
120KB
Requests
8
External dependencies
0
Frameworks
0
  • HTML4 KB
  • CSS1 KB
  • JavaScript3 KB
  • Fonts18 KB
  • Images94 KB
  1. Gum It!120 KB19× lighter
  2. Average website (mobile)2,311 KB

Average website: 2,311 KB and 70 requests on mobile, according to HTTP Archive’s Web Almanac 2024.

  • HTTP/3 + Brotli compression
  • Zero third-party requests: no CDN, no analytics, no Google Fonts
  • Security headers: HSTS, CSP, nosniff, X-Frame-Options, Referrer and Permissions
  • Alt text on 100% of images (3/3)
  • WebP images
  • Fonts served from its own domain
  • Sitemap with 7 URLs
  • Full semantic structure: header, nav, main and footer
~ — curl

$ curl -sI https://gumit.net

HTTP/3 200

strict-transport-security: max-age=15552000

content-security-policy: upgrade-insecure-requests

x-content-type-options: nosniff

x-frame-options: SAMEORIGIN

referrer-policy: strict-origin-when-cross-origin

permissions-policy: camera=(), microphone=(), geolocation=()

Real HTTP headers of gumit.net

What it had to solve

The game is simple on purpose. The hard part is making it pay for itself without breaking a single rule.

  • Hooked in seconds

    One-tap gameplay: one point per building passed, and the bubble pops if it touches one.

  • Self-funding

    AdMob ads, its own ads sold to businesses, and a yearly subscription to play ad-free.

  • No pay-to-win

    Gums cannot be bought: they are only earned by playing and are used to enter prize draws.

  • Play by the rules

    Nothing that puts AdMob at risk, a minimum age of 14 and prize draws for adults only.

  • Ads with no manual work

    Booking, payment, invoice and refund are automatic; review takes one click.

  • Give something back

    10% of net profits goes to social causes.

Architecture: native app and its own server

The game is a native Android app. Everything that has to be reliable —leaderboard, economy, purchases and its own ads— goes through its own PHP and MySQL server.

LayerWhat is thereOrigin
AppGame, menus, high scores and player account (Kotlin, native Android)Hand-made
ServerLeaderboard, gum economy, purchases and prize draws (PHP)Hand-made
DataPlayers, scores, gums, draws and campaigns (MySQL)Hand-made
AdvertisersBooking website, accounts and live statistics (PHP and JavaScript)Hand-made
PaymentsCard, Apple Pay and Google Pay (Stripe)External service
Ads and storeAdMob ads and Google Play purchasesExternal service

How an ad gets published

  1. Format

    Full-screen image or video, always vertical 9:16 and watched in full.

  2. Impressions

    Packs from 1,000 to 100,000,000 impressions: the more you buy, the lower the price per impression.

  3. Upload

    The advertiser uploads the ad at 1080 × 1920.

  4. Payment

    Card, Apple Pay or Google Pay through Stripe, with VAT calculated by country.

  5. Review

    Approve or reject in one click; a rejected ad is not charged.

  6. Publishing

    Automatic invoice and live statistics: reach, visits, country, age and time of day.

gumit.net

What it does

The features you can find on the website today.

  • In closed testing

    One-tap game

    One point per building passed; if the bubble touches a building, it pops.

  • In closed testing

    High scores and leaderboard

    Each player’s best score and their position on the list.

  • In closed testing

    Prize draws

    Entered with gums earned by playing; adults only.

  • In closed testing

    Ad-free

    A €2.99 yearly subscription.

  • Live

    Advertise platform

    Four-step booking, tiered pricing and a live VAT summary.

  • Live

    Stripe payments

    Card, Apple Pay and Google Pay; invoiced on approval and not charged if rejected.

  • Live

    Advertiser accounts

    A dashboard with each ad, its status and live statistics.

  • Live

    Website in seven languages

    Chinese, English, French, German, Italian, Japanese and Spanish.

  • Live

    Legal pages

    Privacy, terms, prize-draw rules, advertising conditions and legal notice.

Challenges and how I solved them

Real problems from the project, the solution I applied and what it achieved.

Monetise without risking AdMob

Problem
A free game lives on advertising, and a single breach of AdMob’s rules can cut off that income.
Solution
Every decision is checked against AdMob’s rules, and its own ads use a single, clear format: full-screen, vertical and watched in full.
Result
Income from AdMob and from its own advertisers

Selling ads without checking payments

Problem
Bank transfers mean checking every payment by hand and delaying publication.
Solution
Automated Stripe payments, invoicing on approval and one-click review; a rejected ad is not charged.
Result
Zero payments to check by hand

Advertisers from anywhere

Problem
It sells to businesses and individuals in any country, and each one is taxed differently.
Solution
The price calculates VAT automatically from the advertiser’s country and shows it in the summary before paying.
Result
A clear final price before paying

Draws with real prizes

Problem
Real prizes change the game’s rating and what each country requires.
Solution
A minimum age of 14 to play and prize draws for adults only; distribution excludes the countries whose rating did not allow it.
Result
Prize draws within Google Play’s rules

Tech stack

~/gumit — bash
App
Kotlin, native Android
Server
PHP, MySQL, own API
Website
HTML5, CSS3, JavaScript, seven languages
Payments
Stripe: card, Apple Pay and Google Pay
Monetisation
AdMob, Google Play purchases and its own ads
Hosting
Hostinger

Try it live

The website and the advertiser platform are live. The app is in closed testing on Google Play ahead of its launch.

Visit gumit.net

Shall we talk?

If you would like me to show you how it is built inside, or you are interested in my profile, write to me.

Or, if you prefer, another channel:

See the rest of the portfolio

gumit.net Email me