Features

Instant Deployment

All of your changes become live as soon as you click "publish", and visible to the public as soon as you switch them to "public". No need for complicated deployment tools.

Offline Editing

If you're editing one of your pages and you board a plane, just keep editing! The error checking will still work, the live previews will still work, and your changes will be synced as soon as you're online again.

Automatic Error Checking

For HTML and CSS, the code you write is checked for errors as you type, and suggestions for how to fix errors are provided.

For JavaScript we're using a tool called ESLint for error checking, so the errors will look a bit different.

TailwindCSS Integration

TailwindCSS is a tool for styling your web pages with pre-made CSS classes. SiteGarden comes with Tailwind built-in, so if you want, you can style your web pages with Tailwind from the start.

Shareable, Live-Updating Previews

Normally when you're editing HTML, you have to make a change, then save the file, then reload the page in a browser to see how your new code actually looks. With SiteGarden, changes show up instantly as you type.

And if you want you can share a live-updating view of the changes you're making with someone else (maybe a friend, or some students, or a client) by giving them a special preview link. With that link, they can see the changes you're making as you type them, too, from anywhere with an internet connection.

Custom HTML Elements

Let's say you have a fancy button that you want to use on three different pages. Normally, you'd have to write out all the fancy code for that button three times. But if you make that button a "part" 🧩 (also known as a "custom HTML element"), you can write the HTML for the button just once, and then add the part to all three pages instead.

Custom Templating

Because parts are just web components under the hood, you can also use the features of slot elements to define custom templates. That is to say, if you make a part called calamondin-part that looks like this:

<div>
  <p>Calamondins are delicious!</p>
  <slot></slot>
</div>

And then use that part on a page like this:

<calamondin-part>
  <p>SO delicious!</p>
</calamondin-part>

The page's HTML will end up looking like this:

<calamondin-part>
  <p>Calamondins are delicious!</p>
  <p>SO delicious!</p>
</calamondin-part>

See how the <slot></slot> element in the part got replaced with the <p>SO delicious!</p> paragraph tag from the page? This kind of thing can be very helpful for things like reusing layouts on many different pages.

Contact Forms

Make a form on your web page with a /contact action and a post method, and we'll automatically send everything your users put in the form to you in an e-mail.

For example, if you make a form like this:

<form action="/contact" method="POST">
  <input type="email" name="email">
  <textarea name="message"></textarea>
  <button>Submit</button>
</form>

Then whenever a user submits that form, you'll get an e-mail with whatever they entered in the email and message fields.

File Uploads

Have an image you want to display on your web page? Use the "files" menu to upload it.

Importing and Exporting

Want to share something you created with a friend? Or save it as an HTML file to use it with another service? Just click the "Download" button on a page, part, or site. That will save your creations on your computer. You can share these save files with friends and they can import them using the "import pages/parts" button on the dashboard.

Pages and parts get downloaded as regular HTML files. Right now, sites get downloaded as .tar files that will need to be unarchived with an unarchiving program. We're hoping to switch this to more standard .zip files in the future.