-
Notifications
You must be signed in to change notification settings - Fork 0
Development Workflow
github-actions[bot] edited this page Aug 10, 2026
·
10 revisions
- Change one page’s layout or copy: route
content.html - Change one page’s server logic: route
index.php - Change one page’s client behavior: route-local
{page-name}.js, included from that page’scontent.html - Change shared shell:
template.htmland probablytemplate_mobile.html - Change shared interaction logic:
main.jsfor bootstrap/orchestration, or the relevant/js/*.jsshared system file - 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/fridge.devbefore assuming PHP can see or protect it - If the feature adds or changes reusable UI, add a representative sample to
/formatting - If any Markdown formatting changes, update the reference pages at
/formatting/markdownand/formatting/markdown/feedto match - 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
- Account sessions use the shared-domain
fridg3_sessioncookie on production hosts; keep logout clearing both shared-domain and legacy host-only cookies -
main.jsis route-sensitive; move clearly page-owned code into route-local scripts, and larger shared systems into/js/*.js - 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/fridge.devis 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/fridge.dev- 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