The good and bad to build a website with Sheet2Site?


After launching AffTable on Product Hunt, I’m thinking about how I can improve further for AffTable and what I should do next. In the meantime, I would like to recap for Sheet2Site before moving on. It’s my first time to build a complete website on the spreadsheet.

What is AffTable?

For your information, AffTable is the collection of SaaS affiliate programs. When I was writing long blog posts like this one, I would use affiliate links to compensate for my cost. So I make my collection from a spreadsheet to a website and share it with you. I hope my work can also help other content creators like bloggers, podcasters, influencers, niche site owners, etc.

As a developer with technical knowledge, I didn’t expect to use a spreadsheet as the backend panel initially. You know, developers are obsessed with the database, programming languages, servers, and stuffs like that. Having said that, Sheet2site really helps me to ship fast and launch the site within 2 days.

Disclaimer: Please note that this post includes affiliate links which provide a commission to me at no cost to you. However, the links are useful for the best software and tools you need to start a successful project. By purchasing via the links, you are supporting a solo founder, a maker to sustain his work.

Project Planning

When I was planning the project, I already know that data collection will take most of the time for building these collection sites or directory websites whatever you call it.

Another reason making me try is the founder, Andrey Azimov. His story is fascinating as Pieter Level’s one. I won’t doubt his passion to build something great though he didn’t study CS before. I can see that he poured his heart and sweat into the project when I was working with the sheet.

Though the tabs in the sheet look simple, I am sure he has spent tremendous efforts to create such experience for the users.

For AffTable, it takes me 7 days to scrape through the affiliate programs one by one, another 2 – 3 days for data cleanup and site development. In total, I spent only 10 days to finish the whole site. After I finished the site, I bought a domain at NameCheap and ask Andrey to map the custom domain for me.

Interestingly, the name takes me some time to brainstorm. When I was checking the name and domains available, I found that most of the domains with “Affiliate” are taken. So I started a thread on subreddit “Affiliate Marketing” to ask other affiliate marketers What is the short form of affiliate? Luckily, I got some input from Redditors and finally stopped by “AffTable”

Intro: What is Sheet2Site?

In simple terms, Sheet2Site helps you to create a website without the need to mess with coding, server management, SSL, or even design. It provides you with a ready-made Google Sheet template. By filling in the copy, logo, and banner image, you can launch a website just in a few hours or days.

The learning curve is flat for all non-coders. If you are familiar with a spreadsheet, you are good to go. Personally, I don’t spend a long time working with a spreadsheet for the last 10 years of my career. I am not familiar with the built-in formulae. Usually, I use a spreadsheet to calculate project fees and record monthly expenditures for the company.

Why Sheet2Site?

You may wonder why I should use Sheet2Site as a developer. To be honest, I can build a similar site with WordPress and a compatible theme, or even with other HTML templates. If I make it myself, the cost will be zero. I don’t need to pay another subscription fee upfront.

Save my precious time!

My answer is I want to launch the MVP asap. The time to market should be shortened. For your information, to build a SaaS app, it takes normally 3 – 6 months just to finish an MVP. A collection website is simpler than a SaaS app. But it will still take 1 – 2 weeks to finish it assuming I am working as fast as possible.

I want to see the result and market feedback asap. If you are a hardcore developer, you may be happy to learn and solve different technical issues along the way. But I am not a typical developer taking a fat salary. I am a maker, a solo developer. This year, I am trying to meet my MRR target of $2,500 / m. Currently, my Shopify app (SEO Product Optimizer, aka SPO) is generating $750 / m. Not bad, But I need to ship more & ship fast.

If there is no deadline, it’s just wasting my time. Bootstrappers must be well disciplined. Learn fast, Ship fast, Iterate.

What can be done with it?

Actually, you can create many types of websites with Sheet2Site. For example, a Hacker News clone, a job board for a niche, a collection of tools & resources, a business listing for the best marketing agencies in the town, a curated collection of niche products you affiliated with, etc.

I would say that Sheet2Site is suitable for all types of database projects.

If you are looking to build your next SaaS, it is not going to work for you. You may consider Bubble. Also, systems with member login may not be suitable. I don’t try anyway to add authentication yet. If you’re really interested in a member system, free free to take a look at MemberStack or Tabbli.

My reviews

The goods:

  • Easy to learn + No extra system
    To get started, I just installed the add-on in GSuite MarketPlace. Select a template and fill in the information. Before you start, I suggest that you prepare all information you need, e.g. logo, data, banner image
  • New page setup is fast
    Fill in the page title, description, and URL handle. Booooom! The page is live! With markdown, I can format a web page with good readability
  • SEO? No problem!
    The meta description and social meta tags are all set. Just fill in the title, description, banner image, Sheet2site template will fill in the meta tags for you. Don’t bother with social meta tags. For social link previews, just check them in Facebook debugger or Twitter Card Validator
  • Built-in versioning
    Since the data is stored in Google Sheet, everything is managed by google versioning system. If you ever click the wrong button, you can roll back easily with a button. Alternatively, just press “Ctrl + Z” to undo or “Ctrl + Y” to redo easily.
  • Update anywhere
    If you’ve installed Google Spreadsheet app on your phone, you can edit the data at any time. However, there is a catch here. If there are multiple lines in your cell, you can hardly change it with the android app. Last time, I tried to edit my blog post for minor errors. But there is no way to change it. The post is too long in the cell.

The bads:

  • Google drive permission request is scary
    More elaboration is better. Initially, I was scared by the permission needed. It looks like my Google drive will be taken over by someone. Later on, I found that Andrey will get in and change the sheet himself. Just a little over-worried
  • Hard to format line break in cell
    Formatting the cell with markdown is hard. I found it clinky compared with my WordPress experience.
  • A bit slow to refresh website
    When you make a change, it takes around 20s to publish it. Usually, the content is cached. To clear cache, you should press “Ctrl + F5” on Windows.
  • Hard to construct the formulae
    Sometimes, it’s not easy to construct the formulae and apply it to all rows. For example, if you’re trying to add Disqus as the comment plugin, you will place the snippet into a fixed cell. I used an env tab to store it. After that, I will use a substitute function to replace the page URL and page identifier
  • Too many importXML causing errors
    Normally, we’ll get data from other sites & API in order to complement our dataset. ImportXML is a common function to do so. However, google sheet doesn’t have a mechanism to schedule it in batches.

    When there are a few hundred importXML in the tab, they will be sent at once. If you refresh the page, it will send bulk requests again. When the data source cannot respond, it will show “loading…” in the spreadsheet and your website eventually. As a workaround, I will use a column as the real-time result and another column as the display result. So the error won’t affect my live website.

My Quick Tips:

Google Spreadsheet functions:

ImportXML – IMPORTXML(url, xpath_query)

  • How to get xpath_query?
    You can follow this video tutorial. Just right click => inspect => right click on the element => Copy => Copy Xpath
  • How to get meta description of a website?
  • How to get Alexa Rank?

Substitute – SUBSTITUTE(A2,”new york”,”New York”)

  • How to substitute the code snippet with a parameter?
    =substitute(Env!$B$3, “PAGE_URL”, “‘”&Env!$B$2&lower([cell])&”‘”, 1)

Where to store the images?

You can use public storage like Imgur. I use AWS S3 + Cloudfront since it’s more reliable to store the assets in my own server. From the docs, Andrey said Google drive can be used too.

A quick way to generate URL with Slugify

If you have a long page title and you don’t change the whitespace to hyphen manually, you can use Slugify.

For example, this post title is What are the good and bad to build a website with Sheet2Site? Slugify will give me what-are-the-good-and-bad-to-build-a-website-with-sheet2site

Sitemap Generator

If you want google to index all pages of your site, you must submit your sitemap via Google Search Console. A sitemap is crucial for SEO and I suggest you submit after the site’s launch. But the question is “how can I get it???”

Unfortunately, Sheet2Site doesn’t provide a built-in sitemap generator. However, you can use a robot to find all pages and build the sitemap file for you. Here is one I google:

Just paste the URL, press “Start” and wait for your XML file! After that, you’ll log in to Search Console and submit the XML file.


If you have the patience to read through the article, here is my gift for you: my Google Sheet for your reference!

If you want to follow me, please follow my Twitter account: @BennyyChan

If you want to give feedback to me, feel free to ping me via [email protected]

Leave a Reply

Your email address will not be published. Required fields are marked *