ServiceStart is a total rebuild of Voluntrack - a volunteer and event management platform for nonprofits. See the Notion here.
- React: Frontend framework
- Next.js: Backend framework and server-side rendering
- Tailwind CSS: Styling
- Netlify: Hosting and deployment
- PNPM: Package management
- ESLint: Linting
- Prettier: Code formatting
- Vitest: Testing
- Unit tests: _.test.ts files; E2E tests: _.spec.ts files
- Playwright: E2E testing
- Drizzle ORM: Database ORM
- PostgreSQL: Database
- BetterAuth: Authentication
- BoG Design System: UI components
- Zod: Schema validation
- Hono: API and RPC framework
-
Install PNPM if you haven't already:
npm install -g pnpm
-
Clone the repository:
git clone https://github.com/GTBitsOfGood/servicestart.git cd servicestart -
Create the database:
pnpm run db:create pnpm run db:test:create
-
Set up environment variables:
-
Copy
.env.templateto.envand fill in the required values. -
Generate your
BETTER_AUTH_SECRETusing the following command:openssl rand -base64 32
-
-
Start the server:
pnpm install pnpm run dev
- Dependabot is enabled and will submit PRs to update dependencies.
- PRs automatically create preview deployments on Netlify for easy UX testing.
- There's a pre-commit hook for Prettier. If you get an error when committing, click "Show command output" in the popup to see the issue.
- Use
pnpm run db:viewto open Drizzle Studio and view the database schema and contents. - Use the
createTestUserfunction intests/unit/testUtils.tsto get a user that you can use for API endpoints in tests. - Use
pnpx bog-cli design editto configure the BoG design system. - Run scripts in the
scriptsfolder withpnpx tsx <script-name>. - Set the
DB_URLenvironment variable on GitHub. For the preview environment, leave out the/database-namepart so that the workflow can create databases for each PR.
Various parts of ServiceStart's architecture and design decisions are documented in the docs folder. Check it out for details about our design decisions and infrastructure.