AI prompts
base on Best open-source SaaS boilerplate. Free, powerful & extendable. <div align='center'><img src='https://github.com/d-ivashchuk/cascade/assets/29632358/19f1472d-073b-463d-b446-4547628fad04'>
</div>
<div align="center">
<h2>Open source SaaS template </h2>
</div>
<div align='center'>
<a href='https://cascade.stackonfire.com' target='_blank'>
Visit Cascade 📦
</a>
|||
<a href='https://cascade.stackonfire.com/app/login' target='_blank'>
Try out the demo here 🎮
</a>
|||
<a href='https://stackonfire.mintlify.app/introduction' target='_blank'>
Explore the documentation 📄
</a>
</div>
<p align="center">
<video src="https://github.com/d-ivashchuk/cascade/assets/29632358/4215a129-f6b8-4bbc-8723-1666fe5327aa" width="400">
<p>
# Concept
The idea of the Cascade template is that it offers as little bloat as possible regarding technology choices and gets you started with writing business logic from day one. The only friction before fully working boilerplate on your `localhost:3000` is the `.env` file with correct environmental variables.
[Visit Cascade 📦](https://cascade.stackonfire.com)
[Try out the demo here 🎮](https://cascade.stackonfire.com/app/login)
[Explore the documentation 📄](https://stackonfire.mintlify.app/introduction)
# Tools
Most of the tools selected for Cascade are open-source(OSS). Some of them are self-hosted(SH). All tools that are SaaS have generous free plans and should get you started without any additional costs.
Core:
- [T3 stack](https://create.t3.gg/)(OSS) - [Next.js](https://nextjs.org/), [tRPC](https://trpc.io/), [Prisma](https://www.prisma.io/)
- [Postgres](https://www.postgresql.org/)(OSS) - modern & reliable database
- [Auth.js](https://authjs.dev/)(OSS) - plug & play authentication with sessions managed in [Prisma](https://www.prisma.io/)
Business:
- [Lemon Squeezy](https://www.lemonsqueezy.com/) - modern and simple merchant of record
- [PostHog](https://posthog.com/)(SH) - advanced user analytics & funnels
- [Plausible](https://plausible.io/)(SH) - simple but powerful page analytics
Support:
- [Sentry](https://sentry.io/)(SH) - error & bug tracking for faster fixes
- [Trigger.dev](https://trigger.dev/)(SH) - background job processing(send slack notifications on new user sign-up)
- [Storybook](https://storybook.js.org/)(OSS) - manage your components & develop them in isolation
- [Lost Pixel](https://www.lost-pixel.com/)(OSS) - simple frontend tests
- [Crisp](https://crisp.chat/en/) - dead simple but powerful support chat
# Honorable mentions
- Without [Shadcn](https://twitter.com/shadcn) this boilerplate would not happen. Period. I rely on his UI a lot and took a lot of inspiration & code from his open-source projects
- https://github.com/lmsqueezy/nextjs-billing & [Branko's](https://twitter.com/brankoconjic) work on it; I took a bunch of ideas for LS integration there
- https://github.com/sadmann7/shadcn-table & [Sadman](https://twitter.com/sadmann17) for showcasing brilliant integration of Tanstack table with Shadcn/ui, I repurposed the code for Prisma
- [Pontus](https://twitter.com/pontusab) and his impeccable tech stack in [Midday.ai](https://midday.ai/) inspired me to create the boilerplate at the first place
", Assign "at most 3 tags" to the expected json: {"id":"9270","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"