We are seeking a talented Backend Developer, our first ever full-time Siteleaf hire. This is a super rare opportunity to join our small, tight-knit team and contribute to the future of Siteleaf in a meaningful and rewarding way.
Siteleaf powers thousands of websites from independent blogs to Fortune 500 companies, with a passionate following among developers (we are a product for developers, made by developers). We are currently working on an all-new Siteleaf v2, and have big ideas for the future. Right now is the perfect time to join our team, and help reimagine the future of static websites.
We’re currently hard at work on version 2 of Siteleaf, which brings a bunch of new features and improvements that we’re eager to show off. We’ve taken everything you love about v1 and made it more open, more customizable, and easier to develop.
While we wrap things up, we’re also inviting a small batch of good people to try things out and provide feedback. If you are interesting, sign up to join the beta.
For the last week publishing in the Siteleaf interface has been powered by our API. This has been a requested feature by some of our users and ourselves. Its behavior is bit different than some of our other API endpoints, so let’s go over it.
To initiate a publish, make an authenticated POST request to the /sites/:id/publish endpoint.
$ curl -u "$API_KEY:$API_SECRET" -X POST \
http://api.siteleaf.com/v1/sites/$SITE_ID/publish
{"job_id":"e79af12c79ccd8866902d3dd"}
This triggers a publish and immediately returns a job ID (or returns an already running job ID if one exists). You can stop here if you’d like and Siteleaf will happily chug away in the background.
But the fun doesn’t stop there. You can optionally check in on publish progress using your job_id from above by making an authenticated GET request to the new /jobs/:id endpoint.
This endpoint, unlike our others, consistently returns Server Sent Events (SSE) instead of JSON documents (including errors). The data field is JSON encoded however. SSE is supported in all modern browsers and there are client libraries in a number of programming languages.
Additionally, job ID’s are kept for at least 30 minutes after completion so you can check in on a publish immediately or wait a bit.
Can’t wait to see what uses you come up with!
Publishing from the gem
First install the latest gem (0.9.23 as of writing)
You can group by any property like date, title, slug, even metadata and taxonomy. Here are a few real-world examples you may want to apply to your theme.
Liquid is the flexible templating language that powers themes on Siteleaf. While simple at first glance, there’s a lot of power under the hood for those wanting a greater level of control. In this new blog series, we’ll dive deeper and take a look at some advanced Liquid code and examples.
First up in this post, we’ll take a look at the sortfilter.
With any site, Siteleaf makes some general assumptions about your content. For example, posts are sorted by date (newest post shows first) and pages are sorted manually. In cases where this doesn’t fit your design, you can utilize the sort filter to order content any way you wish.
For example, here’s how we might sort pages by date:
{% assign sorted = pages | sort:"date" %}
This will sort in ascending order, but we could also choose descending order by adding reverse:
After building Siteleaf we took it upon ourselves to each rebuild our site using the service. I had previously used S3 with Jeykll and wanted to continue using it, but getting set up can be a bit of a mystery.
I’m assuming that you’re using Route 53 for DNS, and want to serve content from the root domain while having www redirect to it.
Amazon S3
Head to your S3 Console where you’ll make one bucket named after your root domain, and another with the www subdomain (e.g. example.com and www.example.com). Take note of the region you choose.
If you’re a heavy Siteleaf user, you might notice a few tweaks here and there that we recently introduced.
Improved page menu
The first thing you might notice is a redesigned page menu in the sidebar. After building large sites with Siteleaf, we realized the original design didn’t accommodate subpages and posts as well as it could. Now, it’s a lot easier to dive into and sort multiple levels of subpages while still keeping things looking clean.
Quickly search and browse posts
Another new thing we’ve introduced is the posts sidebar. Now you can dive straight into a page’s posts by clicking the posts icon next to the page link in the sidebar, or by clicking the “other posts” link on the post itself. From the posts sidebar you can now search and filter the posts list by title.
In addition to the Markdown basics, Siteleaf supports some advanced syntax to make formatting your content easier. Here is a sentence showing off a highlight and also a footnote1.
Footnotes are great for citing and referencing sources, or for expanding on ideas. They are created like this:
Also known as Secure or SSH File Transfer Protocol, SFTP joins our extensive publishing options including FTP, Amazon S3, Rackspace Cloud Files, GitHub Pages and our free Siteleaf Hosting.
It’s time to celebrate, today is Siteleaf’s first birthday!
Here’s what we’ve been up to lately:
GitHub Pages integration: now you can publish your site with version control, see revisions and revert back to any publish state.
New help site: we have a new site for theme documentation, tips, and FAQs (built on Siteleaf of course).
User roles: control site access for your collaborators and clients.
Asset metadata: add captions, alt text, and information to your images.
Zapier integration: create new Siteleaf posts via e-mail or third party services.
Siteleaf Gallery: see how others are using Siteleaf and get inspiration.
If you’re just joining us, we now have free Developer accounts available. You can sign up for free, try out our tutorials, and get a feel for the service before going live.
Exciting news! Starting today you can now publish your sites from Siteleaf to GitHub Pages.
GitHub Pages is a solid choice for static web hosting, especially if you already use GitHub to manage your theme code—and it’s clear a lot of our users already do.
Why GitHub Pages?
It’s fast! Check out this comparison by Jeremy Morgan.
It’s powered by a global CDN, from the folks at Fastly.
It’s version controlled! Every publish is a commit, so you can see revisions and revert back to any publish state.
And there’s no extra cost, GitHub Pages is included with your GitHub account.
Today we’re happy to introduce a highly requested feature: user roles. Since day one you’ve been able to invite collaborators to your site. With the introduction of user roles, you can now set the level of control each collaborator has over your site content. You can now set a collaborator’s role to one of the following:
Admin
The admin role gives full privileges to the collaborator, allowing them to manage and publish all content. This role is great for people who are helping build the site, like a developer or designer, since it allows them to upload theme files, change the site’s settings, and invite other collaborators.
Publisher
The publisher role is similar to the admin role, however publishers aren’t able to access theme files or the site’s settings. This is a great role to grant to a client. It allows a person to manage and publish pages, posts and assets, while protecting them from accidentally breaking the site’s theme.
Writer
The writer role is the most limited role available. A writer can only manage their own content, and any content they create will default to “Draft” status. This means that a Publisher or Admin must approve a writer’s content first before publishing it. This role is great for sites with many collaborators who only need access in order to add content (like a blog post).
We always love hearing the experiences of others who have built their site with Siteleaf. Jessica Harllee, Siteleaf Hackday MVP and all around cool person, was nice enough to write about how she used Siteleaf to rebuild Erin Nolan’s personal site. Some great takeaways from her post include how she used Siteleaf metadata fields on posts and assets to achieve a unique color palette for each page and to control how images were displayed throughout the layout.
On the blog, some posts are more text-heavy whereas sometimes Erin wants a glorious image header. To make it flexible, we look for an asset with the [meta field] type of hero and display that image above the post excerpt. If there’s no hero image, then the post text displays as normal.
We’re constantly working on improving the Siteleaf experience and making it as flexible as possible. Today we’re happy to introduce two new features:
Asset metadata
Just like metadata on your Siteleaf posts, pages, and sites, asset metadata is a flexible way to add additional information to the assets uploaded to your site. This is perfect for things like captions, alt text, adding location info, and more. In your Siteleaf theme, you can access asset metadata through the asset’s meta variable. For example, if you had an asset meta field with a name of “caption”, you would access its value like so:
asset.meta.caption
For a more advanced example of how you could use asset metadata, check out our latest Siteleaf lab where we use asset metadata and a JS library to swap out images based on the window width.
Quick post edit
Another new feature we’ve added to the Siteleaf management area is the ability to quickly edit a post without leaving the list of posts. This is perfect if you just need to make a small change to a post’s title, toggle its visibility, or to reorder your posts by their publish date.
Forget the CMS headaches of yesteryear, moving your website to Siteleaf is surprisingly easy. Since Siteleaf publishes to static files, it’s also a great way to speed up your site, reduce server costs, and have a permanent archive of your site. Bring your content with you using a simple JSON import script powered by the Siteleaf API (also available for Jekyll).
Here are four people who’ve recently made the move, and how they got here:
At Siteleaf, nothing makes us happier than seeing our customers build amazing websites. We proudly showcase these in our ever-growing Gallery for inspiration.
Some of our recent favorites include:
STET - a writers’ journal on culture and technology featuring multiple authors and beautifully art directed posts, from the folks at Editorially. While you’re there, make sure to read Why markup (and Markdown) matter.
Nearly Impossible - a conference for people who “make and sell physical products”, hosted in New York City this November. This very possible website pairs nicely with Tito for ticket sales.
Jessica Harllee - this Brooklyn-based designer showcases her work at Kickstarter and beyond with a portfolio and blog powered by Siteleaf. Make sure to check out the excellent blog post about her redesign with Siteleaf.
In previous posts, we talked about using Markdown for text formatting and Metadata for extending your content in Siteleaf.
Markdown makes it easy to add links and *emphasis* to your content without having to write HTML. While your body content uses Markdown by default, you can also apply this easy-to-use formatting to your metadata.
In my last article about Siteleaf, I wrote about what goes into porting a theme to Siteleaf from another CMS. This time around, I’ll show you how to write cleaner, less redundant templates through the use of layouts.
Today, we’re announcing developer accounts. At launch, we required a subscription in order to use Siteleaf, unless you were invited to a site. Now, you can sign up for free, test the waters, and get a feel for the service before subscribing. If you want to publish your site, simply upgrade to one of our plans and publish away.
Hello Brooklyn! This week the Siteleaf team will be at our favorite web conference, Brooklyn Beta.
We’ve been huge fans and supporters of Brooklyn Beta over the years, and a proud sponsor of the very first conference (even before Siteleaf launched!).
This year our team be hosting two Siteleaf hackdays, right downstairs from the conference at The Invisible Dog:
Today, I ported another theme to Siteleaf—Allison House’sMartin theme. I started porting themes to Siteleaf earlier this month as a self-imposed challenge. A friend of mine asked if a particular theme was possible to implement using Siteleaf and rather than answer with a simple ‘yes’, I responded with the ported theme. This was a great way of demonstrating Siteleaf’s adaptability, but also a useful exercise for myself to see where Siteleaf excels and where it falls short. In this post, I’ll walk through porting the Martin theme and show you just how easy it can be.
Introducing the very first Siteleaf Hackday, August 24 in Brooklyn, NY. If you are new to Siteleaf, have questions, or just need some motivation to finally make that new blog, here’s your chance to sit down with the Siteleaf team and talk one-on-one.
This event will be hosted at our studio in DUMBO. Drop in for a visit or hang out for the day and we’ll help you get your first site up and running before you leave. Bring your laptop, sample code, and questions.
In the last Siteleaf post, we explored taxonomy and the many ways you could use it to extend your website. This time, we’ll break from templating and take a closer look at content—specifically, Markdown’s role in Siteleaf.
Last week, I wrote about metadata in Siteleaf and the variety of ways you could use it to customize your website. In this post, I’ll do the same, but with metadata’s much cooler, older brother—taxonomy.
In Siteleaf, metadata is pure key/value data attached to a site, page, or post. It provides a way to interact with templates beyond the basic usage of injecting title or body copy. Metadata can be used to set inline CSS values or specify the number of posts on a given page—the uses are endless. It’s also very flexible, down to a per-entity level. A post could have a completely unique set of metadata compared to that of its siblings. Let’s look at a few examples.
Last week, I ran through a number of Siteleaf’s most compelling features and provided a general overview of the service. This week, I’ll hold your hand through creating a basic website using Siteleaf.
Recently, we at Oak launched a new website publishing platform, called Siteleaf. In short, Siteleaf lets you build your website locally, edit its content in the cloud, and publish to static. In between, it’s so much more. Let me tell you about it.
Develop locally
As the one who makes the websites, you undoubtedly have a dev environment you prefer. All your code is version-controlled, your snippets are award-worthy, and you are one with your text editor. With Siteleaf, there’s no online WYSIWYG editor forced upon you, so you can build your website in the comfort of your own IDE. Use the Siteleaf gem to preview your templates locally using the data from the live server. When you’re ready to go live, simply push the files with the gem or upload them using the website. You can even use Pow or Anvil to preview your sites with a proper hostname.
Approach — Managing content on sites can be a precarious task. We wanted to build a lean tool that would integrate easily into your workflow, yet provide everything necessary to maintain your content.
Goals — Siteleaf aims to strike a balance between control and simplicity. We believe content management systems should be simple but not overly simplified. That you own your content, your sites should be able to outlive their CMS, and you should be able to host sites anywhere you want. With these principles in mind we developed Siteleaf.
Features — Siteleaf is a lightweight platform for publishing websites. Write with markdown, collaborate with colleagues, develop with templates, build with our API.
If you can write HTML, you can create with Siteleaf.