Add O'Saasy license#227
Conversation
- Add Kamal config for kelas.pejuangkode.com - Add GitHub Actions workflow for pejuangkode deployment - Add branding config (SITE_NAME, SITE_DOMAIN, etc.) - Add course config for different content per site - Update components to use configurable branding - Update email service to use dynamic branding - Update login page with dynamic logo - Update .env.example with new branding variables Deployment: Kamal 2.0 to VPS 103.235.75.227 Domain: kelas.pejuangkode.com (DNS setup by Zain)
- Remove unnecessary quotes from YAML string values in config/deploy.pejuangkode.yml to satisfy the yml/plain-scalar ESLint rule (SITE_NAME, SITE_DOMAIN, SITE_URL, EMAIL_FROM) - Add explicit click() before fill() in phone number validation E2E test to ensure the focus event fires reliably in webkit, setting the 'interacted' React state needed for client-side validation error display Amp-Thread-ID: https://ampcode.com/threads/T-019c5ead-c672-72de-a79a-ed33d773553f Co-authored-by: Amp <amp@ampcode.com>
- Replace skipped unit test (it.skip) with proper test using createRemixStub with loader data for HomePage component - Enable allowConditional for playwright/no-skipped-test rule so conditional test.skip(isStagingEnv) is permitted - Merge main into feat/pejuangkode to resolve outdated branch Amp-Thread-ID: https://ampcode.com/threads/T-019c5eda-dc52-76d6-8892-c85919042771 Co-authored-by: Amp <amp@ampcode.com>
Protects the project from being cloned as competing SaaS while keeping code public. Ref: Card #201
zainfathoni
left a comment
There was a problem hiding this comment.
O'Saasy License Review
The LICENSE file text correctly matches the canonical O'Saasy license from fizzy.do/license — nice choice for protecting against SaaS clones while keeping the code public.
However, there are two places that still reference MIT and need to be updated for consistency:
package.json—"license": "MIT"needs to be changed (e.g., to"SEE LICENSE IN LICENSE"or"LicenseRef-OSaasy"since O'Saasy isn't an SPDX identifier).README.md— The MIT license badge (license-MIT-blue) and[license]link still say MIT. The PR description mentions updating these but the diff doesn't include README changes.
Also a couple of observations:
- The LICENSE file doesn't name itself as "O'Saasy License" anywhere — adding that as a header would help discoverability.
- This PR bundles the entire pejuangkode multi-site feature (branding config, deployment workflow, hero refactoring, etc.) with the license change. Consider splitting into separate PRs for cleaner history, or at minimum updating the PR title/description to reflect the full scope.
Amp-Thread-ID: https://ampcode.com/threads/T-019c7a5d-a670-732a-a749-b64bac3aba45 Co-authored-by: Amp <amp@ampcode.com>
wheeljackz
left a comment
There was a problem hiding this comment.
Code Review: PR #227 — Add O'Saasy License
Summary
This PR changes the license from MIT to O'Saasy License (a source-available license with an anti-SaaS-compete clause) and updates README badges accordingly. It's stacked on top of PR #226 (env-based branding).
Analysis
License Change (LICENSE)
- ✅ The O'Saasy License text is clear: permissive like MIT but with an anti-compete clause for hosted/SaaS offerings
- ✅ Copyright year updated to 2026
⚠️ Consider: This is a significant licensing change. All existing contributors agreed to MIT. You may want to note this in the PR description or get acknowledgment from contributors (there are 6 listed in README)⚠️ O'Saasy is not OSI-approved — worth being explicit about this in README so users/contributors know it's source-available, not open-source
README Changes
- ✅ Badge correctly updated to show O'Saasy
Other Changes
- This PR carries all changes from #226 (branding). The license change itself is just the
LICENSEandREADME.mdfiles. Consider rebasing to keep the diff clean once #226 merges.
Verdict
The license change itself is clean. Main concern is the social/legal aspect of relicensing an existing MIT project with 6 contributors. Make sure contributors are aware.
This PR adds the O'Saasy license to protect the project from being cloned as a competing SaaS while keeping the code public.
Changes:
Context:
The O'Saasy license (https://www.fizzy.do/license) by 37signals is essentially MIT but prohibits using the software to directly compete by offering it as a hosted SaaS product.
Related: Fizzy Card #201