StudyStack is an open-source starter kit for building customizable online learning platforms. Originally developed for a private project that was later dissolved, it's been repurposed and made public as a flexible, community-driven codebase. It's not a full SaaS — think of it as a demo, a proof of concept, and a foundation you can build on.
Built with SvelteKit and the latest features from Svelte 5, it integrates Prisma, Tailwind CSS, and Playwright for a modern developer experience.
- Engaging course and lesson interface
- Secure user authentication
- Type-safe DB layer using Prisma
- End-to-end testing with Playwright
- Clean, responsive UI powered by Tailwind CSS
StudyStack was built by a solo dev and is released for the community. Contributions are welcome! Feel free to open an issue or PR — especially for:
- Bug fixes
- Feature suggestions
- Docs improvements
Just please keep in mind that this is not a full product with active long-term support — it's more of a public template for others to learn from or fork into their own projects.
Follow the platform-specific setup instructions below to get your development environment up and running. Once set up, start your dev servers with:
pnpm dev # Standard SvelteKit dev server
pnpm vercel-dev # Simulates Vercel Edge config for closer production testingYou’ll need Node.js (via NVM), Git, PlanetScale CLI, and other common development tools.
- Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"- Install Node Version Manager: NVM Docs
- Install Git:
brew install git - Install PlanetScaleCLI:
brew install planetscale/tap/pscale - Install JQ:
brew install jq - Install MySQL CLI:
brew install mysql-client - Install GitHub CLI:
brew install gh - Install Node.js:
nvm install --lts - Confirm Node install:
node -v - Enable PNPM via corepack:
corepack enable pnpm - Install PNPM:
corepack use pnpm@latest - Clone the repo:
git clone [email protected]:shawn636/study-stack.git- Install dependencies:
pnpm install - (Optional) Set Zsh as default terminal in VS Code
- Run dev servers using
pnpm devand/orpnpm vercel-dev
- Open PowerShell and install Scoop:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression- Install Git
- Install NVM for Windows
- Install PlanetScale CLI & MySQL:
scoop bucket add pscale https://github.com/planetscale/scoop-bucket.git
scoop install pscale mysql- Install JQ:
scoop install main/jq - Install GitHub CLI:
scoop install gh - Install Node.js:
nvm install --lts - Confirm install:
node -v - Enable corepack:
corepack enable pnpm - Install PNPM:
corepack use pnpm@latest - Clone the repo:
git clone [email protected]:shawn636/study-stack.git - Install dependencies:
pnpm install - Start dev servers:
pnpm devand/orpnpm vercel-dev
- Install NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash- Install Git:
sudo apt install git-all - Install PlanetScale CLI
- Install JQ:
sudo apt install jq - Install GitHub CLI:
sudo mkdir -p -m 755 /etc/apt/keyrings \
&& wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | \
sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | \
sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update && sudo apt install gh -y- Install MySQL CLI:
sudo apt-get install mysql-client - Install Node.js:
nvm install --lts - Confirm install:
node -v - Enable corepack:
corepack enable pnpm - Install PNPM:
corepack use pnpm@latest - Clone the repo:
git clone [email protected]:shawn636/study-stack.git - Install dependencies:
pnpm install - Run servers:
pnpm devand/orpnpm vercel-dev
pnpm run dev– Local dev serverpnpm run build– Build for productionpnpm run test– Run Playwright testspnpm run lint– Format and lint the codepnpm run check– Type and syntax checking
End-to-end testing is handled via Playwright and Vitest.
pnpm run testYou can also run other test-related scripts as needed for development or CI.
This project is licensed under the MIT License.
If you end up using this project for something cool, let me know — I’d love to check it out!