Excellent — 1000+ customers with monthly billing puts us in a solid scale bracket. Grails will handle this beautifully, but this scale informs a few important decisions:

Scale Considerations (1000+ Customers)

1 Database Choice

Your current Northwind database is SQLite. For a production portal with 1000+ customers, monthly bills, and user accounts, I'd recommend PostgreSQL or MySQL instead. SQLite works fine for development but has limitations on:

Question: Are you open to moving to PostgreSQL or MySQL for the billing portal database?

2 Initial Customer Data

Are you:

This affects whether we need a one-time data migration script.

3 User Account Management

With 1000+ users, you'll want:

Question: Is this acceptable, or do you prefer a simpler approach (admin sets passwords manually)?

4 Email Infrastructure

1000+ bills monthly means reliable email delivery. We'll want:

Question: Do you have a production SMTP server (Gmail Business, Office 365, or dedicated SMTP provider)?

5 Performance Gradients

Phase 1 (0–100 customers) Everything runs smooth
Phase 2 (100–500 customers) Need proper indexing, maybe DB optimization
Phase 3 (500–1000+ customers) Consider caching, connection pooling, maybe read replicas

Grails + PostgreSQL handles all of this — we just need to design for it upfront.

My Recommendation at This Scale

Backend: Grails (as you chose)
Database: PostgreSQL (production-grade)
Email: SMTP + bounce tracking
Auth: Spring Security + password reset