CartoonZoo Whitepaper

This document explains the why behind our application. Leaning into into our target demographic and technical implementations that make the app peformance and experience unique from any other.

CartoonZoo is a daily caption-contest platform built around the craft of writing. Every day a new editorial cartoon anchors a contest. Players submit one caption, vote on others, and collect points that compound into a long-running leaderboard.

The app is built to introduce curated artists in the future. Providing a platform for facilitating an artists' livelyhood.


Thinking of my kids.

As a parent, with another one on the way - my wife and I discuss brain development for our daughter (and future son) often.

CartoonZoo is designed for children as a low-stimulation, activity that supports creativity and reading comprehension. I personally learned how to read with comic strips, and playing multiplayer games online. Cartoon zoo is aimed at replacing that experience as a much better alternative.

No high-retention videos. No infinite scroll. No swipe-to-refresh dopamine pull. The loop is deliberately slow.

What that loop exercises: reading comprehension, visual interpretation, humor, and written expression. What it does not exercise: reflex response, impulse spending, or addictive-design patterns.

For parents, it's what we actually want our own kids doing with screen time.

Trust and Safety

A contest platform for kids cannot be a typical social app. The internet defaults to hostile and adult. CartoonZoo uses four overlapping layers of safety so that a kid can browse on their own and a parent can take a well-earned breather knowing the environment is safe.

Automatic text filtering. Every caption and reply passes through a multi-layer text filter before it reaches the feed. Profanity, slurs, sexual content, leaked personal information, and hate-speech patterns are rejected outright with a specific error message. The filter is tuned for a children's audience, not a general adult one. We would rather block a marginal phrase than let a questionable one through.

Community moderation, two tiers deep. Automated filtering is the floor. A community of real moderators sits on top of it. A single report routes a comment to the first-tier queue; multiple reports auto-escalate it to a senior queue. Moderators work through a swipe-style interface (swipe right for OK, left for not OK, long-press for "not sure"), and each verdict is recorded per-comment. Two agreeing "OK" verdicts clear the comment and raise the bar for future reports against it. Two agreeing "not OK" verdicts remove it. When moderators cannot agree, the comment escalates to an admin. The whole system is visible: a comment under review shows a clear status banner. Nothing disappears silently.


For our competitive players: A Ranking System That Rewards the BEST caption.

Most games reward one thing: time served. CartoonZoo does not. Our scoring formula is built around three ideas that keep the leaderboard meritocratic.

Our incredibly simple formula was hand-crafted, with each decision solving a unique problem. It's difficult to create a ranking system around something as subjective as a caption, so we're monitoring the system closely and have just enough levers to adapt to the results quickly.

Bot protection

Real humans only. Every account signs up with a phone number and SMS verification. That one requirement is the single biggest anti-bot lever we have. The cost of spinning up a throwaway account goes from fractions of a cent (disposable email) to dollars (SIM farms), and the economics kill the casual-harassment and bulk-abuse playbooks that plague captcha-gated communities. Our users are real people, and it shows in the tone of the feed.

Every caption is unique. Before a submission is accepted, it is compared against every other caption already entered in that contest. Exact matches are blocked outright. Near-matches — small edits, reordering, punctuation swaps — trigger a confirmation prompt and a record is kept on both captions. The goal is not to punish duplicate thinking (sometimes two kids genuinely land on the same joke) but to make sure the leaderboard reflects original writing and that copy-paste players cannot farm points.

Taken together, these four layers mean the community polices itself, the content is age-appropriate, the accounts are accountable, and the winners are actually original.


Real-Time, Built for 10,000+ Concurrent Users for every contest.

For every like, reply, caption submission, the UI updates instantly for all viewers within milliseconds. This level of responsiveness for thousands of concurrent users is a technical feat. that hasn't been attempted at this scale. Our platform is designed from the ground up to do exactly this.

The web app and the realtime service are separate processes:

  • The web app is stateless Next.js running on Fly.io, horizontally scaled.
  • The realtime service is a dedicated Socket.IO cluster, also on Fly.io, holding open WebSocket connections and nothing else.
  • They communicate via Upstash Redis pub/sub: a like in the web app publishes a message, and every realtime node subscribed to that image instantly pushes the update to connected clients.

Because the realtime layer has no business logic, only fanout, a single modest instance comfortably holds thousands of connections. Adding capacity is a config change, not a rewrite. The architecture is designed to scale to 10,000+ concurrent viewers on a single contest without per-request database round trips.

On the client side, each page subscribes only to what it needs. A contest page subscribes to that contest's channel. The feed page subscribes to a coarser stream. There is no global state that has to re-render on every event, which keeps the client fast even during peak traffic.


More Artists, More Voices

CartoonZoo is nothing without the art. The daily cartoon is the prompt, the frame, and the culture.

Today the roster is small and curated. That will change. The next phase of the platform is an open submissions process for artists, a review pipeline, and a featured-artist rotation that puts more voices in front of the audience. We want each day to feel like visiting a different gallery.

For players, this means more styles, more subject matter, and more entry points to the platform. For artists, it means a new channel to reach an audience that shows up every day because they love the form.


A Platform That Pays Artists

The hard truth about editorial cartooning is that it pays worse every year. Syndicates consolidate, outlets cut features, and the artists who kept the form alive are being asked to do it as a hobby.

We do not think the form is dying. We think the distribution model crushing the talent pool. CartoonZoo is designed so that artists are paid when their work drives engagement. The majority of revenue will be directly given to artists for their work, tied directly to their work and community. The better the cartoon performs (more players, more captions, more likes), the larger the payout.

The goal is not a stipend. The goal is a real living. We want CartoonZoo to be a place where a talented editorial cartoonist can sustain a full career on their work alone.


One Platform, Three Devices

As a solo developer - even with AI - it would be difficult to maintain 2 native applications for IOS and Android. The web is where CartoonZoo lives today, but it is not where most people read cartoons. We are shipping native iOS and Android clients alongside the web. The same daily contest, the same live leaderboard, the same profile, wherever the reader is.

The native apps are built with Capacitor, which lets us wrap the same Next.js codebase in a native shell. One team, one code path, three distribution surfaces. Push notifications on mobile, deep links to share captions, fast navigation on all three.