Build and host decentralized websites from your Mac
WorldWideWeb is an HTTP server from The Iconfactory. Craig Hockenberry made the app because it is becoming harder and harder to start a simple Web server as Apple was removing open source components like the Apache HTTPd in recent years.
The name, WorldWideWeb, is a homage to the world's first HTTP server, which was running on Tim Berners-Lee's NeXT computer. You can see that computer on WorldWideWeb's help page.
The app works: select a folder, and WorldWideWeb starts listening on port 8080 to serve the website inside the folder. Then you can visit that website by navigating to localhost:8080 in a browser.
In the recently released 0.8.2 update for Planet, we added support for WorldWideWeb. Click on one of your Planets, and you will find a new menu item Develop -> Open in WorldWideWeb. You can use WorldWideWeb to serve the locally built static site.
If you are developing your own template for Planet, now it is much easier to see the changes. After making any changes, click Develop -> Rebuild then you can see the updated site on localhost:8080.
WorldWideWeb is available on the Mac App Store for free:
This is the second feature update for Planet, version 0.8.0, released on August 13, 2022. The code for this update comes from the following contributors.
The following link is the changes between version 0.7.0 and 0.8.0.
https://github.com/Planetable/Planet/compare/release-0.7.0...release-0.8.0
Here are the new features and improvements in this release.
Plausible.io Integration
Plausible.io is an open source web traffic analytics platform. You can now enter your Plausible.io domain and API key in the info panel of Planet. And a new button will show you the traffic stats of your Planet.
For example, the following link is traffic data for planetable.eth.
https://plausible.io/planetable.eth.limo
Another example is from the official Plausible.io website:
https://plausible.io/plausible.io
Plausible.io is privacy focused. The platform does not collect personal information and does not even use cookies, so there is no need for a cookie banner to pop up on pages that use Plausible.io.
We will add support for self-hosted versions of Plausible in a future update.
Podcast and Attachment Support
You can now attach an audio file when creating content, or drag and drop the audio file into the writing window. An audio player will then appear on the page when you publish.
When you access Planets with audio in Planet App after 0.8.0, you will see a headphone button in the toolbar, and clicking it will launch a global audio player to play the audio content. The playback will not stop when you click between posts.
We will continue to optimize this global audio player in future releases.
If you drag and drop other formats such as PDF or DMG into the writing window, they will be included as attachments. Visitors can click the attachment icon in the toolbar to download them.
Improvements to the Built-in Templates
Planet currently has two built-in templates.
In this update, we have implemented these improvements to both templates.
- Support for audio content
- Link to the home page from the top area of posts
- CSS improvements for video and image content
- CSS improvements for iOS safe-area
- Dark Mode support for the homepage of Plain
Feature parity of templates is an important goal of Planet. All of the built-in templates are open source, just like the Planet App, so if you find any issues with the templates, you can send us feedback via GitHub Issues or even PR:
Later this month, we will document how to build your custom templates.
For demoing what the template engine is capable of, here is a blog about retro gaming with the 8-bit template:
Built-in go-ipfs Version Update
Planet's built-in go-ipfs has been upgraded from 0.12 to 0.14. Starting with 0.13, Protocol Labs renamed the go-ipfs project to kubo, so when we need to mention go-ipfs in the documentation, we will use the new name kubo.
During the first startup after kubo update, there will be a migration for the repo. If your local IPFS repo has a large number of files, then this migration may take some time, just let it run for a while.
We will provide more GUI management features for the local IPFS repo in a future release.
RSS Reader
Actually, the initial release of Planet came with RSS capabilities. However, we didn't announce the feature because we felt some details were not good enough.
In this 0.8.0 update, we have improved and tested many aspects of the RSS feature, so now we would like to invite you to try it out.
Here are some interesting RSS feeds.
- Low Tech Magazine: A site powered entirely by solar power, so it may be down on cloudy days.
- Deep Look channel on YouTube: Amazing 4K videos of interesting creatures!
Many sites that update their content regularly are likely to have RSS feeds. An example is YouTube Channels. You can try putting the URL of a website into Follow Planet, and if an RSS feed does exist on the website, then you can subscribe with Planet.
If you encounter problems with RSS feeds, feel free to send feedback to the following community channels.
- GitHub Discussions for Planet
Local Notifications
We have further improved Local Notifications in this update. When you receive a notification for content updates from a Planet, click on the Notification to take you to the article.
Misc Improvements
- The Markdown rendering engine has been replaced so that Planet now outputs GitHub Flavored Markdown, and that also cleared some crashes with Ink.
- Now, when viewing posts, if you try downloading anything from the page, it works. Previously it did not work because we did not implement
WKDownloadDelegate
in web views. - Improved support for DNSLink. Note that if you want to follow a site via DNSLink, you need to specify the planet protocol in the Follow Planet window, e.g., enter the domain name like this:
planet://zu1k.com
- The TTL for IPNS records published from Planet has been adjusted from 1 week to 1 year. However, the lifetime of IPNS records depends on many factors. So, if you want to keep your IPNS records active, we recommend running Planet at least once a week. In an upcoming blog post, we will go into more details about this complex topic, IPNS and Pinning.
Those are the main new features and improvements in the 0.8.0 update. If you encounter any issues, you can give feedback to the developers or seek community assistance from these channels.
- Discussions for Planet
If you are pretty sure you have encountered a bug, you can tell us how to reproduce it via GitHub Issues, and we'll investigate and fix it as soon as possible.
- Issues for Planet
This is the first feature update since we released the app in June 2022.
Video Support
Now you can attach a video to your post. Each post can have at most one video, then the post title and content serve as the title and description of the video. Currently, the app will not recompress the video, so please be mindful of the bitrate of the video you choose to share, as a higher bitrate would need more time to download.
This post has one video! And if you view it with an HDR-capable screen like the ones in the new 14 and 16-inch MBP, you will notice it is an HDR video.
A New Data Layer
We rewrote the components of how the app handles data. It solved some issues that occurred with the initial version, and it also made a lot of views faster. Previously, you will probably notice some slowness when switching to the Unread view. Now that slowness is gone.
From this version, the app starts to send notifications for the new content from the planets you followed.
Improved ENS Support
Now the app can load any ENS that has a working content hash. In the initial version, it only supported ENS with a feed.
If the ENS you follow has an NFT avatar, it will show in the app sidebar!
A faster gateway is used when you try to open ENS links with an external browser without ENS support, like vanilla Safari or Chrome! Here is a comparison. Which one is faster for you?
- Before: https://planetable.eth.link
- After: https://planetable.eth.limo
Planet is a native macOS app for building, publishing, and following websites and blogs on IPFS + ENS. With those decentralized Internet technologies, you have total control of your content, and your fans follow you directly.
Planet uses IPFS as the solution for distributing content. In IPFS, each piece of content has its own unique CID. So if you add a whole directory for publishing to IPFS, each unique file in the directory will have its own unique CID, and the top-level directory has its own CID too.
When publishing, you are linking the top-level CID to your IPNS so that when others try to access the IPNS, they will get that CID. In Planet's case, it is the CID of a directory that contains the website you built with Planet.
Have you ever wondered whether setting up a website with an ENS is possible? The answer is yes, and you can set your website to the Content Hash field like setting an A or CNAME for a traditional domain name.
The standard is EIP-1577, and this Content Hash field can accept a few possible values. For example, IPFS -- another decentralized content distribution technology. And vitalik.eth website is already running on IPFS.
After you created a website with Planet, right-click on the item in the sidebar, and choose "Copy IPNS," then you will get something that looks like this in pasteboard:
k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a
Then you can put that IPNS into your ENS ContentHash like this:
Make sure ipns://
is added before that string.
Then your website is linked to your ENS. Congrats! Now you have a decentralized website running on ENS + IPFS!
Planet is a free and open-source software for publishing and following web content, and it does not require a centralized server or service. It uses IPFS to achieve peer-to-peer content distribution. Furthermore, you can link your content to an Ethereum Name (.eth) so that others can follow you via Planet by the .eth name. Since both IPFS and ENS are decentralized, you can build your websites or follow others, all in a decentralized manner.