The former developer in me feels a need to state upfront that Notion is not an ideal web serving layer. If you are trying to do something enterprise grade, you should probably use a different approach.
That said, for anything less than that, using Notion and potentially Potion as an addition is quite powerful. Despite some downsides, the ease of formatting and creating content in Notion is a huge positive. That is largely why we went with Notion and Potion as the serving layer for the Human Optimization Project (this site, in case you didn't know)!
The basics of this are pretty simple: Notion already allows you to make a page public to the web via the Share button in the top right. If you are on a paid plan, this can be done through a domain like https://yourname.notion.site/yourpage.
This works really well for one-off things. You can allow (or prohibit) editing and/or comments, and allow search engine indexing or the ability to duplicate a page to their own Notion. So you can also use it to host a static/semi-static page as a resource of blog post of some kind.
As you'll soon discover, there are several key limitations to what Notion sharing provides. Thankfully, the Potion team has started to build a solution to address these! Namely, potion enables you to:
- Lockdown full access to databases - so that people cannot see every field in a database as a result. For better or for worse, at the moment databases can only display one view and don't allow users to switch between different views.
- Leverage some web concepts like CDNs - content delivery networks - to serve pages to your browser substantially quicker.
- Fully custom URLs/domains - e.g. I can now serve my Notion page from hop.mumma.co or hop.com (someday).
- Change your background and add custom CSS to alter the look and feel of the site.
There are probably a few more differentiators that I am forgetting, but you get the idea. While the site will still "look" like a Notion side, it is more like a website now, with links taking you instantly to other parts of the site and not having any Notion functionality if someone is logged in, et cetera.
One perk of this is that drafts for content can be kept in the same database as the shared and published content. So long as all of your first views on a database contain a filter, say "page status must be published", then drafts will be inaccessible to any visitors to your site. Thus publishing your content becomes a one-click exercise, and doesn't involve moving anything from one place to another.
But wait, there's more! Another key aspect to any website is forms! Everybody loves forms, right?
Maybe not, but they are very helpful for gathering contact info or any other information from your users. Fortunately, we now have Tally! Tally provides (free) ability to create easy-to-use forms that can be embedded in Notion and integrated with it to sync that data right back to Notion!
Speaking of: now would be a great time to sign up for our monthly updates!
A free & easy-to-read once-per-month e-mail highlighting anything new from Hop!
So the various sign-up and contact forms you'll see around our site are all made with Tally. And as soon as you fill out your information, they add an entry into another (private) table within our Notion environment. It lists the name and e-mail tied to the form that it came from and any additional feedback for forms that allow this.
From there obviously we could integrate our subscriber list with various e-mail clients, or even manage it ourselves via the API.
Speaking of the API - the options expand dramatically when you consider it. While it may not be possible to make a fully dynamic website, you can integrate in a lot of outside information into Notion, and provide ways to collect user's contact information, feedback, and more.
That all said, there are limits to a Notion-based website. As covered, databases are limited to a single view, and the ability for users to interact with the site will be somewhat limited. It would also be very hard to do a fully customized app where the user interacts with only their own data.
Beyond that, there are some limitations in terms of how to display content and how to optimize it for the experience on the web. While Potion does a good job of this, it's never going to get you to the point that a customized site designed by experts would get you. If you need your site to be served to millions of people per day, you'd likely need to move to a different web platform.
That all said, there is a lot that you can do, and it is dead simple to get a site spun up using Notion. Not only that, but if Notion is your default tool for writing and drafting content (as it is for me), then the significant reduction in time & effort needed to push something to the web may make it worthwhile enough to consider.
Comparing it to other common tools, I'd say that it is easier to use than Wordpress or Squarespace, though in both cases there are some things that you gain flexibility with and some things that you lose flexibility with. Substack is great for a pure blog/newsletter, but doesn't really enable you to build a website around it.
As with all software, choose the option that works best for what you are trying to do! But hopefully this gives you a sense of webserving with Notion and the options it provides. Feel free to have a look around The Human Optimization Project (Hop) to see the full extent of the site so far, and please reach out if you have any questions!