Skip to content

Social Media Intelligence platform for YouTube analytics — built during StartupBus Europe 2013 (Symfony 2.4 + Redis + YouTube API)

License

Notifications You must be signed in to change notification settings

jordicor/MoonMetrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoonMetrics

Social Media Intelligence Platform for YouTube (2013-2015)

MoonMetrics was a web platform that provided analytics, metrics, and actionable insights for YouTube channels and content creators. Built during StartupBus Europe 2013 and developed until early 2015.

MoonMetrics Home


Features

  • Channel Analytics - Track subscribers, views, video count, and growth over time
  • Video Statistics - Detailed metrics for individual videos
  • YouTube Backlink Analysis - First platform to analyze which channels linked to others (unique feature in 2014)
  • Automated Optimization Checklist - Actionable recommendations to improve channel performance
  • Channel Discovery - Algorithms to find and index new YouTube channels
  • Rankings - Top channels by subscribers, views, and growth
  • Continuous Monitoring - Automated tracking of millions of channels

Channel Checklist Rankings


Tech Stack

Backend:

  • PHP 5.5+
  • Symfony 2.4 (MVC Framework)
  • Doctrine ORM (Database abstraction)
  • Redis (Queue system + caching)
  • MySQL

APIs & Integrations:

  • YouTube Data API v3
  • Google OAuth
  • Facebook OAuth (via HWIOAuthBundle)
  • LinkedIn OAuth
  • Bit.ly API (URL shortening)

Frontend:

  • Twig (Template engine)
  • Bootstrap
  • jQuery
  • Highcharts (Data visualization)

Infrastructure:

  • Asynchronous job queue with Redis
  • 12 CLI commands for batch processing
  • Web scraping for additional data

Architecture

src/
└── Acceseo/
    ├── MoonmetricsBundle/          # Main application bundle
    │   ├── Command/                # 12 CLI commands for batch operations
    │   │   ├── AsyncIndexallCommand
    │   │   ├── PerformIndexChannelCommand
    │   │   ├── PerformIndexVideoCommand
    │   │   ├── PerformRefreshChannelCommand
    │   │   └── ...
    │   ├── Controller/             # Web controllers
    │   ├── Entity/                 # Doctrine entities
    │   │   ├── Channel
    │   │   ├── ChannelStatistics
    │   │   ├── Video
    │   │   ├── VideoStatistics
    │   │   ├── User
    │   │   └── ...
    │   ├── Services/               # Business logic
    │   └── Resources/
    │       └── views/              # Twig templates
    │
    └── VideoApiBundle/             # YouTube API integration
        └── Services/
            ├── GoogleApiService    # YouTube Data API wrapper
            ├── YoutubeProxyService # Caching proxy
            └── YoutubeScrapingService

Installation

Note: This is archived code from 2013-2015. It requires PHP 5.5-7.0 and dependencies from that era.

Requirements

  • PHP 5.5 - 7.0
  • MySQL 5.x
  • Redis Server
  • Composer

Setup

  1. Clone the repository

    git clone https://github.com/YOUR_USERNAME/moonmetrics.git
    cd moonmetrics
  2. Install dependencies

    composer install
  3. Configure parameters

    cp app/config/parameters.yml.dist app/config/parameters.yml

    Edit parameters.yml with your database credentials.

  4. Configure API keys

    You'll need to set up your own API keys in:

    • app/config/parameters.yml - Database, Symfony secret
    • app/config/hwioauth.yml - Facebook/LinkedIn OAuth (optional)
    • app/config/bitly.yml - Bit.ly API (optional)
    • src/Acceseo/VideoApiBundle/Resources/config/services.xml - YouTube API key
  5. Create database

    php app/console doctrine:database:create
    php app/console doctrine:schema:create
  6. Run the server

    php app/console server:run
  7. Index channels (CLI)

    php app/console moonmetrics:index:channel <youtube_channel_id>

The Story

StartupBus Europe 2013

MoonMetrics was born during StartupBus Europe 2013 — a hackathon where 150+ entrepreneurs from across Europe built startups while traveling 4,000 km by bus through France and Italy over 72 hours, ending at the Pioneers Festival in Vienna.

I couldn't afford the registration fee at the time, so I reached out to my network and secured sponsorships from Acceseo, IndianWebs, Hostienda, and Vodafone. In exchange, I wore a t-shirt with their logos throughout the entire event so they'd appear in all the hackathon photos.

The bus experience was intense:

  • Writing on the bus windows with markers to brainstorm
  • Surprise stress tests — like being told to pitch inside a hotel sauna to simulate the pressure of stage lights
  • Racing against the clock to reach St. Mark's Square in Venice
  • Competing against StartupBus teams from other countries in Italy

The Product

MoonMetrics aimed to be more than just analytics — we wanted to provide actionable insights. Our unique features in 2014:

  1. YouTube Backlink Analysis — We were the first to analyze which channels featured or linked to other channels
  2. Automated Checklist — A system that told YouTubers exactly what to improve on their channel
  3. Massive Indexing — We tracked millions of YouTube channels continuously

It Actually Worked

The platform did launch and was fully operational. Without any marketing, link-building, or press releases — just submitting the sitemap to Google — organic traffic started flowing immediately.

Results:

  • €50-150/month from AdSense alone
  • Zero promotional spend
  • Millions of channels indexed
  • Google ranked the pages well

The problem: the infrastructure costs (disk space for millions of channels + electricity) consumed roughly half of the revenue. As a "side project" it made money, but not enough to split between multiple people.

The Investment Attempt

In 2014, I sold my car (a Nissan Almera) to fund a trip to Miami to pitch to investors. We chose Miami over San Francisco because SF was out of budget, and Miami gave us access to both the US and Latin American markets.

But most investors didn't understand the YouTube creator economy in 2014. It was too early. The ecosystem that seems obvious today was considered strange back then, even in the US, even among "innovative" entrepreneurs.

Why It Ended

  1. Timing — We needed revenue NOW, but the project needed time to grow organically
  2. Infrastructure costs — Disk space for millions of channels ate into thin margins
  3. Market timing — In 2013-2015, "people making money on YouTube" sounded like science fiction, especially in Spain
  4. Resource split — The revenue couldn't sustain multiple people

I'm convinced it could have worked with more time and patience. The growth was there, the SEO was working, the product was solid. But when you're bootstrapping without resources, everything becomes a countdown.

What I Learned

"Starting a company when you have neither time nor money isn't ideal. Everything becomes a countdown, everything feels 'too expensive' (even when it isn't), and the pressure to make it work NOW can suffocate the project and burn out everyone involved."

This was one of my first serious entrepreneurial ventures. The technical skills I developed here (API integrations, queue systems, data processing at scale) became foundational for everything I built afterward.


Sponsors

Special thanks to the sponsors who made my StartupBus participation possible:

Mascot Design

The anime-style astronaut mascot was designed by Maru Exposito, a friend based in Japan who runs an animation studio.


Design

The design/ folder contains the original Balsamiq mockups and exported screenshots from 2014:

design/
├── balsamiq/      # 19 original .bmml mockup files
└── screenshots/   # 73 exported PNG designs

Database Schema

The database/moonmetrics.sql file contains the complete database schema with these main entities:

  • Channel — YouTube channels
  • ChannelStatistics — Historical statistics per channel
  • Video — Individual videos
  • VideoStatistics — Historical statistics per video
  • User — Platform users (FOSUserBundle)
  • Platform — Video platforms (YouTube, potentially others)
  • Uploader — Content creators

License

This project is released as open source for educational and historical purposes.

MIT License — See LICENSE for details.


Author

Jordi Cor

  • StartupBus Europe 2013 participant
  • Built MoonMetrics as CEO/CTO (2013-2015)

This is archived code from 2013-2015, released as-is for educational purposes and as a historical record of the project.

About

Social Media Intelligence platform for YouTube analytics — built during StartupBus Europe 2013 (Symfony 2.4 + Redis + YouTube API)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published