Build and host decentralized websites from your Mac
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
:
Switch to the API
tab and click Start Server
. The server will start listening on the selected port; by default, it is 8086.
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
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:
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.
Tailscale creates a magic LAN that connects all your devices.
It is free for personal use.
- Download: Planet 0.19.0
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.
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.
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.
Visitors can click the “Donate” button in the navigation bar, connect their wallet, and send donations directly to you.
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
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.
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:
If you're using port 8086, you can access the Web Client at http://localhost:8086/app/
.
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
oreth.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.
This update introduces improvements to the WalletConnect feature, a new gateway for IPFS+ENS websites, a new avatar set, and several IPFS-related enhancements.
- Download: Planet 0.18.3
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.
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/
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 thePublic/: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 useabout
as a slug, then please make sure you put/about/
in thelink
field.
After placing the JSON files and attachments into the folders, start the Planet app and perform a Full Rebuild
.
It will generate a working site and publish it as an IPNS name that can be accessed from various gateways. For example:
- https://k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a.eth.sucks/
- https://k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a.ipfs2.eth.limo/
- https://k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a.ipns.dweb.link/
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:
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.
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.
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.
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
This update brings several new features: Search, Faster Gateway for IPNS, Pin articles, and Export/Import for Articles.
- Download: Planet 0.17.1
Search
Press CMD+F to open Search. You can search both your own articles and those from the planets you are following.
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:
- ipfs.io: https://ipfs.io/ipns/k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a
- dweb.link: https://dweb.link/ipns/k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a
- cf-ipfs.com: https://cf-ipfs.com/ipns/k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a
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.
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.
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
This update contains important improvements for performance, and a new template design: Sepia!
- Download: Planet 0.16.0
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 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.
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.
- Download: Planet 0.15.1
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.
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.
We have recently updated the Article Settings UI. This documentation explains how to use it.
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.
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.
The view of an article item has also been redesigned to reflect its type and attachments.
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.
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.
- 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'.
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.
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.
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 PlanetsPOST /v0/planets/my
- Create a new PlanetGET /v0/planets/my/:uuid
- Info of a specific My PlanetPOST /v0/planets/my/:uuid
- Modify my PlanetPOST /v0/planets/my/:uuid/publish
- Publish My PlanetGET /v0/planets/my/:uuid/public
- Expose the content builtGET /v0/planets/my/:uuid/articles
- List articles under My PlanetPOST /v0/planets/my/:uuid/articles
- Create a new ArticleGET /v0/planets/my/:uuid/articles/:uuid
- Get an article by UUIDPOST /v0/planets/my/:uuid/articles/:uuid
- Modify an articleDELETE /v0/planets/my/:uuid/articles/:uuid
- Delete an article
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
- Telegram
- GitHub
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.
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
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:
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:
- https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/_grid.jpg
- https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/_grid.png
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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
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.
- Discussions for Planet
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.
- Issues for Planet
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
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:
- DNS: https://livid.v2ex.com/
- IPNS published with Planet 0.10+: k51qzi5uqu5dk40pdgrqh5e6soy2bide88stdbkx8h7jjwvo5cb3xbkb2b7wmq
You can follow that IPNS with Planet too.
Filebase Pinning
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.
You can insert custom code to three common locations:
- Between <head></head>
- After <body>
- Before </body>
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:
If you have published audio content before, now Planet will also generate a podcast.xml
compliant with Apple's Podcast XML standards. For example:
Right-click My Planet to find the new Podcast settings. You can configure artwork, language, explicit content indication, and categories.
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.
- Discussions for Planet
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.
- Issues for Planet
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.
Follow .bit
Now, when you Follow Planet, a new domain is supported:
.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:
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.
- 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:
- 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.
- Discussions for Planet
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.
- Issues for Planet
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:
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.
In September's feature update, Planet added support for another blockchain-based domain name:
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.
A difference is, when setting content source for .bit domain name, you will not need to pay extra gas, that is because:
- The cost to register a .bit domain name contains a certain amount of gas for future changes on the chain.
- 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: