Thanks for your interest in contributing. This document explains how to get set up and how we work together.
- Report bugs: Open an issue and include steps to reproduce, expected vs actual behavior, and your environment (OS, browser, Bun version).
- Suggest features: Open an issue describing the idea and how it fits the project.
- Submit changes: Follow the development setup and pull request process below.
Contributors should align with these design wishes so the site stays consistent and on-brand.
- Mobile First:A majority of users access the site from their mobile devices. Mobile design should be top priority
- Color Scheme: A color scheme of the site is yet to be finalized. After a decision has been made, only use the colors defined in the tailwind configuration
Use the provided component library whenever possible instead of creating custom components. Component Library: Skeleton
- Strive to meet basic WCAG 2.1 AA accessibility standards.
- Ensure sufficient color contrast and readable font sizes.
- All interactive elements (links, buttons, forms) must be accessible by keyboard and work well with screen readers.
- Use semantic HTML elements and proper ARIA attributes where needed.
- Favor inclusive language and content—avoid jargon or anything exclusive.
- Bun (v1+): This project uses Bun as the package manager. Use
bunfor install and scripts — not npm or yarn. - A modern browser (Chrome, Firefox, Safari, or Edge).
-
Clone the repository:
git clone <repository-url> cd slice-enterprise
-
Install dependencies:
bun install
-
Start the development server:
bun run dev
Open http://localhost:5173 in your browser.
-
Run checks (before submitting a PR):
bun run check # TypeScript / Svelte bun run lint # ESLint + Prettier bun run test # Vitest (unit tests)
Note: Folder structure subject to change for 2026 site.
src/— Application sourceapp.html,app.css,app.d.ts— App shell and global styles/typeslib/— Reusable components and utilities (e.g.Accordion.svelte,Registration.svelte,FAQ.svelte)lib/assets/— Images and other static assets used by the approutes/— SvelteKit file-based routes+layout.svelte,+page.svelte— Root layout and home pagerace-day-details/,taco/,thank-you/— Route segments with their own+page.svelte
static/— Static files served as-is (e.g. favicon, GPX).github/workflows/— CI/CD (e.g. deploy)
Put new shared UI in src/lib/ and new pages under src/routes/ following SvelteKit conventions.
- Formatting: Prettier. Run
bun run formatto format the codebase. - Linting: ESLint. Run
bun run lintto check; fix any reported issues. - TypeScript: Use TypeScript for logic and type definitions; keep types accurate.
- Svelte: Follow existing patterns in
src/lib/andsrc/routes/for components and structure.
Note: The linter and formatter will be updated to use oxlint and oxfmt
- Branch: Create a branch from
mainwith a descriptive name, e.g.fix/registration-validation,feat/faq-expand. - Scope: Keep PRs focused on one change or feature so they’re easier to review.
- Checks: Ensure
bun run check,bun run lint, andbun run testall pass before requesting review. - Review: Someone will review your PR; address feedback and keep the conversation in the PR thread.
Use clear, concise messages. Prefer present tense and a short summary line.
Good:
fix: correct registration form validationfeat: add FAQ accordion to home pagechore: update Vitest config
Avoid: vague messages like "fix stuff" or "updates".
- Run tests:
bun run test(single run) orbun run test:unit(watch mode). - Location: Unit tests live next to the code they cover (e.g.
page.svelte.test.tsnext to the page) or in a*.test.ts/*.spec.tsfile. - New/changed behavior: Add or update tests so existing and new functionality stay covered.
For questions about the project or contributions, open a GitHub issue or contact the maintainers. For event-related questions, see the Contact section in the README.