Making a website builder from scratch
👶🏻 Noob developer question: Looking for tutorial-style blog posts or articles on how to create a website builder from scratch (in the likes of Carrd, Squarespace, or even Sheet2site) - anyone came across any?
Basically the usual things that such platforms can do:
- users can authenticate and create accounts
- in their accounts they can select templates or web elements/blocks for their site, edit copy, upload images
- publish their site to a subdomain
- pay for monthly subscription for custom domain, analytics, adding payment gateways, etc
- users can create websites that in themselves allow for authentication and account creation for their own end-users, probably for access to gated content
I'd been interested in static websites for some time – the combination of fast load times, minimal attack surface, and adding APIs for extra functionality is attractive to me. So the tech stack could be using the usual HTML/CSS/Javascript/PHP, or Ruby on Rails and/or Jekyll, or React/Gatsby.
I'd been wanting to build a website builder on my own for learning and potentially as a side hustle, but just need a bit of reference on how to start. Amazingly, googling "how to build a website builder" didn't return much! It's such a potentially huge project to take on alone, that I don't even know how to break it down and where to start looking for specific help.
Building a Squarespace-like tool from scratch is a huuuuuuuuuuuuuge endeavor.
What do you want accomplish with building such a tool?
I would try to brainstorm a creative solution that arrives at your end goal without such an incredible amount of coding.
Just throwing an idea out there…
If your idea is to build a business that solves the "I need a website" problem, how about instead you focus on a small niche such as "I need a website for my Chiropractic office"?
That way, building the solution will be much simpler and you will have less competition.
Oh hah ok maybe Squarespace was a bad example… Something like Carrd or Sheet2site (since they were made by solo devs).
Yes I do have an idea of a niche already. Likely for social causes, nonprofits and NGOs. So I'm not so much looking for help on the business ideation front actually. Just need some rough directions on how I can eat this massive code elephant haha.
And I did consider using white-label solutions but since I want to keep learning coding (have some basics, made a number of products already), thought this is an opportunity for a learning project, especially for learning some new technologies that I'm interested in (static sites, JAMstack). But also open to using more stable tech like html or rails if that's easier.
@jasonleow bring our discussion from cowriter to here. Actually after read and re-read, I think what you need is to learn API, so you can either use CMS -> API or Google Sheet -> API or Airtable -> API then static HTML just put these API data in place. I was thinking maybe nocode API is what you need for now https://nocodeapi.com/ , it provide the API end point, you just pick up how to connect API to your template first.
@jasonleow I would start by simply building the websites by hand for your first customers using a static page generator such as Gridsome. They will be happy to not have to use a site builder at all! Then as you onboard more clients you build more and more automation and customization with input from real users.
@knight oooh interesting idea! Thanks! Not thought of that path before. Will explore nocodeapi for that. Though my pref is to make my own API eventually, but nonetheless a possible easier start using someone else's API.
@gabriel4649 yes, I already build websites by hand now for customers. Thats why thinking about something more scalable and trying to move on to more automation now! :)
I happened to read the making of Carrd by ajkn recently. A pretty interesting read to see how he progressed - plan, build, and launch! Could be of your interest too! https://themakingof.carrd.co/
Thanks Sai! Yes I read that too - super informative! Helps me see at least how to break it down to bigger parts. I love that he also tried to provide small glimpses into the specifics, like using json for templates. Fascinating read.
Please sign in to leave a comment.