Manifesting into reality...
INS:
- pocket notebooks and mechanical pencils
- anti-manifestos
- self-hosting where possible
- copyparty
- repair and restore old hardware
- radio
- USB 2.0 flash drives
- trees
- linux on vapes
- compasses
- family & friends
- tech with wires and buttons
- open source
OUTS:
- the word "googling" / algorthmic search in general
- mechanical keyboards
- buying brand new if second hand is serviceable
- discord invites
- AI / Linda McMahon's A1
- online
- cloudflare
- big tech™
- open source
Author: Ana Meisel & Adam Jakab
Website workshop notes
Monday 30th of March at SET Social
1. Intro to source hut
Sourcehut is a free and open-source software development platform. It's an alternative to GitHub - it's more minimal, follows the Unix philosophy and has an email-driven workflow instead of pull requests. The platform is composed of several key services:
- git.sr.ht: Git and Mercurial repository hosting.
- builds.sr.ht: A powerful continuous integration (CI) service.
- lists.sr.ht: Mailing lists for discussion and patch review.
- todo.sr.ht: A lightweight, email-driven issue tracker.
- pages.sr.ht: Static site hosting.
Reference: https://laoutaris.org/blog/sourcehut/
2. Intro to the website and structure
Our website is built using kiki as the renderer (tomotama.com/kiki) - "a tiny homepage construction kit with a small footprint". It grabs markup files and renders them as html pages using php. The current structure of the site is:
perma-website/
│
├── files/ <- logo, favicon, assets
│ ├── favicon/
│ ├── images/
│ └── pcm-flower.png
│
├── layout/ <- markup files for template pages
│ ├── 404.md
│ ├── 503.md
│ ├── delete.md
│ ├── dynamic.md
│ ├── error.md
│ ├── footer.md
│ ├── generate.md
│ ├── gophermap_template.md
│ └── page_template.md
│
├── library/
│ ├── build.php <- functions used for building html pages
│ ├── gopher.php <- converts gopher requests into a browsable instances
│ ├── interpreter.php <- interpreter used for markup content
│ ├── page.php <- generates a page
│ ├── rss.php <- generates rss
│ ├── static.php <- static site generation
│ └── utils.php <- more content rendering functions
│
├── menus/
│ └── navmenu.md <- menu content
│
├── pages/ <- where our markup posts live!
│ ├── 07-07-2025.md
│ ├── 10-11-2025.md
│ ├── 30-06-2025.md
│ ├── about.md
│ └── help/ <- documentation about kiki
│ ├── get_started.md
│ ├── programming.md
│ ├── start.md
│ ├── themes.md
│ └── user_guide.md
│
├── posts/ <- generated html files live in here (don't touch)
│
├── themes/ <- css files
│ └── onecolumn/
│ ├── page_layout.php
│ ├── style.css
│ └── WebPlus_HP_150_re.woff
│
├── .gitignore <- files ignored by git
├── file_id.diz <- shareware discription
├── index.html <- generated html (don't touch)
├── index.php <- loads page
├── install.txt <- kiki installation guide
├── LICENSE
├── README.md <- our readme
├── rss.xml
├── settings.php <- define site base url, markup interpreter, theme, etc
└── site.tar.gz <- tarball that holds our site for publishing
3. Cloning the repo
git clone https://git.sr.ht/~anmeisel/perma-website
4. Installing and running the website
a. install php:
on mac:
brew install php
# mbstring is typically included by default. If not, run:
sudo port install php php-mbstring
on linux:
sudo apt-get install php php-mbstring
b. run locally:
php -S localhost:8000 visit: localhost:8000/posts/home.html
c. if you want to view any changes you are making to the site you have to tell kiki that you are running the site locally:
change $site_base_url to http://localhost:8000/ in settings.php
d. generate your static pages using php index.php
5. Add your name to the attendance list
Open the pages/website-workshop.md, add your name to the bottom of the list, and save the file. (Make sure to add a new line that starts with the - symbol)
6. Optional: if you want to publish a post, you can create or edit your first markdown file
Make a new file in pages/
The name of the file should be that of your slug for consistency: [slug-title].md
Make sure you have your ((header)), meta information (title, published, etc) and ((content)). Use other .md files in the pages folder for reference.
Run php index.php to generate your html files and refresh the local site to view.
7. Commit your changes
git add pages/website-workshop.
git commit -m "Adam signed the website workshop attendance!"
8. Setup your SMTP credentials
If you don't already have SMTP credentials ready you can find guidance on how to get them for your provider on https://git-send-email.io
Open git configuration file for the repo in .git/config. Add the following section to it with your credentials.
[sendemail]
smtpserver = mail.example.org
smtpuser = you@example.org
smtpencryption = ssl
smtpserverport = 465
9. Submit your last commit for review
The following command will generate a patch for the last commit and send it to the mailing list.
git send-email --to="~anmeisel/public-inbox@lists.sr.ht" HEAD^
If all goes well you should see your patch land in the inbox! https://lists.sr.ht/~anmeisel/public-inbox
Futher dicussion
- What can we use the website for?
- How can we make it more accessible? Improve the readme?
Attendance
- Adam J
