Skip to content
Open SaaS is now running on Wasp v0.14!
🐝🚀
If you're running an older version, please follow the migration instructions.

Admin Dashboard

This is a reference on how the Admin dashboard is set up and works.

Permissions

The Admin dashboard is only accessible to users with the isAdmin field set to true.

main.wasp
entity User {=psl
id Int @id @default(autoincrement())
email String? @unique
username String?
isAdmin Boolean @default(false)
//...

To give yourself administrator priveledges, make sure you add your email addresses to the ADMIN_EMAILS environment variable in .env.server file before registering/logging in with that email address:

.env.server
ADMIN_EMAILS=me@example.com
// or add many admins with a comma-separated list
ADMIN_EMAILS=me@example.com,you@example.com,them@example.com

Or if you’ve already logged in with an email address that you want to give admin priveledges to, you can run the following command in a separate terminal window to update the user’s isAdmin field manually:

Terminal window
wasp db studio

db studio


Admin Dashboard Pages

Analytics Dashboard

The Admin analytics dashboard is a single place for you to view your most important metrics and perform some admin tasks. At the moment, it pulls data from:

  • Stripe:
    • total revenue
    • revenue for each day of the past week
  • Google or Plausible:
    • total number of page views (non-unique)
    • percentage change in page views from the previous day
    • top sources/referrers with unique visitor count (i.e. how many people came from that source to your app)
  • Database:
    • total number of registered users
    • daily change in number of registered users
    • total number of paying users
    • daily change in number of paying users

These metrics are aggregated within the background job dailyStatsJob, which by default is run every hour. You can change the frequency of this job by modifying its cron field:

main.wasp
job dailyStatsJob {
executor: PgBoss,
perform: {
fn: import { calculateDailyStats } from "@src/analytics/stats"
},
schedule: {
cron: "0 * * * *" // every hour. useful in production
// cron: "* * * * *" // every minute. useful for debugging
},
entities: [User, DailyStats, Logs, PageViewSource]
}

For more info on Wasp’s recurring background jobs, check out the Wasp Jobs docs.

For a guide on how to integrate these services so that you can view your analytics via the dashboard, check out the Stripe and Analytics guide of the docs.

Users

The Users page is where you can view all your users and their most important details. You can also search and filter users by:

  • email address
  • subscription/payment status
  • admin status