This project has been converted to a Turborepo monorepo containing both a Next.js web application and an Expo 54 mobile application with shared packages.
This monorepo includes the following packages and apps:
-
apps/web
: Next.js 15 web application- Full-stack SaaS starter kit with authentication (NextAuth.js)
- Database integration with Prisma (PostgreSQL)
- Stripe payment integration
- MDX blog support
- Styled with Tailwind CSS
- Runs on port 5000 for Replit compatibility
-
apps/mobile
: Expo 54 mobile application- Built with Expo Router for file-based navigation
- React Native 0.81
- React 19 support
- TypeScript enabled
- Cross-platform (iOS, Android, Web)
-
packages/typescript-config
: Shared TypeScript configurationsbase.json
: Base TypeScript confignextjs.json
: Next.js specific configreact-native.json
: React Native/Expo config
-
packages/eslint-config
: Shared ESLint configurationsnext.js
: ESLint config for Next.jsreact-native.js
: ESLint config for React Native
From the root directory:
npm install --legacy-peer-deps
Note: The --legacy-peer-deps
flag is required due to React 19 compatibility.
cd apps/web && npm run dev
The web app will be available at http://localhost:5000
cd apps/mobile && npm run dev
Then:
- Install the Expo Go app on your mobile device
- Scan the QR code displayed in the terminal
- Your app will open in Expo Go
npm run dev
This runs all development servers concurrently.
.
├── apps/
│ ├── web/ # Next.js SaaS application
│ │ ├── src/ # Source code (app router, components, utils)
│ │ ├── public/ # Static assets
│ │ ├── prisma/ # Database schema
│ │ └── package.json
│ └── mobile/ # Expo mobile app
│ ├── app/ # Expo Router pages (_layout.tsx, index.tsx)
│ ├── assets/ # Images and assets
│ └── package.json
├── packages/
│ ├── typescript-config/ # Shared TS configs
│ └── eslint-config/ # Shared ESLint configs
├── package.json # Root package.json (workspace)
├── turbo.json # Turborepo configuration
└── pnpm-workspace.yaml # Workspace definition
npm run dev
- Start all development serversnpm run build
- Build all appsnpm run lint
- Lint all appsnpm run clean
- Clean build artifacts
npm run dev
- Next.js dev server (port 5000)npm run build
- Build for productionnpm run start
- Start production servernpm run lint
- Run ESLint
npm run dev
- Start Expo dev servernpm run android
- Open on Androidnpm run ios
- Open on iOSnpm run web
- Open in browser
Required environment variables (see apps/web/.env.example
):
- Database:
DATABASE_URL
(PostgreSQL) - Auth:
NEXTAUTH_URL
,NEXTAUTH_SECRET
- Email: Nodemailer configuration
- Payments: Stripe API keys
Configure in apps/mobile/app.json
- ✅ PostgreSQL database with Prisma
- ✅ NextAuth authentication
- ✅ Stripe payment integration
- ✅ MDX blog support
- ✅ Tailwind CSS styling
- ✅ Pre-built SaaS pages (login, signup, pricing, blog)
- ✅ TailGrids components
- ✅ Expo 54 (React Native 0.81)
- ✅ Expo Router for navigation
- ✅ TypeScript support
- ✅ Cross-platform (iOS, Android, Web)
- ⚡ Turborepo for fast builds and caching
- 📦 Code sharing between web and mobile
- 🔧 Shared configs for TypeScript and ESLint
- 🚀 Parallel execution of tasks
Create shared packages in packages/
and import them:
// In packages/shared/index.ts
export const API_URL = process.env.API_URL || 'http://localhost:5000';
// In apps/web
import { API_URL } from '@repo/shared';
// In apps/mobile
import { API_URL } from '@repo/shared';
Already configured for Replit:
- Port 5000
- Binds to 0.0.0.0
- CORS configured
-
Install EAS CLI:
npm install -g eas-cli
-
Build:
cd apps/mobile eas build --platform ios # or eas build --platform android
This monorepo preserves all the features from the original Play Next.js SaaS Starter Kit:
- Free and open-source SaaS boilerplate
- Premium design and UI components
- Essential SaaS integrations (DB, Auth, Payments, MDX)
- Built with TailGrids components
- Perfect for startups and SaaS businesses
For detailed setup instructions for the web app features, see the Next.js Templates documentation.
MIT - Free for personal and commercial use
⭐ Star this repository if you find it helpful!
Converted to Turborepo monorepo to enable web + mobile development with shared code and modern build tooling.