Administration Guide

Quick Navigation
1 Daily Administration Checklist

Perform these tasks regularly to keep the website running smoothly:

  1. Review the Dashboard — Check the Admin Dashboard for key metrics: new users, MRR, total revenue, and system health.
  2. Approve/Reject Social Shares — Go to Social Shares and review any pending shares. Users need 3 approved shares to get the discount.
  3. Check System Health — On the Dashboard, scroll down to "System Health & Monitoring" to check uptime, memory usage, database size, and suspended/expiring accounts.
  4. Monitor Earnings — Review the "Accumulated Earnings" section to track revenue from Stripe, PayPal, Razorpay, and YooKassa.
  5. Review Audit Log — Check the "Recent Admin Activity" at the bottom of the Dashboard for any unusual actions.
  6. Check for Suspended Users — Go to Users and search for any flagged or suspended accounts.
Tip: Bookmark the admin dashboard and check it at the start and end of each business day.
2 User Management

From the Users page you can:

Warning: Deleting a user permanently removes all their data (subscriptions, notes, tasks, etc.). Only use for abandoned or test accounts.
3 Social Discount Approval

The social media discount system works as follows:

  1. Users share Subscription Tracker on social media (Twitter, Facebook, LinkedIn, Instagram, TikTok, Reddit, or YouTube)
  2. They submit the share URL through the app
  3. You review each share in the Social Shares panel
  4. Click the share URL to verify it's a real public post about Subscription Tracker
  5. Click Approve or Reject with optional notes
  6. Once a user has 3 approved initial shares, their plan automatically upgrades to the social discount version
  7. Users must also share once per month to maintain the discount — these appear as "monthly" share type

What to check when reviewing:

How discounts apply: Starter plan with social discount: $5.99/mo. Pro plan with social discount: $19.99/mo.
4 Monitoring Earnings

The Admin Dashboard shows accumulated earnings from all payment providers:

The dashboard shows:

Note: For detailed financial reporting, also check each payment provider's dashboard directly:
Stripe Dashboard: dashboard.stripe.com | PayPal: paypal.com/business | Razorpay: dashboard.razorpay.com
6 Changing the Admin Password
  1. Go to Settings
  2. Scroll to "Change Admin Password"
  3. Enter your current password
  4. Enter a new password (minimum 8 characters, must include uppercase, lowercase, and a number)
  5. Confirm the new password
  6. Click "Change Password"

The password is encrypted using bcrypt with 12 salt rounds before being stored in the database. The plaintext password is never stored.

Security: Change your password from the default (Admin123!) before going live. Use a strong, unique password with special characters.
7 Google Analytics (GA4) Setup
  1. Go to Google Analytics and create a GA4 property
  2. Go to Admin → Data Streams → Add Stream → Web
  3. Enter your domain (e.g., aisubtracker.com)
  4. Copy the Measurement ID (format: G-XXXXXXXXXX)
  5. Go to Admin Settings → Analytics & Tracking
  6. Paste the Measurement ID and click "Save All Settings"
  7. The GA4 tracking code will automatically be injected into all pages

Google Tag Manager (optional but recommended):

  1. Go to Google Tag Manager and create a container
  2. Copy the Container ID (format: GTM-XXXXXXX)
  3. Paste it in the "GTM Container ID" field in Settings
  4. GTM allows you to manage GA4, Ads, and other tags without code changes
8 Google Ads / AdWords Setup
  1. In your Google Ads account, go to Tools → Conversions
  2. Create a new conversion action (e.g., "Sign Up", "Purchase")
  3. In the tag setup, copy your Conversion ID (format: AW-XXXXXXXXX)
  4. Also copy the Conversion Label for each specific conversion
  5. Go to Admin Settings → Analytics & Tracking
  6. Enter the Google Ads Conversion ID and Label
  7. Click "Save All Settings"

Remarketing: The Google Ads tag automatically enables remarketing audiences. You can create remarketing lists in Google Ads based on page visits.

Best practice: Use Google Tag Manager to manage Ads conversion tags. Create GTM triggers for key events (registration, payment success) for accurate conversion tracking.
9 Payment Provider Configuration

Payment provider API keys are configured via environment variables (the .env file). They are not stored in the database for security.

Required environment variables:

Stripe Webhook Setup:

  1. In the Stripe Dashboard, go to Developers → Webhooks
  2. Add endpoint: https://yourdomain.com/api/payments/stripe/webhook
  3. Select events: checkout.session.completed, customer.subscription.deleted, invoice.payment_failed
  4. Copy the Webhook Signing Secret to your .env file
10 Maintenance Mode

Enable maintenance mode from Settings when you need to:

When enabled, non-admin visitors will see a maintenance page. Admin users can still access all pages normally.

11 Security Best Practices
12 Database Backup

The SQLite database is stored at server/database.sqlite. To back up:

  1. Simply copy the database.sqlite file to a safe location
  2. On Vercel, you can download it via vercel files pull server/database.sqlite
  3. For automated backups, set up a cron job or CI/CD step to copy the file to cloud storage (S3, GCS, etc.)
Important: Back up the database before any major update or migration. If using Vercel serverless, note that the filesystem is ephemeral — consider migrating to a persistent database (e.g., Turso, PlanetScale) for production.