Skip to content

Conversation

@Genyus
Copy link
Owner

@Genyus Genyus commented Dec 18, 2025

Note

Adds Polar payment integration, overhauls S3 upload/delete flow with presigned URLs and UX, introduces shadcn toasts/dialog, refactors Stripe client/webhooks and shared user updates, and refreshes docs/blog plus tooling/tests.

  • Payments:
    • Polar: New polar provider (client, checkout, webhooks, middleware) with sandbox support and webhook validation.
    • Stripe: Refactor to stripeClient, safer customer/session creation, invoice/subscription handling, raw-body middleware, and shared user update utils.
    • Plans: Add getPaymentPlanIdByPaymentProcessorPlanId and typed plan lookups.
  • File Upload (S3):
    • Split into createFileUploadUrl and addFileToDb; validate types; show progress; add delete with S3 cleanup; check object existence.
    • UI: new download/delete actions, confirm dialog, and toast notifications.
  • UI/Client:
    • Add shadcn toast/toaster and dialog; migrate many components under src/client/components/ui and update imports; new SVG hero banners.
    • Demo AI app: toast on out-of-credits.
  • Account/Pricing:
    • Improved subscription/credits display and copy; pricing copy mentions Polar.
  • Docs/Blog:
    • Restructure payment guides (Stripe/Lemon Squeezy/Polar), deploy guide updates, add blog posts, build LLM files.
  • Tools/Template:
    • Add tools/dope.sh and docs for diff/patch workflow; template-test harness; minor Tailwind/template tweaks.
  • Tests:
    • Bump app runner; Playwright env flag; adjust Stripe test assertions.

Written by Cursor Bugbot for commit ad45427. This will update automatically on new commits. Configure here.

FranjoMindek and others added 30 commits September 17, 2025 10:50
# Conflicts:
#	template/app/src/user/AccountPage.tsx
#	template/e2e-tests/tests/utils.ts
Co-authored-by: cprecioso <511681+cprecioso@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Carlos Precioso <github@precioso.design>
Co-authored-by: Carlos Precioso <carlos@wasp-lang.dev>
Co-authored-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
* Refactor file upload and toast notifications

Replaces react-hot-toast with a custom toast system using @radix-ui/react-toast, updating all usages and adding new UI components for toast and dialog. Refactors file upload to use a two-step process: first generating an S3 upload URL, then adding the file to the database, and adds file deletion support with confirmation dialog and S3 cleanup. Updates Prisma schema, removes unused fields, and cleans up navigation and admin settings page.

* Enforce file upload limit and update dependencies on opensaas-sh

Added a check to restrict users to 2 file uploads in the demo, with a new helper function and error handling. Updated navigation items, improved landing page content, and removed unused dependencies (react-hot-toast). Added @radix-ui/react-toast, updated testimonials, and made minor content and code improvements.

* update tests

* Improve file deletion error handling and cleanup

Refactors file deletion to delete the database record before attempting S3 deletion, ensuring the file is removed from the app even if S3 deletion fails. Adds error logging for failed S3 deletions to aid in manual cleanup. Also simplifies error handling in the file upload page and removes unused imports in the demo app page.

* Add credit check and S3 file existence validation

Added logic to decrement user credits or throw an error if out of credits in the AI demo app. Updated file upload operations to validate file existence in S3 before adding to the database, and implemented S3 file existence check utility. Minor UI and code improvements included.

* Update s3Utils.ts

* update app_diff

* fix diff

* Update deletions

* Improve toast UI, error handling, and credit messaging

Updated toast action hover style and icon spacing for better UI consistency. Enhanced error handling in file deletion to display specific error messages. Refined credit/subscription error message in GPT response operation for clarity and removed redundant credit decrement logic.

* Refactor file upload validation and error handling

Replaces error state management with toast notifications for file upload errors and success. Refactors file type validation to use a new ALLOWED_FILE_TYPES_CONST and type AllowedFileTypes. Updates validation logic to throw errors instead of returning error objects, and simplifies type handling across file upload modules.

* Refactor file upload to use s3Key and add cleanup job

Replaces the 'key' field with 's3Key' for file storage references throughout the codebase and database schema. Updates all related logic, types, and API contracts to use 's3Key'. Adds a scheduled job to delete old files from S3 and the database. Cleans up file type validation constants and improves consistency in file upload and download operations.

* add orphaned file clean up

* remove s3 cleanup job from template

removed but added suggestion to docs.

* Update SettingsPage.tsx

* prettier format

* Update  UI, remove unused files

Updated README with deployment and demo details. Removed unused App.tsx and package-lock.json files. Modified Main.css, NavBar constants, file uploading logic, file upload operations, and landing page content sections for improved UI and functionality.

* remove pricing page from isMarketingPage
Replaced the old Product Hunt badge with two new badges for top post topic and top post, displayed side by side for improved visibility.
Removed branch restriction for pull requests in e2e tests.
Co-authored-by: Mihovil Ilakovac <mihovil@ilakovac.com>
FranjoMindek and others added 12 commits November 14, 2025 16:03
Added a new blog post detailing the use of Gemini 3, Cursor, and Open SaaS for SaaS development, including a video demonstration and step-by-step feature implementations. Also added a related banner image for the post.
Introduced two new webp images (chat interface and landing page) and updated the Gemini 3 Open SaaS blog post to display them using Astro's Image component for improved visual context.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Franjo Mindek <84568328+FranjoMindek@users.noreply.github.com>
Co-authored-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: Franjo Mindek <franjo.mindek@gmail.com>
Co-authored-by: Carlos Precioso <carlos@wasp-lang.dev>
* Add roadmap feature and update dependencies

Introduces a new Roadmap component and related operations to the landing page, adds a getGithubRoadmap query, and updates navigation constants. Also updates several dependencies and lockfile entries, including TailwindCSS and React-related packages.

* Update operations.ts.diff

* Update .env.vault.diff

* Create 2025-11-21-open-saas-public-roadmap.mdx

* Add images and update Open SaaS roadmap blog post

Added new roadmap-related images to the assets and banner directories. Updated the 2025-11-21 blog post to include these images, improve structure, and provide more details about the public roadmap, guiding themes, upcoming features, and ways to participate in the Open SaaS project.

* Update roadmap blog post and add subscribe image

Revised the 2025-11-21 roadmap blog post for clarity and improved messaging, added a tip section about subscribing to GitHub epics, and included a new 'subscribe-github.webp' image asset.

* Refactor roadmap components and data model

Reworked roadmap UI by splitting logic into RoadmapEpicCard and RoadmapStatusColumn components. Updated roadmap data model and operations to use GithubEpic and GithubEpicStatus, improving type safety and maintainability. Enhanced roadmap fetching and caching logic, and simplified App.tsx scroll behavior.

* Update package-lock.json.diff

* Update landing page feature and roadmap components

Refactored HighlightedFeature and Roadmap components for improved clarity and maintainability. Minor updates to App.tsx to support these changes.
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Non-existent GitHub Actions checkout versions will break workflows

The new workflow files reference actions/checkout@v6 and actions/checkout@v5, but the latest stable version is v4. These non-existent versions will cause the workflows to fail immediately upon execution. Other workflows in the repository correctly use actions/checkout@v3 or actions/checkout@v4.

Additional Locations (1)

Fix in Cursor Fix in Web

@Genyus Genyus merged commit 837f135 into Genyus:main Dec 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants