Quickstart
Get your ShipFree application running locally in just a few steps. This guide will take you from zero to a working application.This quickstart assumes you have Bun and PostgreSQL already installed. If not, check out the Installation guide for detailed setup instructions.
Set up environment variables
Copy the example environment file and configure your settings:Open
.env and configure the required variables:Set up the database
Create a PostgreSQL database for your application:Make sure your
DATABASE_URL in .env matches your database credentials.Run database migrations
Apply the database schema using Drizzle migrations:This command runs the migration script at
scripts/migrate.ts and sets up all required tables.Start the development server
Verify your setup
Once the development server is running, you should be able to:- Visit the homepage at
http://localhost:3000 - Navigate to the sign-up page
- Create a test account
- Access the dashboard
With
EMAIL_PROVIDER=log, authentication emails will be printed to your console instead of being sent. This is perfect for development.Available commands
Here are the key commands you’ll use during development:Next steps
Now that your application is running, here’s what to do next:Configure authentication
Set up OAuth providers like Google, GitHub, and Microsoft
Set up payments
Configure Stripe, Polar, or other payment providers
Configure emails
Set up Resend, Postmark, or your preferred email service
Customize branding
Update colors, logo, and brand settings
Add translations
Add support for additional languages
Deploy your app
Deploy to Vercel, Railway, or your preferred platform
Common issues
Database connection error
Database connection error
If you see a database connection error, verify that:
- PostgreSQL is running
- Your
DATABASE_URLis correct - The database exists (
createdb shipfree) - Your PostgreSQL user has the correct permissions
Bun command not found
Bun command not found
Make sure Bun is installed and in your PATH:Then restart your terminal.
Port 3000 already in use
Port 3000 already in use
If port 3000 is already in use, you can specify a different port:
Migration errors
Migration errors
If migrations fail, try:
- Checking your database connection
- Ensuring the database is empty for a fresh install
- Running
bun run generate-migrationto regenerate migrations