Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

bills+netlify: focus needs goal and add local subdomain routes

+105 -76
+93 -18
system/netlify.toml
··· 2343 2343 to = "/kidlisp.com/buy.html" 2344 2344 status = 200 2345 2345 force = false 2346 - [[redirects]] 2347 - from = "/buy.kidlisp.com" 2348 - to = "/kidlisp.com/buy.html" 2349 - status = 200 2350 - force = false 2351 - [[redirects]] 2352 - # PJ mode via kidlisp.com domain - kidlisp.com/pj/code (subdomain fallback) 2353 - from = "https://kidlisp.com/pj/*" 2354 - to = "/kidlisp.com/pj.html" 2355 - status = 200 2356 - force = true 2346 + [[redirects]] 2347 + from = "/buy.kidlisp.com" 2348 + to = "/kidlisp.com/buy.html" 2349 + status = 200 2350 + force = false 2351 + [[redirects]] 2352 + # bills.aesthetic.computer - local dev mirroring production subdomain 2353 + # Local dev: https://localhost:8888/bills.aesthetic.computer/ 2354 + from = "/bills.aesthetic.computer" 2355 + to = "/bills.aesthetic.computer/index.html" 2356 + status = 200 2357 + force = true 2358 + [[redirects]] 2359 + from = "/bills.aesthetic.computer/*" 2360 + to = "/bills.aesthetic.computer/:splat" 2361 + status = 200 2362 + force = false 2363 + [[redirects]] 2364 + # give.aesthetic.computer - local dev mirroring production subdomain 2365 + # Local dev: https://localhost:8888/give.aesthetic.computer/ 2366 + from = "/give.aesthetic.computer" 2367 + to = "/give.aesthetic.computer/index.html" 2368 + status = 200 2369 + force = true 2370 + [[redirects]] 2371 + from = "/give.aesthetic.computer/da" 2372 + to = "/give.aesthetic.computer/index.html?lang=da&currency=dkk" 2373 + status = 200 2374 + force = true 2375 + [[redirects]] 2376 + from = "/give.aesthetic.computer/es" 2377 + to = "/give.aesthetic.computer/index.html?lang=es&currency=usd" 2378 + status = 200 2379 + force = true 2380 + [[redirects]] 2381 + from = "/give.aesthetic.computer/de" 2382 + to = "/give.aesthetic.computer/index.html?lang=de&currency=eur" 2383 + status = 200 2384 + force = true 2385 + [[redirects]] 2386 + from = "/give.aesthetic.computer/cn" 2387 + to = "/give.aesthetic.computer/index.html?lang=zh&currency=usd" 2388 + status = 200 2389 + force = true 2390 + [[redirects]] 2391 + from = "/give.aesthetic.computer/api/give-portal" 2392 + to = "/.netlify/functions/give-portal" 2393 + status = 200 2394 + force = true 2395 + [[redirects]] 2396 + from = "/give.aesthetic.computer/api/give" 2397 + to = "/.netlify/functions/give" 2398 + status = 200 2399 + force = true 2400 + [[redirects]] 2401 + from = "/give.aesthetic.computer/api/billing" 2402 + to = "/.netlify/functions/billing" 2403 + status = 200 2404 + force = true 2405 + [[redirects]] 2406 + from = "/give.aesthetic.computer/*" 2407 + to = "/give.aesthetic.computer/:splat" 2408 + status = 200 2409 + force = false 2410 + [[redirects]] 2411 + # PJ mode via kidlisp.com domain - kidlisp.com/pj/code (subdomain fallback) 2412 + from = "https://kidlisp.com/pj/*" 2413 + to = "/kidlisp.com/pj.html" 2414 + status = 200 2415 + force = true 2357 2416 [[redirects]] 2358 2417 from = "https://www.kidlisp.com/pj/*" 2359 2418 to = "/kidlisp.com/pj.html" 2360 2419 status = 200 2361 2420 force = true 2362 - [[redirects]] 2363 - # SPA fallback for kidlisp.com routes - only for paths without file extensions 2364 - # force = false ensures static files (js, css, etc.) are served directly 2365 - from = "/kidlisp.com/*" 2366 - to = "/kidlisp.com/index.html" 2367 - status = 200 2368 - force = false 2421 + [[redirects]] 2422 + # SPA fallback for kidlisp.com routes - only for paths without file extensions 2423 + # force = false ensures static files (js, css, etc.) are served directly 2424 + from = "/kidlisp.com" 2425 + to = "/kidlisp.com/index.html" 2426 + status = 200 2427 + force = true 2428 + [[redirects]] 2429 + # Explicit editor entrypoint for local dev 2430 + from = "/kidlisp.com/editor" 2431 + to = "/kidlisp.com/index.html" 2432 + status = 200 2433 + force = true 2434 + [[redirects]] 2435 + from = "/kidlisp.com/editor/*" 2436 + to = "/kidlisp.com/index.html" 2437 + status = 200 2438 + force = true 2439 + [[redirects]] 2440 + from = "/kidlisp.com/*" 2441 + to = "/kidlisp.com/index.html" 2442 + status = 200 2443 + force = false 2369 2444 # DOLLHOUSE report page 2370 2445 [[redirects]] 2371 2446 from = "/dollhouse"
+12 -58
system/public/bills.aesthetic.computer/index.html
··· 619 619 <button class="bill-tab active" type="button" data-view-target="needs" role="tab" aria-selected="true">Needs</button> 620 620 </div> 621 621 622 - <!-- Alerts --> 623 - <div class="alerts"> 624 - <div class="alert"> 625 - <div class="alert-dot red"></div> 626 - <div class="alert-text"><strong>Netlify CRITICAL</strong> — billing period ends ~Mar 27. Fix payment NOW or aesthetic.computer goes down.</div> 627 - </div> 628 - <div class="alert"> 629 - <div class="alert-dot red"></div> 630 - <div class="alert-text"><strong>Shopify offline</strong> — shop.aesthetic.computer is down. Product pages, /api/shop, and carousel broken.</div> 631 - </div> 632 - <div class="alert"> 633 - <div class="alert-dot red"></div> 634 - <div class="alert-text"><strong>GitHub overdue</strong> — ~$500 unpaid. <a href="https://github.com/organizations/justanothersystem/billing/history">billing history</a></div> 635 - </div> 636 - <div class="alert"> 637 - <div class="alert-dot red"></div> 638 - <div class="alert-text"><strong>Claude Code Max locked out</strong> — $100 overdue and tooling access is blocked.</div> 639 - </div> 640 - <div class="alert alert-ok"> 641 - <div class="alert-dot green"></div> 642 - <div class="alert-text"><strong>DigitalOcean restored</strong> — paid and all droplets back online. Thanks Casey!</div> 643 - </div> 644 - </div> 645 - 646 - <!-- ═══════════════════════════════════════════════════ --> 647 - <!-- NET FLOW SUMMARY --> 648 - <!-- ═══════════════════════════════════════════════════ --> 649 - 650 - <div class="net-flow"> 651 - <div class="flow-block"> 652 - <div class="flow-label">income / mo</div> 653 - <div class="flow-value" id="flow-income" style="color: var(--green);" class="loading">...</div> 654 - </div> 655 - <div class="flow-op">-</div> 656 - <div class="flow-block"> 657 - <div class="flow-label">costs / mo</div> 658 - <div class="flow-value" style="color: var(--red);">~$151</div> 659 - </div> 660 - <div class="flow-op">=</div> 661 - <div class="flow-block"> 662 - <div class="flow-label">net / mo</div> 663 - <div class="flow-value" id="flow-net" style="color: var(--dim);" class="loading">...</div> 664 - </div> 665 - </div> 666 - 667 - <hr class="section-divider"> 668 - 669 622 <section class="bill-section" data-view="needs"> 670 623 <div class="needs-support"> 671 624 <a class="give-bumper" href="https://give.aesthetic.computer">give.aesthetic.computer</a> ··· 673 626 <iframe src="https://github.com/sponsors/whistlegraph/button" title="Sponsor whistlegraph" height="32" width="114" style="border: 0;"></iframe> 674 627 </div> 675 628 </div> 676 - 677 - <!-- Actions --> 678 - <h2>priority actions</h2> 679 629 680 630 <div class="goal-focus"> 681 631 <div class="goal-kicker">Current goal</div> ··· 749 699 750 700 <h3>completed</h3> 751 701 <div class="card"> 752 - <p><s><strong>Pay DigitalOcean $412.34</strong></s> — DONE (Thanks Casey!)</p> 702 + <p><s><strong>Pay DigitalOcean $412.34</strong></s> — DONE</p> 753 703 </div> 754 704 755 705 <h3>check in april</h3> ··· 1071 1021 const flowIncomeEl = document.getElementById('flow-income'); 1072 1022 const flowNetEl = document.getElementById('flow-net'); 1073 1023 1074 - flowIncomeEl.textContent = '~$' + Math.round(totalMonthlyIncome); 1075 - flowIncomeEl.classList.remove('loading'); 1024 + if (flowIncomeEl) { 1025 + flowIncomeEl.textContent = '~$' + Math.round(totalMonthlyIncome); 1026 + flowIncomeEl.classList.remove('loading'); 1027 + } 1076 1028 1077 - flowNetEl.textContent = (net >= 0 ? '+$' : '-$') + Math.abs(Math.round(net)); 1078 - flowNetEl.style.color = net >= 0 1079 - ? 'var(--green)' 1080 - : 'var(--red)'; 1081 - flowNetEl.classList.remove('loading'); 1029 + if (flowNetEl) { 1030 + flowNetEl.textContent = (net >= 0 ? '+$' : '-$') + Math.abs(Math.round(net)); 1031 + flowNetEl.style.color = net >= 0 1032 + ? 'var(--green)' 1033 + : 'var(--red)'; 1034 + flowNetEl.classList.remove('loading'); 1035 + } 1082 1036 } 1083 1037 1084 1038 (async function loadGives() {