See which of your products needs you this week.
One private P&L for every app and site you run. Revenue from Stripe, RevenueCat or the app stores, traffic from GA4, ad spend and costs out. Pro adds Focus cards: up to three things to look at each Monday, each with the numbers behind it.
Or just get it by email: every product's numbers each Monday, or once a month on Free.
Plask (plask.dev) is a private profit-and-loss dashboard for indie makers who run more than one app or site. Free for one product. Pro is $5/mo or $48/yr, and Founding Pro $36/yr for the first 50.
Portfolio · September 2026
| Product | Revenue | Profit | |
|---|---|---|---|
Inkwellweb · Stripe | 1,912.40 | 1,396.40 | |
DriftnoteiOS · RevenueCat | 1,288.15 | 1,264.15 | |
TallyhoMac, web · Stripe | 861.30 | 830.30 | |
FerncastiOS, web · RevenueCat | 702.85 | 643.85 | |
Hooklineweb · free | 0.00 | (12.00) | |
PebblestackiOS · RevenueCat | 214.60 | (113.40) | |
| Portfolio | 4,979.30 | 4,009.30 |
Inkwell, Driftnote, Hookline: nothing to report.
A tour of the app
Four screens. Click through them. The data is made up.
Snoozed: 1 · Marked wrong: 0
Needs you · Week 40 · Tallyho
Revenue down 18% while visitors held at +2%
Where to look first: the pricing page and checkout. Visitors arrive as usual but fewer of them pay.
Scroll sideways to see the full screen →
reddit_writers_sep, first seen 8 Sep.Mark itIgnoreDid it work?
reddit_writers_sep, if marked on 8 Sep
Too small
- Revenue / day
- 61.20 → 71.00
- Ad spend / day
- 10.00
- Net, 14 days
- (2.80)
- Normal 14-day swing
- ±170.00
Same weekdays before and after. The lift is inside normal swing. Run it two more weeks or stop. Don't raise the budget on this.
Scroll sideways to see the full screen →
3 products need you this week
- 1Tallyho. Revenue down 18%, visitors up 2%. Start with the pricing page.
- 2Ferncast. $1.34 per visitor, your best. Nothing shipped in 60 days.
- 3Pebblestack. Third month where ads cost more than it earned.
Inkwell, Driftnote and Hookline: nothing to report. One verdict in: reddit_writers_sep, too small to call.
Scroll sideways to see the full screen →
Connect your sources
1 Sources2 Match products3 Costs4 First Monday
rk_live_••••4f2a- Balanceread
- Balance transaction sourcesread
- Chargesread
- Refundsread
- Disputesread
- Invoicesread
- Subscriptionsread
- Productsread
- Everything elsenone
v2 secret key · read-only- Revenue, trialsread
- Active subscriptionsread
- Customers, writenone
3 apps found
Google sign-in · Viewer- Visitors, sessionsread
- Campaigns (utm)read
- Edit propertiesnone
5 properties found
| Inkwell ads, Sep | 420.00 |
| Pebblestack ads, Sep | 310.00 |
| Ferncast ads, Sep | 40.00 |
| Hosting, monthly | 200.00 |
Apple Search Ads and Meta spend can also sync on Pro, read-only.
Inkwell | Stripe: Inkwell Pro | GA4: Inkwell web | matched |
Driftnote | RevenueCat: Driftnote | GA4: Driftnote iOS | matched |
Tallyho | Stripe: Tallyho licence | GA4: Tallyho site | matched |
Ferncast | RevenueCat: Ferncast | GA4: Ferncast web + app | matched |
Hookline | No revenue source | GA4: Hookline | free product? |
Pebblestack | RevenueCat: Pebblestack | GA4: Pebblestack iOS | matched |
Scroll sideways to see the full screen →
It asks for
- Stripe: a restricted key, read-only
- RevenueCat: a read-only v2 key
- App Store Connect: a Team API key with the Sales role
- Google Play: a service account key you create, with access to financial reports
- GA4: Viewer access
- Costs: typed in, ad spend can sync
Apple has no narrower key: a Team key covers all your apps. Plask can't check a key's role, so use the Sales role, never an Admin key. Play's report permissions also open app information, orders and survey responses. Plask only reads sales reports.
It never needs
- Write access to any source
- Passwords to any of your accounts
- Customer names, emails or cards
- Individual visitors or IP addresses
Stored, and how to leave
- Daily totals per product, your markers and costs
- Stored in the EU (Ireland)
- Revoke a key and it reads nothing more. Deleting your account deletes the data.
Subscriptions it processes. Not your costs or traffic.
Web payments. Not App Store revenue or visitors.
Proceeds per app. Not your web products or costs.
Visitors and campaigns. Not money.
What you pasted at month end.
Joins them per product, subtracts your costs, and says which product to look at first.
The board: verified revenue for apps and web, with costs counted
Revenue comes straight from Stripe, RevenueCat, App Store Connect or Google Play, never from estimates, and a profitable streak means it beat the costs you entered. List a product under your name, or anonymously if you'd rather.
Sample board. Opens when 25 makers opt in. You pick which products to list, and a listed product's numbers are shown exactly.
| # | Maker | Products | Revenue, 30 daysRev | MRR | Growth, 30 days30d | Profitable streakStreak | Source |
|---|---|---|---|---|---|---|---|
| 1 | @nadia.exampleX: @nadiaWeb: nadia.example | $8,420 | +14.2% | 11 mo | sample · Stripe | ||
| 2 | @kofi.exampleBluesky: @kofi.example | $6,900 | +11.8% | 7 mo | sample · Stripe + RevenueCat | ||
| 3 | @lukas.exampleWeb: lukas.example | $3,800 | +6.4% | 2 mo | sample · App Store | ||
| 4 | @ojas.exampleX: @ojasBluesky: @ojas.example | $3,100 | +9.6% | 4 mo | sample · RevenueCat | ||
| 5 | @marta.exampleX: @martaWeb: marta.example | $2,240 | +8.1% | 14 mo | sample · Stripe | ||
| 6 | @bea.example | $1,900 | −2.4% | 0 | sample · Stripe | ||
| 7 | @anya.exampleBluesky: @anya.example | $1,500 | +2.2% | 9 mo | sample · Stripe | ||
| 8 | Anonymous maker | $1,220 | +3.1% | 9 mo | sample · Stripe | ||
| 9 | @henrik.example | $640 | +3.7% | 5 mo | sample · RevenueCat | ||
| 10 | @jun.exampleX: @jun | —Google Play products show 7- and 30-day figures once Google's monthly earnings report is in. | — | 1 mo | sample · Google Play |
Totals for 7 days, 30 days and all time update daily, as of one date for the whole board, a few days back so every source has reported. All time starts where each source's history starts. Growth compares the last 30 days with the 30 before. A dash means the product lacks complete verified data for the period. Google Play products show 7- and 30-day figures once Google's monthly earnings report is in. MRR and streak don't change with the period.
A named maker's totals add up only the products they list under their name and haven't paused; anonymous products never count. A maker who stays anonymous shows as Anonymous maker, and all their products are anonymous.
How @marta.example lists
Numbers are exact for every listed product. Names are your call.
What it costs
Free
For one product$0forever
- One product, with its full P&L
- A monthly digest
- Markers and “Did it work?” for the last 30 days
Free includes a public profile and a spot on the board once it opens.
Start freePro
From your second product$5a month
or $48 a year (save 20%)
You need it once you run a second product, because the portfolio view and the Focus cards compare products against each other.
- Every product, side by side in the portfolio view
- Weekly Focus cards, up to three each Monday
- Full marker history and alerts
- MCP, so Claude or Cursor can answer from your own numbers
Pro for the first 50 makers, locked for as long as you stay subscribed. The founding price ends if you cancel.
50 founding seats. When they're gone, the $36 price is gone.
Founding Pro, $36/yrI'm Torstein. I run 14 apps and sites, and I built Plask to stop guessing which one deserves my Monday. My own portfolio was its first user.
Questions before handing over a key
What's free?
One product, with no time limit: its P&L, a monthly digest, 30 days of markers, and a public profile with a spot on the board once it opens.
Why would I pay for Pro?
Because you run a second product. The portfolio view and the weekly Focus cards compare products, so they start there. Pro is $5 a month or $48 a year, and Founding Pro is $36 a year for the first 50 makers, locked while subscribed.
Can it change anything in my accounts?
No. Stripe takes a restricted key with read-only scopes, RevenueCat a read-only key, App Store Connect a Team API key with the Sales role (it can view sales and trends but can't edit apps, prices or promo codes), Google Play a service account key you create with read access to reports, and GA4 read-only access through Google sign-in. Ad spend is the one place a key is involved, and it stays read-only and spend only: on Pro, Apple Search Ads spend syncs with a key pair we generate that has read-only roles, and Meta Ads spend with a system-user token that has only ads_read. Google Ads cost is read through GA4. Other ad spend and fixed costs are typed in, or written by your AI agent over MCP.
Is the board public by default?
No. Nothing is public until you choose to list a product. When you add one, you pick: list it, list it anonymously, or keep it private, with nothing pre-selected. A listed product shows exact numbers: revenue for the last 7 days, 30 days or all time, 30-day growth, MRR and a profitable streak, never a profit amount. You can list a product anonymously, or stay anonymous yourself. Any X, Bluesky or website links you add are public.
Which sources do I need?
Whatever you already use. A web product with Stripe and GA4 works, and so does an app with RevenueCat, or straight from App Store Connect or Google Play if you don't use RevenueCat. With no revenue source at all, GA4 purchase revenue can stand in as a labelled estimate. Estimates stay private: board revenue comes only from a direct connection to Stripe, RevenueCat, App Store Connect or Google Play.
Had a Plask account before?
You get Pro free for a year, until 4 October 2027, as thanks for being early. Your GA4 properties become products, and your history, alerts, annotations and API keys carry over. Nobody is downgraded.