Build and host decentralized websites from your Mac

 
Planet API Server

Planet includes a RESTful API server, which can be enabled in the settings for some use cases.

Enable from Settings

Click the Planet item in the menu bar, and select Settings:

planet-menu-settings

Switch to the API tab and click Start Server. The server will start listening on the selected port; by default, it is 8086.

planet-start-server

API Endpoints

The full list of API endpoints is available in the following document:

https://github.com/Planetable/Planet/blob/main/Technotes/API.md

Currently, the API server supports the following basic operations:

  • List sites
  • Create site
  • Delete site
  • Publish site
  • List articles
  • Create article
  • Update article
  • Delete article

Experimental iOS Client

An experimental iOS client is currently available via TestFlight:

https://testflight.apple.com/join/I4tSZmug

The client needs to talk to an API server to work.

Experimental Web Client

planet-web

This is an experimental web client created using vanilla JS and HTML/CSS.

https://github.com/livid/planet-web

It has not been optimized for mobile yet.

You need to clone the repo into Planet's public folder to get it to work.

cd ~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet/Public/
git clone https://github.com/livid/planet-web app

If you are using Croptop, you need to use this location:

cd ~/Library/Containers/xyz.planetable.Lite/Data/Documents/Planet/Public/
git clone https://github.com/livid/planet-web app

It can then be accessed at this address:

http://localhost:8086/app/

Reach the API Server From Anywhere

If you are away from your computer but want to access the Planet API server running on it, the easiest way is to install Tailscale on your devices.

https://www.tailscale.com/

Tailscale creates a magic LAN that connects all your devices.

It is free for personal use.

API
 
Planet Feature Update 13 - Sepia Improvements · Accept ETH Donation on Web · API Console · Experimental Web Client

Sepia

Sepia is a template optimized for microblogging. In this update, we’ve introduced several improvements to enhance this use case, allowing you to share thoughts, images, and even audio or video more frequently and easily using Planet.

sepia-microblog

Writing long-form articles isn’t something most people do regularly, so many users rely on different platforms—one for longer posts and others for quicker, more casual updates. For instance, Vitalik writes his long-form articles on vitalik.eth, but for more frequent, lightweight posts, he turns to platforms like X and Warpcast.

The Sepia template, along with the new ⌘+D quick post shortcut, makes it easy to set up your own microblog on Planet.

quick-post-new
⌘+D Quick Post Input

With this update, the quick input box now supports images, videos, and audio files.

Planet’s main sites, planetable.eth and olivida.eth, have switched from the default Plain theme to the Sepia theme. You can also check out a live demo of the Sepia theme here:

https://sepia.olivida.eth.sucks/

Accept ETH Donation

We've added a new feature that lets you easily enable ETH donations on your site.

accept-donation
Right-click My Planet and select "Accept Donation"
donation-settings
Enter your ETH address in the "Accept Donation" settings

Visitors can click the “Donate” button in the navigation bar, connect their wallet, and send donations directly to you.

donation-modal

Right now, donations are supported with ETH on the mainnet. In future updates, we’ll add support for Layer 2 networks and continue refining this feature.

If you’re a content creator or open-source developer who’s previously used PayPal or Ko-Fi for donations, consider giving this method a try. No need to ask for permission and no one can hold back the funds—everything is just code.

Customizing and Sharing Color Themes

template-settings
Right-click My Planet and select "Template Settings" to customize the Sepia theme colors.
template-settings-colors
You can also export your custom theme as a JSON file to share, or revert to the default colors.

Here’s an example of a Sepia site with a dark color theme customization:

https://k51qzi5uqu5dgy9qlqct5gsbggde32kc8wkz6419j67t9aw38bmyuwtkzmwdtn.eth.sucks/

API

We've enhanced Planet's built-in REST API and added an API Console to view recent requests.

api-console

You can check out Planet's API documentation here:

https://github.com/Planetable/Planet/blob/main/Technotes/API.md

We’ve also developed an experimental Web Client based on the Planet API. Here’s how you can try it:

cd ~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet/Public/
git clone https://github.com/livid/planet-web app

Enable the API server in the settings:

planet-api-server

If you're using port 8086, you can access the Web Client at http://localhost:8086/app/.

experimental-api-client

Other Fixes and Improvements

  • Fixed the img tag width when inserting Retina Display screenshots.
  • When following a Planet, ENS will now be automatically extracted from eth.limo or eth.sucks URLs if pasted.
  • GPS data is now stripped from image files when sharing photos.
  • Fixed and optimized an issue related to parallel processing during Planet site saving and publishing.
  • Each article now has a CID-based permanent link, which will remain accessible via most IPFS gateways, even if the site’s IPNS address fails to resolve.
  • Smart Feeds now show the total number of entries.
  • If the prewarm option is enabled, tags and archive pages will also be prewarmed on the gateway whenever new content is published, improving load times for first-time visitors.
 
Planet Feature Update 12 - WalletConnect · New IPFS+ENS Gateway · IPFS Control Panel · Monochrom

This update introduces improvements to the WalletConnect feature, a new gateway for IPFS+ENS websites, a new avatar set, and several IPFS-related enhancements.

WalletConnectV2

We've updated the Wallet Connect integration. Now, you can easily scan a QR code to connect your wallet and tip your favorite creators. This update also paves the way for additional Ethereum and L2 features.

New IPFS/ENS Gateway

There is a new fast gateway for IPFS/ENS websites, and you can select it from Settings. You will get shareable links on the eth.sucks or crop.top domains.

Currently, the two new domains are running on the same backend. In the future, they may each have their own backend.

By the way, Cloudflare has decided to no longer maintain its IPFS gateway. As of this writing, there are really only three usable general gateways for DWeb:

IPFS Control Panel

A new IPFS control panel displays the IPFS version, peer count, and a live chart of bandwidth usage.

Open Any IPFS Resource with the Local Gateway

You can find a new Open menu under File, or use the keyboard shortcut CMD+O to open any IPFS resource with the local gateway.

Easily Reuse Tags for Your Posts

You can now select from previously used tags when adding tags to your post.

New Avatar Set: Monochrom

99 new black-and-white avatar images for your Planet site. A new setting allows you to save a circular version of the avatar to better fit certain template designs.

New Quick Share Gesture

Simply drag and drop an image into the article list to share it.

New Quick Post Input

Click on the toolbar or use the keyboard shortcut CMD+D to access this new input designed for microblogging.

Fixes and Improvements

  • Fixed unexpected behavior of the article list on macOS 12/13.
  • Use keyboard to navigate between search results.
  • Use // or # as comment lines in aggregation settings.
  • Hero image width and height are included in the variables for templates.
  • A local notification will appear when a new CID is successfully published to IPNS.
  • New Planet setting: Do Not Index. You can ask search engines not to index the site by adding a robots.txt rule file.
  • New Planet setting: Prewarm. The app will access a newly published post on the currently selected gateway, creating a cached copy on the gateway to make future access faster.
  • Insider builds now have the Planet-Insider name for binaries, allowing them to coexist with regular builds.
 
How to Create Multimedia Posts Programatically

If you have a large collection of multimedia files and want to move them into Planet in a programmatic way, this document is for you. It includes detailed steps and answers to some common questions.

Repo Location

Planet uses JSON files on disk for all metadata. You can find these JSON files here:

~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet/
repo location

There are several top-level folders inside:

  • My: JSON metadata files for all of your sites.
  • Public: Built sites and attachments.
  • Templates: Templates. You can create your own templates and put them here.

Inside the My and Public folders, you will see UUID folders. Each UUID folder represents a site.

Create New Article

You can create a new article by placing a new JSON file under My/:SITE_UUID/Articles/. The filename should be the article's ID. Here are all the required fields in the article JSON:

  • articleType: int - Default is 0, which means it's a blog post. Use 1 to make it a page. A page type does not appear on the homepage list and can only be accessed via its full URL.
  • attachments: [string] - A list of attachment filenames. If you add an attachment to the article, you need to place the attachment file in the Public/:SITE_UUID/:ARTICLE_UUID/ folder.
  • content: string - Article content in Markdown format.
  • created: timestamp - Timestamp using Swift's default epoch (seconds since January 1, 2001, in the UTC timezone). Add 978307200 seconds to convert it to a regular Unix timestamp.
  • id: UUID - Use the same value as the filename.
  • link: string - Include the UUID in this format: /A26DEDFD-4460-422B-A233-8B94C5366C08/.
  • title: string - Article title.

Optional fields:

These fields are not required, but if you provide them, templates will use them accordingly.

  • audioFilename: string - If one of the attachments is an audio file, please also put its filename here as some templates (such as Plain) depend on this variable to render an audio player.
  • videoFilename: string - If one of the attachments is a video file, please also put its filename here as some templates (such as Plain) depend on this variable to render a video player.
  • slug: string - Use lowercase letters and numbers to customize the post URL. For example, if you use about as a slug, then please make sure you put /about/ in the link field.

After placing the JSON files and attachments into the folders, start the Planet app and perform a Full Rebuild.

full rebuild

It will generate a working site and publish it as an IPNS name that can be accessed from various gateways. For example:

One Audio/Video Attachment Per Post

The default Plain template supports displaying video and audio content. However, please do not include more than one video or audio file. You can have one video and one audio per post, but not two or more, as the template currently only renders the first one.

podcast.xml and Podcast-related Settings

If your site has audio files attached, Planet will generate a podcast.xml file that can be subscribed to in podcast client apps.

You can right-click on your site and adjust podcast-related settings, such as cover art and categories:

podcast settings
 
FFmpeg Commands for Planet

Planet supports posting videos. You can attach one video per post. Here is a site with many videos:

https://yihanphotos.eth.sucks/

This page collects useful FFmpeg commands that can enhance video posts for Planet.

Install FFmpeg

FFmpeg is a versatile tool for processing videos.

You can download a static build from the FFmpeg website:

https://ffmpeg.org/download.html#build-mac

Or install via Homebrew.

brew install ffmpeg

Convert to HEVC

HEVC is the next-generation video format, capable of significantly reducing file size while maintaining visual fidelity. As of May 2024, it is already widely supported.

https://caniuse.com/hevc

Use this command to re-encode videos to HEVC:

ffmpeg -i input.mp4 -c:v libx265 -crf 28 -c:a copy -tag:v hvc1 -movflags faststart output-x265.mp4

It is worth noting that the -movflags faststart option is very important for video files intended for web hosting. This option places metadata at the beginning of the video file, allowing browsers to parse it without requiring the entire file to be downloaded.

-crf 28 is used to adjust compression quality. Its valid range is from 0 to 51, where 0 represents lossless compression, 23 is the default, and 51 is the lowest quality possible. A lower value indicates higher quality.

Upscaling with Nearest Neighbor

This command is particularly useful for processing retro gaming videos. For example, to upscale a video by 4x:

ffmpeg -i input.mp4 -crf 18 -vf "scale=iw*4:ih*4:flags=neighbor" output-4x.mp4

Example output:

Ensure Metadata is at the Beginning

This command ensures that the metadata is placed at the beginning of the file, which is important for web streaming. It does not alter the actual video data; therefore, there is no recompression. It only changes the location of the metadata.

ffmpeg -i input.mp4 -codec copy -movflags faststart output.mp4

You can verify the result with the mp4box tool, which can be installed with Homebrew:

brew install mp4box

Use mp4box to inspect a video file:

mp4box -info output.mp4

If you see this line in output, it means the file is good for web streaming:

Progressive (moov before mdat)

This page will be updated regularly as we discover more useful ways to enhance video posts for Planet.

 
Can I Use Planet While Offline?

Yes, you can write and generate a static website while offline and publish it later when you have connectivity.

You can also read articles from any Planet you follow while offline, as they are stored in the local repo. For example, if you fetched the latest articles from vitalik.eth, you can read them during a long flight without Wi-Fi.


When you start Planet in an offline environment, the IPFS status area shows Online (0) indicating that no peers are currently connected.

online-0

These features are fully functional offline:

  • Write or edit a post
  • Generate a website
  • Read retrieved articles from the Planets you are following

These features need connectivity:

  • Publish: Write CID to an IPNS and broadcast the update to your IPFS peers
  • Check for Update: Find new posts, or a new version of the app, from the Internet
  • Aggregation: Fetch posts from other IPNS, ENS, or RSS addresses
 
Planet Feature Update 11 - Search · Faster Gateway for IPNS · Pin Articles · Export/Import Articles

This update brings several new features: Search, Faster Gateway for IPNS, Pin articles, and Export/Import for Articles.

Search

Press CMD+F to open Search. You can search both your own articles and those from the planets you are following.

Search

Faster Gateway for IPNS

In previous versions, we used ipfs.io or cf-ipfs.com to access IPNS. Now, we have a new, faster option powered by the excellent eth.limo and NameSys. Both are community projects.

For example, IPNS for this site is k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a and you can open it with the following address:


IPNS + ipfs2.eth.limo

https://k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a.ipfs2.eth.limo


Usually, it's much faster than:

The new gateway can also be used with CIDv1 like this:


CIDv1 + ipfs2.eth.limo

https://bafybeihyeuqc7nv2zfwt3x6bglgxrca2xglt26jzzqpi4zxci5czxwskku.ipfs2.eth.limo


When you use Open in Public Gateway feature of Planet, it will open with ipfs2.eth.limo now.

Pin Articles

Articles can now be pinned to appear at the top of the list. This new feature is available when you right-click on an article.

Pin Article

Export/Import for Articles

You can export an article as a data package and import it to Planet on another Mac, or simply airdrop it if they are on the same LAN.

Export Article

Fixes and Improvements

  • Improvement: Full rebuild is now faster by utilizing all CPU cores
  • Improvement: Better implementation for monitoring changes in published folders
  • New: Prewarm article on public gateway for caching and faster loading
  • New: Edit button on the toolbar
  • Fixed: Scroll position of newly created articles
 
Planet Feature Update 10 - Peering with eth.limo · Sepia Template · Improved IPNS Publishing and Site Rebuilding

This update contains important improvements for performance, and a new template design: Sepia!

Peering with eth.limo

eth.limo is the best gateway for ENS websites. Now, with direct peering added, your new content will show up faster on eth.limo because direct peering can significantly reduce the time eth.limo spends connecting with your local IPFS node.

New Template: Sepia

Sepia is a brand new template that is great for microblogging.

Here is a demo site of the new template.

Features:

  • Show the latest content in chronological order
  • Minimalist two-column design on desktop
  • Responsive design works great on both desktop and mobile
  • Supports video, audio, and multi-picture content
  • Supports tags and archives

We'll continue to improve this new template as we receive feedback from you. In the next update, we'll introduce a whole new editor designed for microblogging.

Improved IPNS Publishing

A confirmation dialog will now show if you try to quit the app while it is performing IPNS publishing (indicated by an animating hourglass in the sidebar). Previously, quitting the app during this process could result in unfinished IPNS publishing and cause the website to fail to resolve.

This improvement should significantly reduce the possibility of an IPNS site being unable to resolve.

Improved Rebuild

Now there are two types of rebuild: Quick Rebuild and Full Rebuild. A Quick Rebuild will only regenerate the site's homepage file, index.html. A Full Rebuild will also regenerate every single post with your currently selected template for the site. Quick rebuilding is useful when you are debugging a SPA (single page application) template, such as Croptop.

Misc. Fixes and Improvements

  • Fixed an issue where attaching files on macOS 14 was not working
  • Fixed an image interpolation setting that caused blurry avatars
  • Fixed an issue where the favicon was not removed when the avatar was unset
  • Added support for pasting images with the Quick Share dialog
  • Added Bonjour advertising for the Planet API service
  • Added a random pick feature in the Avatar Picker
  • Added a new API endpoint: /v0/id
 
CMD + Shift + D = Send

CMD + Shift + D is the keyboard shortcut in macOS's Mail.app to send an email. It is also the keyboard shortcut in Planet's Writer to send a post. So, if you're used to that shortcut in Mail, you can apply it in Planet, too.

Send
 
Planet Feature Update 9 - Tags · Archive · New App Icons · Select Hero Image · Pinnable

In this update, blogging with Planet is now a more feature-complete experience! We are so excited to bring you Tags and Archive, as well as enhancements for pinning.

Tags

You can now add tags to posts either through Article Settings or via a new tagging icon in Writer.

Each tag will then generate its own page, so all posts with that tag can be viewed from one page.

For example, this is the tag page for all release notes of Planet:

https://planetable.eth.limo/release-notes.html

Archive

A new Archive page has been added. It contains links to all the posts on the site.

We have updated the three built-in templates to accommodate the new Tags and Archive features.

Change App Icon

A new Icon Gallery has been added for you to choose a new icon for the Planet app.

If you hold Pinnable NFT Series A, then you can unlock two special icons that have animations in the Dock upon startup.

To use this animated icon, first you need to connect your Ethereum wallet. You can do so by scanning the QR code with the Rainbow Wallet app on your phone.

Select Hero Image

When you have multiple images attached to a post, you can now select one of them as the hero image. The hero image will be displayed when you share the post link on social sites like Twitter or Discord.

Enhancements for Pinnable

Multiple enhancements have been implemented for the Pinnable integration. Now, when you enable Pinnable for your Planet sites, you will experience more instantaneous feedback from the service.

The icons next to the Planet site title mean it's pinned.

As soon as you see the pinned icon next to your site title, you can rest assured that extra copies have been saved on the remote Pinnable servers. As a result, your site will be faster and more reachable from various IPFS gateways.

 
Article Settings

We have recently updated the Article Settings UI. This documentation explains how to use it.

Article Settings UI
The new Article Settings UI

Slug

Your article uses a UUID in its URL by default, but you can opt for a custom one. For example, many blog sites have a page titled "About Me." You can set its URL slug to "about-me," so it will appear like this in the full URL:

example.eth.limo/about-me/

The URL slug can only contain lowercase letters, numbers, and hyphens. It must be unique.

Type

A new post is created as a blog post by default and will appear in the homepage and RSS feeds. If you change its type to "page," it will not be included in these feeds. The "page" type suits pages like "About Me."

Navigation

If you select "Include in Site Navigation," the page will appear in the site's navigation menu. This feature is designed for pages like "About Me."

You can also use this feature to point to an external page. For instance, you can add a page titled "Discord," include your Discord invite link in the "External Link" field, and choose to include it in the site navigation. This will make it appear as a link to your Discord in the top navigation area.

Navigation weight is used for ordering the links; higher numbers appear later in the sequence.

Top Navigation
Insider Builds is part of the top navigation
 
Planet Feature Update 8 - Article Settings · Avatar Picker · Quick Sharing · Pinnable · To-Do List Syntax · Embed YouTube

Article Settings and New List View

A new Article Settings context menu has been added. Now, you have the ability to change a blog post into a page. This feature is particularly useful for creating site-level content such as "About Us", "Contact Us", or any other similar pages.

With these new settings, you can design your site navigation similarly to planetable.eth. This can be done by designating certain articles to be featured as items in the site navigation bar.

By clicking on the list filter, you can filter articles by type, making it easier to find specific pages.

Filter

The view of an article item has also been redesigned to reflect its type and attachments.

Article Item View

Planet Avatar Picker

We have designed this new avatar picker to curate various beautiful picture collections that can be used as your Planet avatar.

The first collection, Nostalgia, consists of 99 abstract, simple pictures designed by yihanphotos.eth.

Quick Sharing

You can now drag and drop pictures onto the app icon for quick content sharing.

Pinnable

Pinnable is a new service for pinning ENS/IPNS websites.

Pinned with Pinnable

When you create and publish decentralized websites using the Planet app, your Mac serves as a node on the IPFS peer-to-peer network, hosting your sites. By utilizing pinning, additional copies of your websites are distributed across the entire network, resulting in quicker loading times and increased accessibility. This eliminates the need to keep your laptop on as a server for laptop users. Each time you publish new content, Pinnable initiates syncing with your node, ensuring that you don't have to keep your Mac on continuously as a server.

You will always maintain control over the authoritative version of your content.

To-Do Syntax

Planet's Markdown writer now supports To-Do list syntax, and you can switch items on or off from the local article view.

Embed YouTube

If you include a YouTube link in the content, it will now automatically convert into a player.

Other Improvements

  • Drag to reorder my planets or the following planets.
  • A progress bar shows during the rebuilding of a planet.
Progress when rebuilding a Planet
  • Fixed issues with moving articles.
  • Fixed a crash that occurred when the app had been up and running for an extended period.
  • A template can now have its own settings dictionary, opening possibilities for more template-level customizations.
  • Improved scrolling performance in the Markdown Writer.
  • Markdown Writer date picker can select 'Today'.
 
Planet Feature Update 7 - Star Types · Select Date · API Server · Repo Location and IPNS Key Manager · Social Integration · New App Icons for Insider and Debug Builds

This update includes new Star Types, Planet API server, support for moving repo, IPNS key manager, more social links, new icons for the Insider and Debug builds, and other bug fixes and enhancements.

Star Types

When you add a star to an article, now you can select from several star types to give the star more specific meanings. Some star types make it great to use Planet as a To-Do organizer. Besides right-clicking, you can add/remove star from the toolbar too.

Stars

In our next feature update, we'll make it possible to filter articles based on star types.

Select Date for Posts

Added a date widget to specify the creation date when writing an article.

Writer Date Picker

API Server

When the Planet app runs, it can now provide an HTTP API server. Here are all the current supported methods, and we will expand the documentation to include more details. The API server opens possibilities to third-party apps, especially mobile ones.

  • GET /v0/planets/my - List all my Planets
  • POST /v0/planets/my - Create a new Planet
  • GET /v0/planets/my/:uuid - Info of a specific My Planet
  • POST /v0/planets/my/:uuid - Modify my Planet
  • POST /v0/planets/my/:uuid/publish - Publish My Planet
  • GET /v0/planets/my/:uuid/public - Expose the content built
  • GET /v0/planets/my/:uuid/articles - List articles under My Planet
  • POST /v0/planets/my/:uuid/articles - Create a new Article
  • GET /v0/planets/my/:uuid/articles/:uuid - Get an article by UUID
  • POST /v0/planets/my/:uuid/articles/:uuid - Modify an article
  • DELETE /v0/planets/my/:uuid/articles/:uuid - Delete an article
Planet API Server

You can enable the API server and set a username and password from the app Settings.

Repo Location and IPNS Key Manager

This is still quite an experimental feature. Please use it with caution.

The default location for Planet app data is:

~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet

You can move this location from settings now. If the new location is on iCloud Drive or Dropbox, you can utilize cloud storage for backup.

Also, all IPNS keys are backed up with iCloud keychain if that cloud feature is turned on in your iCloud settings. You can find the new Key Manager under the Tools menu.

Full Sync has yet to be ready as we are testing more scenarios to make Full Sync reliable and easier to use. Again, this is an experimental feature; please use it cautiously.

More Social Integrations

You can now add those social identities to show them as icon links on the site homepage and site info panel.

  • Juicebox
  • Mastodon
  • Twitter
  • Telegram
  • GitHub
Juicebox Social

New Icons for Insider and Debug Builds

We release Insider Builds from time to time. They contain new features meant to be tested more before being included in the stable releases. You can get Insider Builds from the GitHub Releases page:

https://github.com/Planetable/Planet/releases

If you are running Insider Builds, you will notice that now it has a dedicated blue icon resembling the Xcode and other Apple dev tools. And we added a dedicated update channel for insider builds so that they can be auto-updated too.

You will get the yellow icon if you build Planet from the source.

Icons: Insider and Debug

More icon choices are coming in the next update. For example, new designs from the Pinnable project we recently launched. Another blog post about Pinnable will follow soon.

Fixes and Improvements

  • Added CSS for table and to-do list rendered from Markdown
  • Use absolute URL for hero images for maximum compatibility with various crawlers
  • Fixed a crash when attaching a video
  • Fixed audio player as it was not responding in the previous release
  • Use a custom SF Symbol of Ethereum for the button for tipping
  • Various style fine-tuning to the Plain template for better contrast
  • Added a subtle border and shadow to the planet icons on the sidebar for better contrast
  • Added a new variable for templates to use: social_image_url
 
Planet Feature Update 6 - Video Thumbnail · Hero Image · Published Folders Dashboard · Template Browser

It's the last day of 2022 and some time zones have already entered 2023 when we release this feature update. Happy New Year! Thank you for your support for Planet this year.

A major update in Feature Update 6 is a brand new template called Grid. You can see it live at the following website:

yihanphotos.eth

yihanphotos.eth

The design of this template is optimized for images and videos. It has a responsive design that works on both desktop and mobile. To support this template, this update brought some new files and variables.

Video First Frame Saved as Image

The first frame of the video will be saved as an image file called _videoThumbnail.png. For example, this video of a red-crowned Amazon parrot:

The address of the first frame's image file is:

Hero Image

If the article attachment includes a wide enough image, the name of the image can be obtained in the template as a variable called heroImage. This will bring many new possibilities to template design.

At the same time, this file will be converted into two versions suitable for use in a grid layout: _grid.jpg and _grid.png. If the attachment includes a video, the first frame of the video will be the Hero Image. And two grid versions will be generated, such as:

Image files generated by Planet in this way during rendering have names starting with _ and are located in the same folder as the original files.

These generated files are only used by the template and do not appear in the attachment list.


The above is an introduction to the new template. In future updates, we will continue to bring updates to template design. Traditional blogging systems like WordPress, Jekyll, and Ghost have accumulated a lot of tried and tested designs for organizing information over the past decade. These are all areas that Planet, as a static website generator, needs to catch up on.


Published Folders Dashboard

Published Folders is a new feature that was added to Planet's feature update in October 2022, which allows you to publish any local folder as IPNS.

This feature can be thought of as a fully graphical interface for IPFS publishing, particularly suitable for publishing the build results of various static website generators. For example, Jekyll.

Previously, this feature was accessed through the Tools menu. Now you can find the new graphical interface management entry at Tools -> Published Folders -> Dashboard.

Published Folders Dashboard

Template Browser UI Improvement

The template management tool Template Browser now has a three-column layout to display more information. It also allows you to preview the design of the template's homepage list.

Template Browser UI
 
WalletConnect Demo

Here is a video demo of the new tipping feature. You can learn more about this feature in the documentation:

https://www.planetable.xyz/guides/walletconnect/

It is implemented with WalletConnect V1.

 
Planet Feature Update 5 - Connect Wallet · Published Folders · Move Article · Archive/Unarchive · Show IPNS/CID of Planet

With the release of Planet 0.11 in December 2022, you can now show your support for content creators by tipping with Ethereum. Here's how to use this new feature:

Connect Wallet

Under the main Planet menu, you'll find a new option called Connect Wallet.

Connect Wallet

To use this feature, simply click on the menu item and a QR code will appear. You can then scan the code using a wallet app that supports WalletConnect, such as MetaMask or Rainbow. This will allow you to connect your wallet to the app and access the tipping feature.

QR Code

While browsing ENS dWebsites, you'll see a new tip button in the toolbar. Simply click on the button and choose the amount you'd like to tip. You can select from a range of pre-set amounts to show your support for the content you're enjoying.

Tip Button Tip Tiers

When you click the Send button, a transaction will appear in your wallet app on your phone. If everything looks correct, simply confirm the transaction on your phone and it will be sent to the Ethereum network. The content creator will then receive the full amount you tipped, without any deductions. This is a simple transfer of funds between two Ethereum addresses. It's that easy!

Sending Transaction

Once the transaction is confirmed and sent, a browser window will open and display the details of the transaction on the Etherscan website. This will allow you to see the status of the transaction and track its progress on the Ethereum network.

Wallet Apps Support

During the development of this feature, we primarily tested with MetaMask and Rainbow. If your wallet app supports WalletConnect, it should be compatible with this new tipping feature. However, there are some differences in how these two apps support test networks. For example, MetaMask lets you switch between Mainnet, Goerli, and Sepolia, while Rainbow will stay on the initial network you select when you first connect.


That is the new tipping feature. And here are other improvements in this update.

Improved Published Folder

The new feature we added in the previous version, Published Folder, allows you to publish any local folder as an IPNS. If you are using static website generators, this feature can help you quickly publish the build results as an IPNS.

Automatically Publish

The new Automatically Publish option automatically monitors changes to the folder and updates the IPNS with the latest CID whenever a change is detected.

Move Article

You can now move articles between different Planets by right-clicking on an article and selecting a destination.

Move Article

For example, you can use a Planet as a draft area to write and adjust your articles. When you are satisfied with the result, you can move it to the Planet where you want to publish it.

Archive/Unarchive

You can now set your own or followed Planets to Archive status. Archived Planets are not displayed in the sidebar, are not automatically published or updated, but all data is retained locally.

To restore an archived planet, you can unarchive it from the settings panel.

Show Planet IPNS and CID

A new panel for displaying IPNS and CID information for planets has been added. If you need to view a Planet's IPNS or the latest CID, you can right-click and find the new menu option Show IPNS and CID to view this information.

Show IPNS and CID

Those are the new features and improvements in the 0.11 update. If you experience any issues, please send feedback to the developers or seek support from the community on these channels.

If you have found a bug, please let us know how to reproduce it by submitting it on GitHub Issues. We will investigate and fix the issue as soon as possible.

 
Planet Feature Update 4 - Publish Local Folders as IPNS · Filebase Pinning · Custom Code · RSS and Podcast Improvements

Welcome to Planet Feature Update 4, released on Oct 12. This release brought four new features and other fixes and improvements.

Here are all the changes between 0.9.2 and 0.10.0:

https://github.com/Planetable/Planet/compare/release-0.9.2...release-0.10.0

Publish Local Folders as IPNS

You can turn any local folder into IPNS now. This new feature can be found from the menu: Tools -> Published Folders

published-folders

That makes it easier to use Planet to publish static sites built with a generator like Jekyll, Hugo, or Zola.

For example, here is a static site built with Jekyll:

You can follow that IPNS with Planet too.

Filebase Pinning

Filebase: Pinned

Filebase provides 5GB storage space and a good pinning API for free.

https://olivida.eth.limo/9BE484CD-0EA5-4742-927E-FA56F7591CC2/

With a remote pinning service, you need to wait a little bit for the pinning service to fetch the content after each content update. As the sync is done, you can close the laptop lid, and your visitors will experience a faster and more stable load speed.

Custom Code

When you need to insert HTML code into the static site built with Planet, for example, analytics and comment systems, now it is easier to do that with the new Custom Code settings.

Right-click on My Planet and select Custom Code to insert.

Planet: Custom Code

You can insert custom code to three common locations:

  • Between <head></head>
  • After <body>
  • Before </body>
Planet: Custom Code

RSS and Podcast

Planet will now also generate an rss.xml when building the site. For example, the RSS 2.0 address of this site is:

planetable.eth.limo/rss.xml

If you have published audio content before, now Planet will also generate a podcast.xml compliant with Apple's Podcast XML standards. For example:

olivida.eth.limo/podcast.xml

Right-click My Planet to find the new Podcast settings. You can configure artwork, language, explicit content indication, and categories.

Podcast Settings

There will be more to be done for better Podcast support, and we will keep improving this feature.

Fixes and Improvements

  • Fixed an unnecessary CID change during site rebuild
  • Add security rules to block access to the localhost IPFS API port from the internal WebView
  • Prefer JSON Feed if multiple feed formats are found on a content source
  • Add Insider Build channel on GitHub for more testing before stable releases
  • Update the built-in IPFS version to 0.15. We also tested 0.16 and found it seems to have a new resource consumption issue. So we shipped 0.15 instead of 0.16 in Planet 0.10.
  • Use SecureField for all API tokens on the UI, preventing sensitive info from being leaked in screenshots or screen sharing.
  • 🌟 Added support to subscribe to IPNS published by Matters Labs

Those are the new features and improvements in the 0.10 update. If you encounter any issues, please send your feedback to the developers or seek community support from these channels.

If you have encountered a bug, please share with us how to reproduce it via GitHub Issues, and we will investigate and fix it as soon as possible.

 
Planet Feature Update 3 - dWebServices.xyz · Follow .bit · QoL Fixes

Welcome to Feature Update 3, released on September 18, 2022. We brought you two new features in this update and many fixes and improvements.

Here are all the changes between 0.8.1 and 0.9.2:

https://github.com/Planetable/Planet/compare/release-0.8.1...release-0.9.2

dWebServices.xyz

dWebServices.xyz provides hosted IPNS records. You can enter your API key and domain in the new Integration tab in Edit Planet. Whenever you update your content, the latest CID will be sent to dWebServices.xyz to be written in the hosted IPNS record. Then, in addition to the built-in IPNS record, you will get another hosted one. The hosted one may have better discoverability because it is on a well-connected server. This is especially useful for laptop users because you will not need to keep your laptop on to keep your IPNS record active.

Later we will introduce another integration with a pinning service. Then laptop users will just need to wait for a bit after each content update. As soon as a confirmation from the remote pinning service arrives, laptop users can close the lid.

dwebservices-api-key

Follow .bit

Now, when you Follow Planet, a new domain is supported:

.bit

.bit is also powered by smart contracts running on a blockchain. The underlying blockchain is Nervos Network.

Like ENS, .bit can have dWeb records, and you can set IPNS to your .bit domains. So it can have a website built with Planet. .bit has its own public gateway too. For example, you can access this blog via the following address:

https://planetable.bit.cc

One thing is different, .bit does not need you to pay gas when you update records. That is because a certain amount of gas fees are already included in the registration.

Improvements

  • Planet app main window can now remember position and size. Previously, due to a default mechanism in SwiftUI, users get the default size when closing and opening a new window.
  • Added a setting to select a preferred public gateway.
general-setting-public-gateway
  • Updated peering settings with Cloudflare. New content will be discovered by Cloudflare public gateways more smoothly.
  • Added CORS config for webui.ipfs.io, so users will be able to check local IPFS settings with webui.ipfs.io
  • Added support for internal links. Users can link another article or planet, and the app will select the item instead of opening it with the default browser.
  • When you link another Planet, for example planet://gamedb.eth, if you are already following, the app will select it. Or start trying to follow it.
  • Fixed an issue where the unread count is not updated.
  • Fixed an issue where Mark All as Read is not working.
  • Fixed a performance issue that causes a spinning wheel when checking for updates of the following Planets.
  • Added a share button for articles on the top toolbar.
  • Implemented a config to lower the connections opened by the IPFS daemon, thus lowering the resource consumption. We will provide a finer tuning UI for this in a future update.
  • Added showing ENS icon for following Planets
  • Added support to render Markdown in Planet about info. For example, now you can have links in the about field like this:
planet-info-markdown
  • Added a confirm dialog when unfollowing Planet
  • Use TabView in Planet edit window for better organizing more features
  • Added support to enter GitHub / Twitter usernames for social links on the homepage
  • Fixed an issue with URL encoding when opening Plausible.io Dashboard (Thanks to the PR by @Fatpandac)
  • Fixed a regression where the preview area stopped sync scroll position with editor area
  • Writer window can remember the size and position per Planet
  • Added support for self-hosted Plausible.io
  • Added a new variable hasAvatar for template designers to use to decide whether a Planet has an avatar image
  • When you set an avatar for a Planet, a 32x32 version is saved as favicon.ico
  • Added support to use WorldWideWeb by The Iconfactory to open locally built website for preview

Those are the new features and improvements in the 0.9 update. If you encounter any issues, please send your feedback to the developers or seek community support from these channels.

If you are pretty sure you have encountered a bug, please share with us how to reproduce it via GitHub Issues, and we will investigate and fix it as soon as possible.

 
dWebServices.xyz

In September's feature update, we added integration with dWebServices.xyz.

dWebServices is an IPNS record hosting service. When the integration is enabled in Planet, each time you update your website, the latest CID will be sent to dWebServices to be updated in the IPNS record hosted there.

To start, first, you can sign up with your Ethereum wallet. The service can detect ENS domains already in the wallet, or you can add any domain to the dashboard. Then when you edit planet, you will find a section to enter the domain and API key here:

dwebservices-api-key

Then, in addition to the built-in IPNS record in Planet, you will now have another IPNS record hosted with dWebServices. The hosted IPNS record usually has better discoverability because it's on a well-connected server. That is especially useful for users running Planet from their laptops since laptops are not meant to be running 24x7 as servers.

You can set that hosted IPNS record as your ENS contenthash or .bit dWeb record too.

I hope you will find the new integration useful.

dWebServices is in the latest Gitcoin Round 15, a program that funds software projects. You can donate to the dWebServices project, and the project will receive a matching amount from Gitcoin sponsors.

So now, for the optimal experience for laptop users, the only missing piece is that we would need a good pinning service that accepts CID or IPNS records. Then users running Planet from their laptops would only need to wait a bit each time they updated their websites. As soon as confirmations from remote services arrive, they can close the lids, and the content will be hosted from those services, while authoritative versions are still controlled locally.

 
.bit
hello-dotbit

In September's feature update, Planet added support for another blockchain-based domain name:

.bit

Follow the link above, and you can register your .bit domain name.

.bit also supports IPFS as a content source. So you can use the IPNS built with Planet.

dotbit-manage

A difference is, when setting content source for .bit domain name, you will not need to pay extra gas, that is because:

  1. The cost to register a .bit domain name contains a certain amount of gas for future changes on the chain.
  2. The blockchain .bit depends on, Nervos Network's design keeps cost low for computational tasks.

So, the blog you are currently visiting has a .bit domain too, and you can access it via .bit's Public dWeb Gateway:

When you are trying to follow other Planets, .bit is now also supported:

follow-bit
 
Page 1 of 2
Next