Car Gatcha Collector Game

Who said we can’t build games in Adalo?

Five years ago, I built a simple car collector app on Adalo: Car Collector 2021. It was fun but limited. Adalo’s native components could only take it so far. I shelved it and moved on.

Well, I picked it back up. This time, with a completely different approach.

Play the PWA here!

:warning: TEST IT FROM A REAL MOBILE PHONE, not Adalo mobile previewer on PC. Many things are broken on preview such as image cards and React Native modals that go full screen. Test from your phone please!!!

The Concept

Car Gatcha Collector is a gacha-style car collecting game built entirely inside a single custom React Native component. One index.js file (~1,160 lines) handles everything: pack opening, garage, marketplace, leaderboard, missions, collections, and all animations.

The Adalo backend handles the database (users, owned cars, marketplace listings, collections) and user authentication. The component handles all the game logic, UI, and animations internally.

What’s Inside

6 pack tiers from Daily Pull (free) to Prestige (30,000 coins), each with different drop rates that scale from 84% Common down to 40% Mythic.

55+ cars across 10 themed collections: JDM Legends, Italian Classics, Rally Legends, American Muscle, Hot Hatch Heroes, French Touch, German Precision, British Royalty, Supercar Elite, Everyday Heroes.

5 rarity tiers (Common, Rare, Epic, Legendary, Mythic) each with tier-colored animations.

Pack opening animation that scales with rarity. A Common gets a gentle shake. A Mythic gets an earthquake with full-screen flash and 35 particles. The charging, shake intensity, flash brightness, and particle count all change based on what you pulled.

“Open Again” button after each pull so you can chain-open packs without going back to the shop.

Marketplace where players sell cars to each other at their own price.

Quick Sell to sell duplicates instantly to the game at base value.

Collection system where completing themed sets earns you coin rewards (5,000 to 25,000 coins).

Leaderboard ranked by completed collections, with tappable player profiles showing their full garage.

65+ missions across 3 categories (Collector, Trader, Explorer) with claimable rewards that sort automatically with ready-to-claim missions at the top.

Parallax carousel on the home screen showing your best cars.

Swipe-to-close bottom sheets using PanResponder.

Animated coin/score counters that increment in real time when you earn or spend.

“New!” and “Duplicate” badges on pack reveals so you know instantly if it’s a first pull.

Tier filters and search in both Garage and Marketplace.

Multilingual with Italian and English, auto-detected from device language.

Dark theme throughout, no gradients or shadows (Android-safe).

The Architecture

This follows my usual Adalo custom component pattern:

Single index.js file as Adalo’s component system requires. Module-level variables to survive Adalo’s frequent remounts. autosaveInput props for real-time persistence (coins, score, totalCars, etc.). useNativeDriver: true on every animation for native thread performance. No external libraries beyond what Adalo provides (React Native core, AsyncStorage, react-native-svg). All user matching by email (not username) for multi-device consistency.

The component communicates with Adalo through props (lists in, autosave values, actions out). Pack results, marketplace listings, and purchases all flow through Adalo actions that create/update/delete database records.

Current State

Right now we’re testing as a Progressive Web App with a group of friends. It works, it’s playable, and it’s fun. But the animations lag on mobile web because useNativeDriver doesn’t truly run on the native UI thread inside a WebView. It falls back to JavaScript-driven animation.

What’s Next: Native Builds

I’m about to build the Android AAB and iOS Testflight through Adalo’s build pipeline. The performance difference will be significant.

useNativeDriver: true will actually work. Animations will run on the native UI thread at 60fps instead of being bottlenecked by the JS bridge. Pack opening animations (charging, shake, flash, particle explosion) will be buttery smooth. List scrolling through 100+ cars in the garage will be instant. The parallax carousel will feel like a native app.

This is the biggest advantage of building as a React Native component rather than a web component. When it ships as a native app, you get native performance for free.

Built With

Adalo (backend, auth, database, build pipeline), React Native (via Adalo custom component), Animated API with native driver, react-native-svg for all icons, AsyncStorage for local state (claimed missions, claimed collections), PanResponder for swipe gestures.

Looking forward to sharing the Play Store and App Store links soon. Happy to answer any questions about building game-like experiences with Adalo custom components.

Some screenshots here

Eugenio, Cheip Studio

5 Likes

One of the coolest apps I’ve seen on adalo - design, user experience, idea. It’s amazing. Will some of the animations and components that built the app be available for purchase in your store?

2 Likes

Thanks a lot for the kind words Nadav :raising_hands:

Actually the component was built specifically for this app/game, but animations and logics can be implemented in other components too :flexed_biceps:

2 Likes

I love it! Nice!

1 Like

Hey @Eugen Love what you’ve done with the app!

1 Like

Thanks a lot Gabrial!!!

Home screen revamped, now everything on it, trowed the nav bar. Less app more game. Red dot to show unclaimed missions/collections.

1 Like

The UI… Masterclass!!! :chef-kiss: Amazing work as always, Eugen!

1 Like

Thank you as always, still a lot of improvements can be made :raising_hands::raising_hands::raising_hands:

2 Likes

Let’s go, bro!!! This is incredible… big things are coming! Finishing up the components to get started.
Cheers!

1 Like

Hello, sharing a major update :fire::fire:

Pack System Rebalanced

Reworked all drop rates and pricing to match the actual car pool. Basic costs 400, Premium 1500, Ultra 8000, Master 15000, Prestige 25000. Every pack is slightly EV-negative to keep the economy healthy. Higher tier packs now have thicker borders and tinted backgrounds in the shop so they stand out visually.

Pack Opening Animations

Full rework of the opening sequence. The box breathes then vibrates with increasing intensity before exploding. Two concentric rings expand outward during the flash. The revealed card falls from the top with smooth easing. Buttons fade in after the card lands. Legendary and Mythic pulls get a pulsing glow border on the card.

Home Screen

Used sticky-true in the manifest so Adalo stops wrapping the component in its own ScrollView. Now the header with username and coins stays pinned at the top while content scrolls below. Best cars carousel is also pinned in Home Screen. Stats card shows the best car thumbnail by highest value. Red dots on Collections and Missions buttons when there is something to claim.

Mission Redesign

New mission cards with SVG icons per mission type. Garage icon for car missions, box for packs, coin for spending, market bag for trading, star for score, trophy for collections. Claimed missions show subtle opacity instead of ugly strikethrough.

Collections Info Modal

Each car in the modal now shows colored pack dots with drop percentages so you know where to find missing cars. Compact single row layout. Claimed collections show a subtle check text instead of a big green button.

Marketplace

New “Not Owned” filter to see only cars you are missing. Buy button shows the price inline. Sold animation with shrink and green check overlay. Smaller search bar and filters.

Leaderboard Profile

Tapping a player now shows their best car with thumbnail image above their car grid.

Layout

The sticky manifest option was the biggest win. Headers, tabs, search bars all stay fixed now. Only lists scroll. Also fixed SVG icon centering and carousel card alignment.

Reveal Buttons

After a pull, CONTINUE and OPEN sit side by side when you can afford to reopen. Just CONTINUE centered when you cant. Keeps the player in the flow.

Link on top of the tread :fire::fire::fire::racing_car::trophy:

1 Like

Have Android? Wanna help me test the game before release? DM your email (same as your PlayStore account) and I’ll add you into tests!
Thanks to everyone

https://play.google.com/store/apps/details?id=com.secondream.cargatchacollector

2 Likes