This is the first quality update for Planet. In this release, we focus on making the software more stable, easier to use, and cleaning up the underlying codebase.
Upon starting the app, you will now see a new welcome screen that provides a brief introduction to the features. There's also a Follow Featured button to let you follow featured content sources.
Pixel Nomad
Pixel Nomad is a new site avatar set designed by Ann. You can click the smile face on the toolbar and select one as your site avatar.
Codebase
We addressed most compile warnings in the codebase and optimized the handling of some multithreaded scenarios. Overall, you should feel the app is more snappy.
Planet is an open-source native macOS app built with SwiftUI. If you are interested, here is our source code repo:
Whenever Uniswap releases a new frontend version, they also publish its CID. To be 100% sure you're not using a compromised frontend, you can load it via CID. An IPFS CID is essentially a SHA256 hash, meaning that even a single byte of change in the underlying content will completely alter the SHA256 hash, ensuring its integrity.
For example, the CID for the latest Uniswap frontend release is QmQZe48wGBwx6z8DuboTG62AYf8BbKd6XYDENefVZUvjyV
In the latest updates to Planet, we've added a quick way to open any CID via Planet's local IPFS gateway. You can find the "Open IPFS Resource" option under the "File" menu to open either a CID or IPNS.
Compared to simply opening a website via HTTPS, accessing the frontend through a CID introduces concepts that need to be understood and extra steps. However, it also offers an additional layer of security. Give it a try!
Solana Name Service is the most popular name service on the Solana blockchain. You can get your .sol names at sns.id. There is a one-time payment of $20 USDC per name for names with five or more characters. Shorter names may cost more. The initial cost is slightly higher than ENS, but there’s no need for renewal, and the gas costs for any activity on the Solana blockchain are very low and fast.
You can link your Planet site's IPNS address to your .sol names, and it is accessible through the new sol.build gateway. You can also access it using the local gateway in Planet, which now fully supports .sol.
For example, this site is now also available on .sol as:
Pixel Planet is a delightful new avatar image set created by Ann. You can find it using the smile button on the toolbar and select one of them as your site avatar image.
Hope you will like it.
Web Client
We have been improving Planet's API server, which now powers a new web client that allows you to access Planet from any browser.
You can access this new web client by adding /app/ to your API server's IP address and port. For instance, if your API server's port is 8086, then the web client is accessible at:
In the previous version, you had to manually install the web client. This is no longer necessary; Planet now includes a built-in updater to automatically install and update the latest web client.
Planet Web Client on Window MakerPlanet Web Client on Elementary OS
Experimental Gateway for Farcaster Profile URL
furl.pro is an experimental IPFS gateway for the URL field in Farcaster profile.
If you set an IPNS or IPFS address as your Farcaster profile URL, you can access it via [your-fc-username].furl.pro. For example:
URL field is part of the Farcaster protocol, but it is currently not exposed in the Warpcast client. You can update the field using a third-party client like Recaster.
Other Fixes and Improvements
Fixed various RPC issues that could affect ENS resolution.
Implemented a button for manually triggering IPFS garbage collection.
Updating IPFS Configurations for ENS Resolution After Cloudflare Changes
展开 1449 字的全文
Cloudflare used to provide an array of free gateway services for Ethereum and IPFS. However, as of 2025, this is no longer the case, which may cause issues in software that shipped with those Cloudflare addresses.
For example, when IPFS (Kubo) resolves ENS (.eth domain names), the following Cloudflare address was used as the default resolver:
Since this address is now unavailable, some IPFS installations may no longer be able to resolve ENS.
To fix this, you can update your Kubo config file to use a working resolver provided by the excellent eth.limo project. Locate the DNS.Resolvers section in your Kubo config and update it to the following:
These are the settings I use on a Mac mini as a self-host server for the mobile client of Planet.
Mac mini
Several power-related settings need to be adjusted so the server can run 24x7 without sleeping. Search for "Energy" in System Settings and:
ON: Prevent automatic sleeping when the display is off
OFF: Put hard disk to sleep when possible
ON: Wake for network access
Tailscale
Tailscale is a wonderful software that can create a magical LAN for all your devices, no matter where they are.
I first learned about it on the blog of Brad Fitzpatrick, the creator of Memcached; he mentioned that he is leaving Google for a new startup named Tailscale.
After Tailscale is installed on your Mac mini and iPhone, you can use the Tailscale IP address (starts with 100) as the Planet server address.
Aggregation
Now, you can post content from your iPhone to your Mac mini. With Tailscale, your Mac mini is always reachable.
If you have another machine, like a laptop, running Planet, you can aggregate content from your Mac mini to your MacBook.
For example, here is a site I have on my Mac mini:
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 <kbd>⌘+D</kbd> quick post shortcut, makes it easy to set up your own microblog on Planet.
⌘+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:
We've added a new feature that lets you easily enable ETH donations on your site.
Right-click My Planet and select "Accept Donation"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.
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
Right-click My Planet and select "Template Settings" to customize the Sepia theme 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:
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 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
展开 3000 字的全文
This update introduces improvements to the WalletConnect feature, a new gateway for IPFS+ENS websites, a new avatar set, and several IPFS-related enhancements.
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:
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 <kbd>CMD</kbd>+<kbd>D</kbd> 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:
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.
It will generate a working site and publish it as an IPNS name that can be accessed from various gateways. For example:
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:
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.
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:
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.