- Create web pages in the simple, fast editor
- Share code that others can edit and modify
- Clone web pages with the bookmarklet (under active development)
- "Publish" web pages instantaneously
- Published links never stop working and
cannot be taken downfunction as long as this site is trusted and extant
- No dependencies
- No signups
- No tracking
- No hosting
- No cost
- No commitment
Read the Hacker News Discussion here
How it works
As hinted by its name, URL Pages works by storing the entire contents of a web page in the URL.
- The main page takes encoded data from the URL, decodes it into regular web page format, and displays it to the user
- The editor encodes user-created web page data as a link that can be shared
- The bookmarklet takes a page that already exists and encodes it as a link that can be shared
btoa functions in conjunction with its
decodeURIComponent functions. The encoded data is stored in the hash portion of the URL.
The obvious downside of URL Pages is that the links get very long very quickly. Luckily, some URL shorteners are able to accommodate fairly long URLs (shoutout to TinyUrl). In a strange way, this effectively means the link shortener is acting as the web host since it is responsible for storing the record of the web page's data. For simple web pages (and even simple page hierarchies), URL Pages have proven reasonably easy and effective to use, however it quickly becomes infeasible to use for large sites or large embedded images.
This just becomes a toy if I am the only one hosting a running version of this repository. If you believe it has real potential, clone it or fork your own version that addresses any non-fundamental problems you have with it, and host your own. The only way this actually becomes robust is if there is no single point of failure (i.e. my GitHub Pages)
Web pages in URLs are definitely not how things on the web were meant to be done, so don't be surprised if trying to use URL Pages causes unexpected issues. For example, sharing these links may cause chat programs, email clients, and unsuspecting individuals to get confused, raise exceptions, or complain. Likewise, copy-pasting these links may take a long time, if it works at all. I've also noticed my browser running a little hotter while I've got 5MB links in the URL bar.
Furthermore, URL Pages is very much a proof of concept, and should not be relied upon for anything consequential.
Read the code and understand it before using so that you understand any associated risks. The codebase was written with readers in-mind. Since the codebase is intentionally short, it can be read and digested fairly quickly if you have prior experience with client-side web applications.
The following examples were made and "published" using the provided code editor.
- My personal website
- Bookmarklet setup page
- A page with embedded images (no external image host)
The following examples were cloned from existing pages using the bookmarklet.
- My dad's food blog here
- The entire editor encoded in the URL here
- This GitHub project page here
- A cloned New York Times Article here
Currently, the bookmarklet is very much in-development (read: mostly doesn't work). Feel free to try it anyway by visiting the link below and following the instructions, or pasting the code below into a bookmark:
- Bookmarklet instruction page
The bookmarklet enables some of the most interesting and promising opportunities for URL Pages. Namely: cloning pages for archival purposes, sharing restricted information to bypass censorship, bypassing paywalls, storing entire pages in bookmarks, etc.
- Improve the bookmarklet -- it's mostly unusable as of right now
- Fix relative vs absolute linking
- Maybe try embedding images
- Import all
srced scripts directly
- Test to make sure that everything actually works for other browsers, operating systems, and devices
- Improve UI in general and editors beyond simple
textarea(perhaps integrate Ace or CodeMirror)
- Make the buttons better/more efficient (don't update
hrefon every key press)
- Figure out and publish max URL sizes for various URL shorteners
- Implement URL compression using Brotli for shorter URLs
- Add option to "publish" pages using base65536 as suggested here
- Allow users to sign/password protect published URLs
- Upload examples of multi-page sites (tree hierarchy)