[READ ONLY MIRROR] Open Source TikTok alternative built on AT Protocol
github.com/sprksocial/client
flutter
atproto
video
dart
Contributing to Spark Client#
Thank you for your interest in contributing to Spark!
How to Contribute#
- Keep changes scoped to the feature you are editing
- Run format, codegen (if needed), and analyze before opening a PR
- Test on a real device or simulator and add screenshots when applicable.
Development#
Prerequisites#
- Flutter SDK 3.41+
- Dart SDK matching Flutter toolchain
- Xcode (for iOS builds) and/or Android SDK
Setup#
From repository root:
touch .env
flutter pub get --enforce-lockfile # install dependencies
dart run build_runner build --delete-conflicting-outputs # generated code
flutter run
Before Submitting#
-
Format your code:
dart format . -
Analyze for issues:
flutter analyze . -
If you changed annotations/models, regenerate code:
dart run build_runner build --delete-conflicting-outputs
Pull Request Guidelines#
- Make your changes following the codebase conventions
- Ensure CI passes (format check, analyze, build)
- Use conventional commit titles. e.g. "fix: remove misshapen meatballs" or "feat(fruit): add strawberries"
Code Conventions#
- Prefer
package:spark/...imports; avoid deep relative imports - Import order: Dart SDK, third-party, project; keep
partafter imports - Use strong explicit types; avoid
dynamic - Use Freezed for immutable models and
@riverpodfor providers - Naming: types
PascalCase, members/providerslowerCamelCase, private_name - Keep feature flow: external/API/storage -> repository -> provider -> widget