Note: This project is archived as a reference implementation (November 2025). While we welcome bug reports and documentation improvements, for new features or significant changes, we recommend forking the project.
Thank you for your interest in contributing to SBDK.dev! Here's how you can help:
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Style Guidelines
- Project Structure
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
Since this is an archived reference implementation, we accept:
✅ Bug Reports - Critical issues that affect functionality ✅ Documentation Improvements - Clarifications, fixes, better examples ✅ Security Issues - Report via Security Advisories
❌ New Features - Consider forking for major additions ❌ Breaking Changes - Fork and create your own version
This project is designed to be forked and adapted:
- Fork this repository
- Make your changes freely
- Share your fork - Open an issue to showcase what you built!
We encourage you to use this as a starting point for your own projects.
- 🐛 Bug fixes - Fix broken functionality
- 📝 Documentation - Improve clarity, fix typos, add examples
- ♿ Accessibility - WCAG compliance improvements
- 🔒 Security - Vulnerability fixes
- Node.js 18 or higher
- npm or yarn
- Git
-
Fork the repository on GitHub
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/sbdk.dev.git cd sbdk.dev -
Add upstream remote
git remote add upstream https://github.com/sbdk-dev/sbdk.dev.git
-
Install dependencies
npm install
-
Run development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
npm run dev # Start development server with hot reload
npm run build # Build for production
npm start # Start production server
npm run lint # Run ESLint to check code quality
npm run type-check # Run TypeScript type checking-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clean, readable code
- Follow existing code style
- Add comments for complex logic
- Update documentation if needed
-
Test your changes
npm run build # Ensure production build succeeds npm run lint # Check for linting errors npm run type-check # Check for TypeScript errors
-
Commit your changes
git add . git commit -m "feat: add new feature description"
Use conventional commit messages:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringperf:- Performance improvementstest:- Adding or updating testschore:- Maintenance tasks
-
Push to your fork
git push origin feature/your-feature-name
- Go to the SBDK.dev repository
- Click "New Pull Request"
- Select your fork and branch
- Fill out the PR template with:
- Description - What does this PR do?
- Motivation - Why is this change needed?
- Testing - How did you test this?
- Screenshots - If UI changes are involved
- Checklist - Complete the checklist items
- Maintainers will review your PR within a few days
- Address any requested changes
- Once approved, your PR will be merged
- Your contribution will be acknowledged in release notes
- Use TypeScript for all new files
- Use functional components with hooks
- Keep components small and focused
- Extract reusable logic into custom hooks
- Use meaningful variable names
- Use Tailwind utility classes over custom CSS
- Follow mobile-first responsive design
- Use the project's design system colors/spacing
- Group classes logically (layout → spacing → colors → typography)
Example:
<div className="flex items-center gap-4 px-6 py-4 bg-white dark:bg-gray-900 rounded-lg">
// content
</div>- Run
npm run lintbefore committing - Use 2 spaces for indentation
- Use single quotes for strings
- Add trailing commas in objects/arrays
- Use semantic HTML elements
- Add ARIA labels where needed
- Ensure keyboard navigation works
- Maintain color contrast ratios (WCAG AA)
- Test with screen readers when possible
- Optimize images (use next/image)
- Lazy load components when appropriate
- Minimize bundle size
- Avoid unnecessary re-renders
sbdk.dev/
├── app/ # Next.js App Router pages
│ ├── layout.tsx # Root layout with SEO metadata
│ ├── page.tsx # Landing page (10 sections)
│ ├── pricing/ # Pricing page
│ └── globals.css # Global styles
├── components/ # Reusable React components
│ ├── PipelineVisualizer.tsx # Pipeline flow visualization
│ ├── InteractiveTerminal.tsx # CLI sandbox
│ ├── DataTableViewer.tsx # DuckDB results
│ ├── Logo.tsx # Brand logo component
│ └── ThemeProvider.tsx # Dark mode provider
├── docs/ # 📚 Documentation
│ ├── ARCHITECTURE.md # Technical architecture
│ ├── DEPLOYMENT.md # Deployment guides
│ └── README.md # Docs index
├── public/ # Static assets
│ ├── brand/ # Logo variants & guidelines
│ ├── favicon.svg # Site icon
│ ├── og-image.svg # Social sharing image
│ └── llms.txt # AI crawler file
├── .github/ # GitHub templates
│ ├── ISSUE_TEMPLATE/ # Bug & feature templates
│ └── PULL_REQUEST_TEMPLATE.md
├── CONTRIBUTING.md # This file
├── CODE_OF_CONDUCT.md # Community standards
├── SECURITY.md # Security policy
└── README.md # Project overview
- Main SBDK Project: sbdk-dev/sbdk-dev
- Documentation: GitHub Wiki
- Issues: GitHub Issues
Thank you for contributing to SBDK.dev! 🎉