All posts
Transparency

Your data in NewStudio

NewStudio sits right inside the YouTube Studio you use every day. So here is exactly what we handle, why we handle it, and the control you have over it.

Most privacy pages ask you to trust them. This one doesn't. For each claim below, we show the actual thing that makes it true: the real list of what your account stores, the real code that runs when you sign in, the real payment setup, and the real way a referral IP is handled. These aren't descriptions written to sound reassuring. They are the working pieces, pasted in. This covers both the website (newstudio.app) and the Chrome extension, and it's kept up to date as NewStudio changes.

How we think about your data

A few principles sit behind every decision:

  • Collect as little as possible. If a feature doesn't truly need a piece of information, we'd rather not hold it.
  • Keep as much on your device as possible. Many features run entirely in your browser.
  • Never sell data.
  • Prove it, don't just say it. Which is what the rest of this page does.

When you use the website

Almost everything we store exists to give you an account and a working subscription. Here is the entire account record.

Account & sign-in

When you sign in with Google, we receive your name, email, profile photo, and a Google account identifier, and we use them to create your account and send important account or billing emails. The full list of what a NewStudio account holds isn't something we have to describe, because we can simply show you the whole table:

The account table, every stored field
Your entire NewStudio account row, every column, nothing hidden:

  id                          internal row number
  google_id                   which Google account you are
  email                       your email address
  name                        your name
  picture                     a link to your Google profile photo
  stripe_customer_id          Stripe's reference for you (not a card)
  stripe_subscription_status  active, canceled, past_due, etc.
  is_premium                  whether Premium is active
  is_premium_admin_override   internal flag we can set (e.g. comps/support)
  email_subscribed            whether you're opted in to emails
  created_at                  when your account was created
  last_login                  when you last signed in

That is the complete column list. There is no browsing history, no contacts list, no advertising profile, and no hidden column waiting off-screen. If a field isn't above, we don't store it.

And here is what actually runs when you sign in. It writes your profile details and a timestamp, and nothing else:

The sign-in operation, in full
Signing in with Google runs exactly this, and only this:

  await prisma.users.upsert({
    where:  { google_id },
    create: { google_id, email, name, picture },
    update: { name, picture, last_login: new Date() },
  });

No password is ever involved: Google handles sign-in, so we never receive or store one. No IP address, location, or activity history is stored as part of your account record.

And you can see your own copy

Open your account page while signed in, the details shown there are the same handful of fields above. Want the literal raw row? Email contact@newstudio.app with the subject “My data” and we'll send it.

The NewStudio account page showing stored profile information
Your account page shows you the same fields listed in the table above.

Billing & subscription

Of every column in that table, only stripe_customer_id and stripe_subscription_statushave anything to do with money, a reference number and the words “active” or “canceled.” There is no card number column because a card number never reaches us. Here is the entire checkout configuration:

The upgrade / checkout setup, in full
Starting an upgrade builds exactly this checkout session:

  stripe.checkout.sessions.create({
    mode: "subscription",
    line_items: [{ price: priceId, quantity: 1 }],
    customer: stripeCustomerId,   // or customer_email for a new customer
    success_url,
    cancel_url,
  });

Notice there is no field anywhere to enter a card. This hands you to Stripe's own hosted checkout, where the card is typed in on checkout.stripe.com. All that returns to us is that you're now subscribed.

Watch the address bar yourself

Start an upgrade and look at your browser's address bar the moment a card form appears. The domain is checkout.stripe.com, not newstudio.app. Your card is entered on Stripe's systems and never passes through ours.

What happens after you sign in

Once you're logged in, we don't build a record of what you do. As you saw above, the only thing a login writes is the last_login timestamp. There is no per-page log, no per-click log, and no session-by-session history of your activity anywhere in the account.

Site analytics

Like most websites, we use standard analytics to understand which pages are useful, for example which pages get visited and the general type of device or browser. It's used in aggregate to improve the product, not to build a profile of you.

Confirm it in your own browser

Open your browser's developer tools, go to the Network tab, and click around the site. The analytics requests contain page-level usage information rather than detailed personal profiles. And any tracker blocker can block them outright, and the site keeps working exactly the same.

Referrals & creator partners

If you arrive through a creator's referral link, we note that connection so the right person gets credit if you subscribe. The only network identifier involved is your IP address, and we never store it as-is. Every referral IP is first run through a one-way hash:

How a referral IP is handled, in full
Before any referral IP is stored, it is run through this:

  function hashClientIp(ip) {
    return createHash("sha256")
      .update(`${salt}:${ip}`)
      .digest("hex");
  }

  const REFERRAL_ATTRIBUTION_DAYS = 30;  // the visit record then expires

The IP is transformed using a salted SHA-256 hash before storage, making it impractical to recover the original IP from the stored value. We store only that hash (in a column literally named ip_hash), never the address, and the whole referral record deletes itself after 30 days.

When you use the Chrome extension

An extension can only touch what its manifest declares, and Chrome enforces that list. So instead of describing what ours can reach, here is the actual permission list, in full:

The extension manifest, its declared permissions and hosts
The extension's manifest, its declared permissions and hosts:

  "permissions": [
    "storage",        // save your settings on your device
    "scripting",      // draw the on-page enhancements
    "alarms",         // refresh stats on a schedule
    "identity",       // Google sign-in
    "identity.email"  // your email, for your account
  ],

  "host_permissions": [
    "https://*.youtube.com/*",        // YouTube and YouTube Studio
    "https://*.googleapis.com/*",     // Google and YouTube's APIs
    "https://clients2.google.com/*",  // Google sign-in
    "https://*.newstudio.app/*"       // your account, stats, Premium
  ]

Every site the extension can touch is on that host list: YouTube, Google's own APIs, and NewStudio's own domains. There is nothing for any unrelated site, so it cannot reach your bank tab, your email, or anywhere else. The on-page enhancements run on YouTube; small bridge scripts also run on newstudio.app to link your account to the extension.

None of the five permissions let it watch you browse. storage keeps your settings on your device, scripting draws the enhancements onto the page, alarms refreshes stats on a schedule, and identityhandles Google sign-in. Reading or changing a page still requires a matching host above, and those are only YouTube and NewStudio's own sites.

See the same list in Chrome

Go to chrome://extensions, click Details on NewStudio, and find Site access and Permissions. They match the manifest above, and the exact same list is shown on our Chrome Web Store page before you ever install.

Your settings

The features you turn on and off, and your preferences for them, are saved so your setup is there every time you open Studio.

Reading the page you're on

To add things like cleaner analytics, live counts, and layout tweaks, the extension reads parts of the YouTube and Studio pages you already have open. That's what lets it draw its enhancements in the right place, on the YouTube pages you have open. Reading those pages is how the enhancements get drawn, it isn't a channel export. NewStudio doesn't store your YouTube channel data, not your private analytics, audience, or revenue. The only thing it ever records is public view counts, the same numbers anyone can already see on a video, and nothing else.

The NewStudio extension popup with its feature toggles
The extension's controls live with you. Most toggles change how Studio looks for you, right in your browser.

Premium status

When you're signed in, the extension confirms whether your account has Premium, so paid features unlock for you and stay locked for everyone else.

Usage (on until you turn it off)

Usage sharing is on by default, and stays on until you turn it off. While it's on, it's used for one thing: a lightweight count of which features get used, so we know what to improve next. You can turn it off any time inside the extension, under the settings icon next to your profile.

What we don't do

The lines we don't cross, each one backed by something shown above:

  • We don't sell or rent your personal information.
  • We don't store your card details. There's no field for them; they're entered on Stripe.
  • We don't keep your raw IP; referrals store only a one-way hash that expires in 30 days.
  • We don't follow you around the web; the extension only runs on YouTube, Google's APIs, and NewStudio's own sites.
  • We don't post, comment, or change anything on your channel unless you do it yourself.

Your choices and control

You can request a copy or deletion of your account data any time by emailing contact@newstudio.app with the subject “My data” for a faster response. If you delete your account, your account records are removed within 30 days, though some billing records may be retained longer where required for legal and accounting purposes. You can manage or cancel a subscription from your billing page, and you can remove the extension any time to stop all of its in-browser activity. For the complete legal detail, see our Privacy Policy.

A note on the exhibits

The code and data shown above are real, taken from the running NewStudio code and lightly annotated and trimmed for readability (full variable names, error handling, and the like are left out so the relevant part is clear). They are illustrative of how the system works, not a line-for-line export. Where this summary and our Privacy Policy differ, the Privacy Policy is the authoritative document.

This may change

As NewStudio grows, the data we handle can change too. We keep this post and our Privacy Policy up to date, and the “last updated” date below always reflects the current version.