Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Open SaaS – An open-source alternative to paid boilerplate starters (github.com/wasp-lang)
163 points by matijash 12 months ago | hide | past | favorite | 71 comments



This is cool but very opinionated on which frameworks to use, etc. it’s a good start but I want to see one with Golang + fiber + htmx + templ. Or bun, or with svelte or vite, but these can be changed out if you already know. Starred, looking forward to see where this goes as I think we need more “baseline” stacks to help people navigate sprint 0.


Being opinionated is a core feature of a boilerplate.

The problem is how it's labelled as a true generic solution instead of being a JS SaaS boilerplate. Developers often either have specialisations or preferences, and luckily we have more than one option for each kind of application.

See SaasPegasus for a good example. Clearly Django oriented. I have my own boilerplate for my work in Laravel, but I don't brand it as the new saas kid on the block.

No gripes against OP, looks like a neat setup. Just the messaging reads to me off. Like it's focusing on the OSS side of it in a weird way. Plenty of boilerplates exist out there that aren't paid solutions, and all stack their own preferred dev tools that are majority open source. It's as if this were a product called "peanut flavoured peanut butter".


Thanks for the feedback! I see your point; we could make it clearer from the start that it is JS-oriented. I'm coming from that world, so it seems like I took it for granted.

Also re OSS positioning - I'm actually not aware of modern (but maybe I missed it), polished SaaS starters such as the paid ones that got really popular lately (e.g. supastarter, shipfast), so that's what prompted us into that kind of messaging. We'd like to create a community-driven starting point for developers of equal polish and quality.


I'm a bit blindsided by "got really popular lately" - these projects would be relevant to my work but they've completely slipped under my radar. Whereabouts are you hearing about those projects? Or (alternatively) where else are you talking about your project?


Also heard about shipfast on twitter and reddit. Twitter is big for promoting solopreneur stuff like this.

On a side note, LinkedIn has a lot of frequent posts if you follow certain projects. LlamaIndex is killing it on this front. Lots of great stuff and they even teamed up with Andrew Ng with advanced RAG techniques on deeplearning.ai


Twitter mostly! I am following a bunch of folks in indie hacker / building in public space. Also reddit


Any podcast recommends?


I'm not a huge podcast person, somehow always prefer a more concise blog post.


It’s not just JS-oriented it’s React-oriented. So those JS-oriented folks that know Svelte, Vue, etc instead would benefit from clearly stating that.

Still, it looks cool despite not knowing React myself. I might take it for a spin when I have some free time :) thanks for building this


not related to your post at all, but thinking how cool it would be to have Jelly-flavoured Peanut Butter.


I like opinionated boilerplates. I can adapt to working in different ways. Having someone else decide a reasonable architecture is something I don't mind at all.


Opinionated enough that you have to learn their bespoke language WASP


Wasp generates code. It's a bit odd how even with such a big layer of indirection, you only have one choice of backend language. Though I'm personally happy with JS and want to give this a try.


Wasp is actually being developed with a vision of being stack agnostic. Currently, it's only React/Node, but we've already been playing with Python and Rust internally.


Ah, I missed that from the FAQ at the bottom.


Wasp is as easy as learning to write JSON when you already know JS.


Doing JS and JSON for many years. But react based frameworks are still are mystery for me and break everything I love about HTTP and HTML.

Calling it as easy as JSON for JS dev sounds a bit stretched. For a react Dev maybe.


They problem is in the translation and control. There's also extra tooling and steps in the build process to be maintained.


Yeah that's a bit much.


Opinionated enough that you have to learn their bespoke language React

People learn what they are eager to


Part of what makes React's JSX so nice is that it's based on familiar things, HTML and JS. Like, regular HTML <div> etc works the same there.


I agree, JSX (and also MDX) are a really great paradigm


If you - or others here - are interested I can spend some time to clean-up my own "boilerplate" a bit.

It's using Golang + Chi + Templ, uses SQLite as its database and has a multi-tenant-multi-db setup by default (i.e. 1 master database for user/tenant management, and "stem-data", 1 sqlite database per tenant), and uses passkeys for authentication. I'm using some HTMX + Hyperscript + a really small amount of plain-js for passkeys in the apps themselves.

I reckon that switching out Chi for Fiber - for the boilerplate only - would take about 90 minutes.

Edit: Forgot to include TailwindCSS. So for completeness sake.


I am interested. I actually like Chi so no need to take it out. Are you open to sharing it ?


Yes, the more baseline boilerplates we have to show more golang the better.


+1 for Golang + fiber + htmx. Big fan of this stack, plus maybe some AlpineJs as needed.

Recently looked at templ-great features, but somewhat awful looking generated code.


Yeah me too. I built this exact stack for myself as a template. Alpine, go-fiber, htmx.


Thanks for your support! Yes, the stack is currently fixed (React, Node, Prisma), and I understand developers might have specific preferences.

We'd definitely like to make it more flexible (also in the sense of UI frameworks, etc), but that's something we'll have to figure out step by step.


Yeah I wish a lot more of these boilerplates didn't go the react route or atleast offered a vanilla JS option.


noted! If you went with vanilla JS, is there any specific library you'd use for interactivity?


Generally I hew to the htmx + alpine, as I'm a djangonaut but pure vanilla js without library would be excellent too. Because I otherwise like the choices of technologies you've used. Astro is cool and been meaning to tinker with it, stripe of course (though I'd argue you should incorporate getlago instead so people aren't vendor-locked to stripe / getlago you can still use stripe just helps adaptability in case stripe goes weird). Plausible analytics is nice, much better than GA imo. Sendgrid is what I'd normally reach for so that makes sense. Tailwind is what I use for css always so that's great too. So it really is just the lack of a vanilla JS (or lightwight js library like htmx/alpine, etc.) that would prevent my personal adoption of this saas. I know you're using Wasp or planning on using Wasp to implement e.g. authentication etc. which makes sense. But I can't help but wish there was a way to be backend agnostic (not easy I'm sure) such that I could use e.g. django. It would open up a lot more potential customers if you did want to e.g. provide commercial support to people who adopt this open-source saas. Anyway, best of luck eh and good work so far


super helpful, thanks for your thoughts! Yeah, stack-agnostic is hard but not something we're opposed to. Especially if we also manage to get the community interested and involved, which is the goal with the OSS approach.

Also first time I'm hearing of the term Djangonaut, love it! :)


Vanilla JS


They don’t understand the power of webcomponents and custom tags, templates, and document.querySelector().



Close as in it uses golang, sure… but that’s about it. Other than a few packages and the AWS sdk, everything else is old web app architecture. SQL database. Go template html. Not modern.


Looks like it has not been updated in 3yrs


Amazing to see more options for boilerplates! Consider adding your solution to: https://github.com/smirnov-am/awesome-saas-boilerplates . [edit:] Just saw it is already listed! Good job!


thanks. we already did actually!! its the first one under "Node.js (Javascript)"


Looks like a great starting point with good choices of technologies. I see the database is sqlite in development as default, but it is not possible to use it in production as described in the documentation. Would be great with the option to use sqlite in production also since it is easy to use and require less resources.


That's an interesting point! What do you think would be a point when one would need to switch to Postgres?


My main resolution for 2024 is to figure out my side project/SaaS boilerplate. Boilerplates are opinionated, and my opinions are so out of whack that I can't use any other folks' opinionated boilerplate. The challenge is the opinion part of boilerplates and the last "S" of SaaS, which stands for service.

I can't spend more than $5 a month, and I don't want to use anything other than Python. I think in Python and it provides the absolute frictionless path to bring my ideas to life. I wish I had the same feeling about JavaScript, and that would have certainly made my life easier. But this is a compromise I am happy to accept as part of my identity.

The stack I am thinking of right now includes:

- Firebase: I chose this because Stripe integration, real-time database, Firebase functions, documentation and Firebase authentication.

- Vue/Nuxt + BootstrapVue: This is for basic front-end stuff.

- VM/VPS: This will be used to host the operational logic.

- Python: This is the core operation. Firestore operations and management will have the real database in PostgreSQL/SQLite to reduce calls to Firestore.

- FastAPI: This will be used for communicating with Firebase via API. User calls will be relayed via Firebase to FastAPI. It may be slower, but it will make my life a bit easier.

- NGINX: Plan is to have one FastAPI project per project. I think NGINX is going to be helpful here. Also, I would like to do some firewall configuration.

I still have a lot to figure out. One thing I am trying to determine is if I really need Firebase here because I already have a backend there.

I want to build an API-first system and Unix philosophy-inspired systems where multiple API services or Python modules do one thing only and are linked to each other. The goal is to create common operation Python modules, so I can quickly develop POCs by combining boilerplates with parameters and write the core logic in the minimum amount of Python code. The whole plan is to keep trying different approaches until I find one that works.


Looks interesting. I use a similar stack. What made things a lot simpler for me was packaging the python app inside a nginx unit docker image. CI/CD was highly simplified...


I will look into it. Thank you very much. My current plan was to SSH and develop inside the VM/VPS. VS code's remote desktop extension makes this quite easy.


Concurrency handling and package management alone got me to switch from Python to JS for backends.


For both these issues the answer is Go. I found Go more fun than JavaScript. I won't write Go from scratch rather I will rewrite Python to Go when I start hitting walls.

On concurrency, I hope FastAPI will help on that. But I am horrible at writing concurrency code and that is why I don't enjoy writing JS. But from my limited experience, I enjoyed goroutines.

Package management, for mission critical stuff I have to straight up use Go binaries to be honest.

I didn't mention Go in my parent comment because it will be used as a langauge to rewrite solutions and for that to happen I need to make atleast a couple hundred dollars a month to make that investment.


I'd use Go if it had exceptions and async/await. The Goroutines are great for "systems" type software but overkill for web backends.


Love opinionated things, as obviously someone put some thought into it. Would be nice to have a small explainer backing the choices.


<3


Congrats on the release! I think marketing it as a general alternative is a little bit misleading. People have their favourite technology they care about and almost every current stack already has an open source boilerplate, no?

I too built my own boilerplate, Rails + blogging + Kamal deployments, and call it Business Class. Not free, but worth it:)


Thanks for sharing, Business Class looks really cool! As I mentioned in other comments, I think the situation in JS is similar to other technologies - there are a lot of oss boilerplates, but most of them don't offer the same level of polish and features as the paid alternatives. Also, a good portion of them is outdated or not actively maintained.

And that's exactly what we are going for, just with an open-source, community-driven approach.

I can imagine you had the same motivation when you created your boilerplate starter (not the oss/community thing, but above)?


I like it that the project using Astro. Thank you for making this!


Honestly, what is the market for these SAAS starters these days? Is anyone making serious money, or even a modest side income, with some web app? It seems the low-hanging fruit is well and truly picked at this point and building something that will earn you decent money requires a lot of time and money investment in a vertical niche, not yet-another-project-management-tool you can put together in a week.


Great project. I’m curious if you know live and earning startups made using this or other boilerplate.


Open SaaS is still very new, but there are a couple that used the "old" version of it, which basically gave us an idea for Open SaaS. For example:

- CoverLetterGPT (https://coverlettergpt.xyz/) - generate a cover letter based on your CV and job description

- Etsy description generator (this one even got acquired): https://dev.to/wasp/from-idea-to-exit-building-and-selling-a...


Why use Astro, I thought it’s supposed to make content-heavy websites, not dynamic user-centered sites


You can server render dynamic content using Astro. It might be a good choice if you like coding with javascript, but also don't want to send javascript to your users.


Yes, exactly - Astro is used for the documentation and blog for your SaaS project


Since this is YC backed, is there a plan for monetizing it?


No, both Open SaaS and Wasp are free and open-source, like most of the frameworks. If we manage to get the community adoption for Wasp, the next step would be to look into value-add services on top of it that can be monetized (our role models are companies like Mongo, Terraform or Databricks).


Does anyone know which software was used to make the video?


Looks similar to videos made with https://www.screen.studio/


yep it was screen studio! Super handy to use


Having built something similar, the biggest challenge for users is that they have to use a bespoke language, like WASP here. I suspect that it is also your biggest challenge as well.

Mine is built on CUE, which at least has the potential to become a more widely used language. CUE hasn't reached sufficient maturity for broader adoption yet, so I continue to face this same problem.

https://github.com/hofstadter-io/hof

What we built is more like a framework for building WASP + boilerplate for anything, both sides of the transform in full control by the user.

I'm less bullish on the idea since LLMs that can code arrived on stage


Wasp is as easy as learning to write JSON when you already know JS.

It's more a mental barrier as new tech no one has heard of is always somewhat intimidating, whether for good reason or not.


I don't like DSLs because in almost every case, it would've been better as a library in a general language. You get matured primitives, control logic, and interoperability for free that way, and there are fewer surprises.

But Wasp promises so much that I still want to try it. Getting auth and RPCs auto-generated would be great on its own.


Cool! What about paypal integration?


would you mind opening a feature request? Would love to hear more about it: https://github.com/wasp-lang/open-saas/issues


not a bad idea


What is OpenAI used for?


hype




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: