-
Notifications
You must be signed in to change notification settings - Fork 0
Development Workflow
github-actions[bot] edited this page Jun 29, 2026
·
10 revisions
- change one page’s layout or copy: route
content.html - change one page’s server logic: route
index.php - change shared shell:
template.htmland probablytemplate_mobile.html - change shared interaction logic:
main.js - change shared look:
style.css - change persistence or permissions: relevant PHP code plus data contract
- decide whether the change is content, route logic, shared shell, frontend behavior, or persistence
- edit the smallest correct surface
- if data shape changes, update read path, write path, and defaults
- if auth/admin behavior changes, enforce it in PHP, not just JS
- if the feature adds routes, APIs, uploads, or private
/datafiles, check.nginx/fridg3.orgbefore assuming PHP can see or protect it - if the feature adds or changes reusable UI, add a representative sample to
/formatting - test the target page and at least one unrelated page that shares the shell
GitHub Actions runs three lint steps:
bash scripts/lint-php.shbash scripts/lint-javascript.shbash scripts/lint-css.sh
custom linting details:
- PHP uses
php -l - JavaScript uses
node --check - inline JS in
.htmland.phpfiles is syntax-checked too - CSS uses custom Node scripts that validate standalone CSS, inline
<style>, andstyle=""attributes
this setup is simple but honestly pretty smart for a repo with lots of inline markup/script/style.
- login/logout footer swap depends on exact HTML strings
-
main.jsis large and route-sensitive - feed and journal have different storage models
- bookmarks have both server and localStorage behavior
- some old code still references legacy bookmark storage patterns
- mobile view is browser-only via the
mobile_friendly_viewcookie -
.nginx/fridg3.orgis live nginx config source via symlink, so route changes need nginx sanity checks too - native JS
alert(),confirm(), andprompt()are not used; use the on-site popup helpers inmain.js - external links are guarded by the shared on-site popup unless a link explicitly opts out with
data-no-external-popup - reusable UI belongs on
/formatting; if it can reasonably appear on another page, give it a specimen there
before making a sweeping change, review:
- root files:
index.php,content.html,template.html,template_mobile.html,main.js,style.css - affected route directory
- related API endpoint
lib/render.php.nginx/fridg3.org- relevant workflow or script if the change affects deploy/lint/runtime ops
- trust code over docs when they conflict
- prefer boring safe edits over galaxy-brain rewrites
- if you touch shared DOM ids or route transitions, click around the site after
- if you touch
/dataschema, document it immediately so future-you doesn’t get jump-scared