Skip to content
/ justship Public template
forked from ocluf/justship

A customized version of Fulco's JustShip SvelteKit marketing + app boilerplate

Notifications You must be signed in to change notification settings

ClaytonFarr/justship

 
 

Repository files navigation

Just Ship ⚡️ Customized

A customized version of Fulco's JustShip SvelteKit marketing + app boilerplate.

Customizations

  • added Svelte Preprocess + Pug
  • converted markup to Pug syntax
  • added Inter font
  • added Tailwind Forms
  • removed DaisyUI
  • removed Embla Carousel
  • created separate routes for 'marketing' and 'app' content, with auth control
  • removed original marketing components
  • updated sign-up & sign-in to use email & password
  • added password reset flow
  • (pending) added new Tailwind marketing components
  • (pending) added new Tailwind app components

========================

Just Ship

A batteries included Svelte 5 SaaS Boilerplate - https://github.com/ocluf/justship

Getting Started 🚀

Local Development

  1. Run npm install --legacy-peer-deps or pnpm install
  2. Rename the .env.example file to .env
  3. Run npm run generate && npm run migrate to create a local database
  4. Install mailpit to receive emails locally
    • start mailpit running in background (e.g. brew services start mailpit)
    • note: can stop background mailpit process after dev (e.g. brew services stop mailpit)
  5. run npm run dev
  6. create a new account at sign in page using any email address

Production

  1. Get a domain name
  2. Create a Postmark account and get Server API key
  3. Set up account and database in Turso
  4. Create OAuth credential in Google Cloud
  5. Add project from repo to Vercel
  6. Point main domain name to project on Vercel
  7. Fill out environment variables in .env
  8. Add environment variables to project in Vercel

========================

Tools / Packages / Services

† Added, Removed

  • Frontend
    • Svelte 5
    • TailwindCSS
    • TailwindUI †
    • Tailwind Typography
    • DaisyUI
    • Embla Carousel
    • Lucide (icons)
    • Svelte Preprocess †
    • Pug †
    • Inter font †
  • App Framework & APIs
    • SvelteKit 2
    • TypeScript
  • Forms
    • SvelteKit Superforms
    • Tailwind Forms †
    • Zod
  • Auth
    • Arctic
    • Lucia
    • Olso
  • Database (SQLite/ORM)
    • Drizzle
    • Turso
  • Email
    • EmailJS
    • Postmark
    • Mailpit (local)
  • Payments
    • Stripe
  • Linting
    • Prettier
  • Testing
    • Vitest
    • Playwright
  • Analytics
    • PostHog
  • Hosting
    • Vercel (frontend / serverless)
    • Turso (database)

Tool / Service Rationale

  • Why Turso?

    • The simplicity of SQLite, and Turso extends that simplicity by allowing it not to run on the same server as your application. This offers the best of both worlds: an excellent local development story and worry-free scalability and backups in production.
  • Why Vercel?

    • Offers remarkable developer experience with features like branch previews and automatic deployments based on GitHub pushes. While it can be costlier with high traffic volumes, this boilerplate is meant for quick product experiments. If a product gains traction, migrating to another service is straightforward.
  • Why Stripe?

    • Stripe provides an excellent developer experience. While I'm not particularly concerned that they aren't the merchant of record—a key selling point for Paddle or LemonSqueezy — I am open to other payment providers. Feel free to submit a pull request to add alternative payment options.
  • Why PostHog?

    • PostHog offers a generous free tier, an extensive feature set, and comprehensive documentation. Although I haven’t tested many other analytics providers, my positive experience with PostHog has persuaded me to stick with it.

About

A customized version of Fulco's JustShip SvelteKit marketing + app boilerplate

Resources

Stars

Watchers

Forks

Languages

  • Svelte 45.1%
  • TypeScript 36.8%
  • HTML 15.0%
  • JavaScript 3.0%
  • CSS 0.1%