โข pages can be hosted anywhere
โข including DWeb
โข like "pointers" to your posts/pages
--- ## How ๐ท๏ธJS "crawls" your site
parses markdown "front matter" - date - title - tags - categories
`showdown` to convert to HTML
re-paints page
`localStorage` to save analyzed site, auto-updates daily (can force re-cache)
`lunr` for browser searching your posts/pages--- ## Why ๐ค - each post or page is a markdown file
โข markdown is primary, archive-friendly, format/theme agnostic
โข site formatting is _secondary_
--- ## Why ๐ค - all posts/pages can live in free `git` repo - github.com, gitlab.com, DWeb, self-hosted, etc.
โข no build step, no backend needed
- just a static file server
โข theme can be changed anytime (1 line change)
โข [_good_ google SEO](https://www.google.com/search?q=site%3Ablogtini.com+and)
โข google & more crawlers doing JS rendering
--- ## Why ๐ค - "View Source" is your original content -- no formatting, no clutterโข You control your content
โข posting to facebook, twitter, strava sucks
โข where is your content?
โข _what_ do you do with your GDPR?
โข your data should last forever
โข "roach proof" content-only format
--- ## Life is better client-side ๐ - No build step - No back-end - Just html + JS static files --- ### Life is better client-side ๐ ```js // parse frontmatter & (optional) `config.yml` import yml from 'https://esm.archive.org/js-yaml' // markdown-to-html import showdown from 'https://esm.archive.org/showdown' // code highlighting import hljs from 'https://esm.archive.org/highlightjs' // client-side search - like `solr` import lunr from 'https://esm.archive.org/lunr' // date/time hacking import dayjs from 'https://esm.archive.org/dayjs' // comments import './staticman.js' // sort hashmap by key import { krsort } from 'https://av.archive.org/js/util/strings.js' ``` --- ## Static Sites - _comments_ possible using `staticman`, etc. - `staticman` -- comments go into your site repository - _website search_ using `lunr` JS - can use `git` "hooks" to run small script: - keeps `sitemap.xml` and RSS feed up-to-date - minor comments management --- ## Try it! ๐ค Simple as: - create new file - index.html - contents:โโโ title: my neat post date: 2022-08-27 tags: โ blogging โ markdown comment: <script src="https://blogtini.com/js/blogtini.js" type="module" charset="utf-8"></script> โโโ Having fun *blogging* and hoping to write _more_ this year.--- # Preview ๐ - use any basic http file server, eg: ```sh python3 -m http.server ``` - OR open `index.html` in browser - [mac]: double click from `finder` folder; `open index.html` in `terminal` - copy url to `safari` (if not already) - dev tools, disable CORS restrictions & reload --- --- # Examples https://blogtini.com/ Site with all posts in same github repository --- # Examples https://traceypooh.github.io/dwebtini/ Site with posts served from multiple storage sites - github - IPFS - web3 - archive.org _(click post links and notice browser url chnages)_ --- # Examples https://ipfs.io/ipfs/QmWhoVkYm2SNoPEAK5ZmKFNtqVAietNsdzZrZYWK9KaXw9/ Site with all posts on IPFS --- # Publish โ๐ฝ - make https://github.com account - create and `git clone` a new repository - add your `index.html` file - add `.nojekyll` (empty) file - `git push` - [turn on GitHub Pages](https://docs.github.com/en/pages/quickstart) - https://[YOUR-GITHUB-USERNAME].github.io/[REPOSITORY-NAME]/ --- # Extending out - millions of sites linked together - save a list of friends & families for a merged activity "feed" - only needs to determine latest few posts from each site per sitemap/RSS - JS "crawl" them, parse their markdown, merge into decentralized feed --- # Future ๐ฎ - Aggregate all _your data/posts_ (twitter, facebook, etc.) to markdown posts on _your own_ site - Friends & Family aggregate sitemap/feed - Friends & Family client-side aggregate lunr search - comments go to correct specific site/place/person/entity --- # Future ๐ฎ Archive a site of many sites
Just one combo `sitemap.xml` away !
--- # Future ๐ฎ - https://www.w3.org/TR/activitypub - SocialWG _(Christine is here...)_ - publish new activity - notify followers in their chosen way --- # GDPR ๐ช๐บ - General Data Protection Regulation (EU)โข primary aim is to enhance individuals' control & rights over their personal data
"must be able to transfer personal data from one electronic processing system to and into another, without being prevented from doing so"
--- # Longevity ๐งโข If `WordPress` goes away, billions of people _disappear forever_
โข Average web page is gone in *three months*
โข Make your (digital) life a _Vampire_
โข Make it _Live Forever_
--- # Longevity ๐ช ``` โTell me, what is it you plan to do with your one wild and precious life?โ ``` [Mary Oliver - "The Summer Day"](https://wordsfortheyear.com/2015/06/21/the-summer-day-by-mary-oliver/) --- ## ๐๐ฝ Thank You! ๐๐ฝ [tracey.archive.org](https://tracey.archive.org) --- # Postscript ๐ธ --- --- --- --- --- --- --- # STORJ