English tag hub: same canonical tag strings as the Spanish site (Tags in front matter); this page’s chrome and blurbs are in English.

Posts tagged:  Web development

2023-09-14 03:47PM

Remaining tables for the time-tracking database

SQL for roles, projects, tasks, worked hours, and permission grants across DBA, admin, web, and anonymous roles.

Read more →
2023-09-13 12:31PM

Database setup for the time-tracking app

Create DBA/admin/web/anon roles, a control_tiempo schema, the users table, and grants aligned with PostgREST access patterns.

Read more →
2023-09-12 02:07PM

Designing the database for a time-tracking app

Conceptual tables for users, roles, projects, tasks, and worked hours—the backbone of the decoupled series.

Read more →
2023-09-06 11:21AM

Decoupled Architectures: Building a Time-Tracking App

Overview of a decoupled stack (Debian, PostgREST, Nginx, React, PostgreSQL) for a small-company time-tracking product.

Read more →
2023-09-10 08:05PM

JWT Authentication with PostgREST

Why JSON Web Tokens help secure a PostgREST API, and how roles, headers, and PostgreSQL functions fit together.

Read more →
2023-09-07 10:41AM

PostgREST in Practice: Building a Strong REST API

What a REST API is, why it helps, and how PostgREST exposes PostgreSQL as HTTP resources—with install and first SQL steps.

Read more →
2023-09-25 02:00PM

Create users in the time-tracking app with React

A CreateUser component sketch that posts JSON to your API to insert rows into control_tiempo.usuarios.

Read more →
2023-09-11 11:15AM

React primer: ES5, ES6, and how apps run

What React is, how ES5 and ES6 differ, common runtimes (browser vs Node), and a minimal Hello World in modern syntax.

Read more →
2023-09-19 12:27PM

Scaffolding a React frontend for role management

Create React App (or equivalent), project layout, and the screens you need to list and edit roles against the REST API.

Read more →
2023-09-24 11:28AM

Project management screens in React

ListProjects and EditProject examples—fetching projects, rendering cards, and submitting create/update payloads to the API.

Read more →
2023-09-20 11:44AM

Role management components in React

Example ListRoles and EditRole components using hooks, fetch, and minimal forms wired to your REST API.

Read more →
2023-09-18 02:07PM

Calling the REST API of the time-tracking app

REST shapes for users, roles, projects, tasks, and hours; OpenAPI documentation; curl examples.

Read more →
2026-04-22 01:10PM

Reviving Praderas (Day 1): technical audit and AI-agent improvement plan

Day 1 of the rebuild focused on a full audit of code, architecture, and content consistency to build a practical roadmap for iterative improvements.

Read more →
2026-05-01 12:30PM

Reviving Praderas (Day 10) — batch 2, EN hubs, and routing fixes (daily log)

Full Decoupled time tracking translation batch, /en/series and /en/categorias hub pages, plugin and template work, and a wall-clock vs localization time comparison (~35 min).

Read more →
2026-05-02 12:15PM

Reviving Praderas (Day 11) — batch 3 (security & privacy), EN tag labels, and English About

Shipped the security/privacy/geolocation cluster, English display labels for canonical tags, /en/tags and /en/about-picocms, and agent docs for remaining multilingual UI gaps—with wall-clock vs senior-time comparison.

Read more →
2026-05-03 12:17PM

Reviving Praderas (Day 12) — batch 4 (AI), EN archive, /en/blog language switcher, and the missing daily log

Wrap-up for work already merged to main—six AI post pairs, /en/archivo, paired blog listings for the language switcher—plus this PR that adds the ES/EN log pair that should have shipped with the same batch.

Read more →
2026-05-04 14:40PM

Reviving Praderas (Day 13) — batch 5 (productivity & collaboration) and wall-clock notes

Six ES→EN productivity guides (remote work, Etherpad, Redmine, Taskwarrior, Focalboard, Nextcloud+Deck), small Spanish fixes, and wall-clock vs no-AI order-of-magnitude.

Read more →
2026-05-05 20:20PM

Reviving Praderas (Day 14) — batches 6–8, ES→EN backlog closure, and wall clock

Twenty new pairs (mobile, crypto, general long tail), an updated Debian link in the Decoupled time-tracking series, and ~9.5 min wall clock for the translation block vs a senior counterfactual band.

Read more →
2026-05-06 09:15AM

Reviving Praderas (Day 15) — multilingual UI slice: EN search and shared footer

Scheduled UI backlog closure (`/en/search`, language-safe search results, and non-post footer i18n) with measured wall clock (~1m40s) and a senior-only baseline comparison.

Read more →
2026-05-10 10:30AM

Reviving Praderas (Day 16) — per-language sitemaps and discovery (ES/EN index)

Ship `sitemap.xml` as a sitemap index pointing to `sitemap-es.xml` and `sitemap-en.xml`, filtered using the same language rule as the rest of the site (`Multilingual::inferLang`), consistent with hreflang and the multilingual UI backlog.

Read more →
2026-05-10 07:45PM

Reviving Praderas (Day 17) — cover images: ComfyUI plan + SDXL template

Planning session: alternatives to random placeholders, local ComfyUI validation (`/prompt`, SDXL ubersimple), JSON template under `scripts/comfyui/`, and a checklist to wire hero images into Pico without abandoning Markdown-first authoring.

Read more →
2026-05-11 10:05AM

Reviving Praderas (Day 18) — `Image:` hero, Open Graph, responsive layout (Picsum fallback)

Optional cover from front matter, social meta, listing cards with `Image:` thumbnail or stable Picsum, CSS for in-body images and hero; ComfyUI production-ready for generation; wall-clock log.

Read more →
2026-05-12 11:15AM

Reviving Praderas (Day 19) — `export_cover.py` patches `Image:` in Markdown

New --patch-markdown (and --skip-comfy) on the ComfyUI export script; dedicated Day 19 PNG; checklist row 7 update in agent docs; wall-clock log.

Read more →
2026-04-23 10:00AM

Reviving Praderas (Day 2) — Phase 1: fixing listing, search, and pagination (with an AI agent)

Phase 1 delivered a clean listing template, unified search behavior, restored pagination, and a meaningful sidebar recent-posts block.

Read more →
2026-05-14 05:30PM

Reviving Praderas (Day 21) — `export_cover.py` and the `Translation_Key` flag

New `--translation-key` flag patches `Image:` on the ES/EN pair without listing two paths; mutually exclusive with `--patch-markdown`; dedicated Comfy cover (seed 21052026).

Read more →
2026-05-19 10:00PM

Reviving Praderas (Day 22) — Phase 5 UI closure (vocabulary) and Tier A retrofit (Days 2–3)

Night session log: merged multilingual vocabulary PR (`tag_vocabulary.json`, EN pagination, audit) plus two Tier A Comfy hero WebPs (Phases 1 and 2) via `--translation-key`.

Read more →
2026-05-20 10:00AM

Reviving Praderas (Day 23) — Tier A retrofit (Days 4–5) and Phase 6 JSON kickoff

Two ES/EN pairs with Comfy heroes (Phase 3 metadata and visual polish) plus plugin 70-BlogJson for /blog.json and siblings, documented in .agents/blog-json-api.md.

Read more →
2026-05-24 10:00AM

Reviving Praderas (Day 24) — Tier A retrofit (Days 8–9) and Phase 6 v1.1 (search.json)

WebP heroes for the Phase 5 multilingual announcement and batch migration plan (Days 8–9), plus search.json and agent-oriented listing fields without duplicating HTML search ranking.

Read more →
2026-05-25 14:00PM

Reviving Praderas (Day 25) — Tier A complete (Days 10–16), Tuqan PR

Sprint of seven WebP heroes to finish the Tier A queue, public JSON agent discovery page (Phase 6 v1.2), and Tuqan article on PHP 8 Docker-only migration.

Read more →
2026-04-24 09:00AM

Reviving Praderas (Day 3) — Phase 2: navigation, categories, breadcrumbs, and related posts

Phase 2 moved the site from a flat page list to intentional navigation with category mapping, breadcrumbs, related posts by tag, and chronological previous/next links.

Read more →
2026-04-25 10:40AM

Reviving Praderas (Day 4) — Phase 3: metadata, taxonomy, and front matter lint

Phase 3 focused on editorial consistency by completing missing tags, normalizing date formats, and adding a front matter audit script for future safety.

Read more →
2026-04-26 10:00AM

Reviving Praderas (Day 5) — visual polish: spacing, readability, and brand tone without new frameworks

Day 5 focused on visual polish and readability, followed by consultant feedback, iterative UI refinements, and transparent timing notes.

Read more →
2026-04-27 10:50AM

Reviving Praderas (Day 6) — series and collections: chapter-based navigation without losing context

We added first-class series support in Pico, including menu integration, sidebar series navigation, and backfilling the historical time-control series.

Read more →
2026-04-28 11:30AM

Reviving Praderas (Day 7) — Phase 4: SEO, social metadata, and date archive

Phase 4 unified canonical and social metadata patterns, improved Spanish search stopwords, and added a date-based archive page linked from the sidebar.

Read more →
2026-04-28 12:00PM

Reviving Praderas (Day 8) — Phase 5: ES/EN content model, translation pairs, and hreflang

Phase 5 on this repo—English posts under blog/en, optional en/ pages, Lang and Translation_Key metadata, Multilingual plugin, language switcher, hreflang and og:locale, scoped pagination and neighbors, English listing at /en/blog.

Read more →
2026-04-30 11:55AM

Reviving Praderas (Day 9) — translation migration: batch plan, completed batch 1, and time estimates

Eight-batch ES→EN migration plan, plain-language explanation of AI “context,” a simple timeline, and Batch 1 for Reviving Praderas with real wall-clock time (~20 min) vs traditional localization.

Read more →
2026-06-10

Tuqan — 9.2: Qwen + opencode Delivered the Stage (The TODOs Helped) but Failed to Hold the Standards

Even with a fine-grained, prioritized backlog (MIGRATION-TODOS.md from stage 9.0) and a detailed stage plan, the local model + opencode managed to deliver functional Proveedores code, but failed to maintain the project's conventions: naming, use of catalog bases, .agents/ updates, legacy routes, and the verification ritual. Lessons on the value of structured TODOs versus accumulated standards discipline.

Read more →
2026-06-04 10:00PM

Tuqan — Agentic Lessons (13): 100% Autonomous Work Without Babysitting — Cron, Agentic Loops, and Long-Term Strategy

Introspective reflection on executing a full leg of work (Stage 8.7: completing Personalizacion modules, enhancements to matrix and editing, verification) 100% on my own, based only on the user's high-level request. How the initial request could easily be a cron triggering the next leg, using reviewer/Q&A sub-agents, todo tracking, and verification scripts to close the loop without constant human intervention. Planning for detecting gaps before interactive testing and longer-term strategy.

Read more →
2026-06-01 09:00PM

Tuqan — Agentic Operation Lessons (7): 2407 Lines, Collapsible Sidebar, First Real Module, and Two Debugging Patterns We Keep Repeating

We imported the entire real legacy menu (~106 items + 212 labels), diagnosed its real scale live in the container, chose a left collapsible sidebar when horizontal proved it couldn’t scale, delivered the first real module (Usuarios: listing + forms), and —most importantly— documented two recurring agent anti-patterns in public: blaming opcache with zero proof, and getting stuck on Phroute route syntax. Hard lessons, excellent pace.

Read more →
2026-05-29 09:00PM

Tuqan — Agentic Operation Lessons (5): Modernizing Composer Dependencies (No Leaps of Faith)

We executed a major coordinated round of composer dependency modernization inside the stepping stone phase. We upgraded Monolog to 2.x, Phroute to 2.2, Former to 5.2, jasny/auth to v2, and set a conservative minimum floor at Illuminate 8 (instead of blindly following Former's ^13 promise). We faced and solved the real compatibility problems between Former 5 and modern Illuminate. All of it under the same Test + Fix Loop discipline and zero tolerance for Xdebug noise.

Read more →
2026-05-28 12:00PM

Tuqan — Agentic Operation Lessons (Part 3): When Patching Stops Being a Shortcut

The agent applied the compatibility patch that had worked successfully before. But the user pointed out that this pattern would repeat with every old library in the project. This led to a real change in the migration plan: treating the modernization of core functionalities as a required stepping stone before moving forward.

Read more →
2026-05-30 10:00PM

Tuqan — Agentic Operation Lessons (6): Red Herrings, Technical Debt, and the Menu That Refused to Die

We spent an hour hunting a session bug while the real technical debt (2007-era menu generator hardcoding localhost connections) was laughing at us. Real lessons on red herrings, human-AI collaboration, and why the “correct” solution is sometimes worse than a pragmatic one.

Read more →
2026-05-27 02:30PM

Tuqan — Agentic Operation Lessons (Part 2): The Missing Commit

The agent had already fixed the failing test on its local machine. The implementation was clean. But the updated test file was never added to the commit that went to the PR. The human reviewer had to spend their time reporting the exact failure. A concrete story of why "Test + Fix Loop" discipline is not overhead — it is the difference between an AI that ships trustworthy increments and one that quietly turns the human into its debugger.

Read more →
2026-05-27 10:00AM

Tuqan — Agentic Operation Lessons: Short-Circuits vs Root Causes

An honest reflection on the iteration problems we encountered while working with AI agents on the Tuqan modernization, the high cost of hiding symptoms instead of fixing root causes, and the explicit rules we are now enforcing to avoid repeating the same mistakes.

Read more →
2026-05-29 10:30AM

Tuqan — Agentic Operation Lessons (4): The First Real Step of the Stepping Stone

We executed the first concrete slice of the Core Functionality Modernization phase. We upgraded Twig from 1.44 to 3.27, faced the real-world blocker that ancient libraries create, and discovered that even the landing page was still falling into the cloud 404 because of legacy menu code. We added the exact defensive fallback that was requested. All under the same Test + Fix Loop discipline and zero Xdebug noise.

Read more →
2026-06-03 11:00PM

Tuqan — Agentic Lessons (12): Automating the Agentic Loop with Tests for a Complete Implement-Test-Push-Merge Cycle

Turning the documented verification strategy (checklists as task source, verify scripts, DB asserts, CI integration) into a fully agentic loop: the agent picks tasks from the list, implements, runs automated tests, pushes and proposes merges... rinse and repeat until the list is finished. Possibly adding a second Q&A reviewer agent to avoid messing things up.

Read more →
2026-06-07

Tuqan — Local models vs frontier: why Qwen3 + opencode failed at an "easy" task in a complex environment

A real-world experiment with a "state of the art" local coding/agentic model (Qwen3.6 35B via opencode) trying to continue Tuqan's modernization work. The outcome: branch "lamigo/opencode_mess", detached HEAD, entire Docker and scripts trees appearing as untracked, page classes duplicated/moved, local PHP test attempts interpreting "php: command not found" as code test failures, chaotic resets and unstashes that pulled files from master into the wrong tree. Lessons on why current local models still fail in environments with strict contracts, while frontier models + disciplined tooling can diagnose and clean up.

Read more →
2026-05-06 10:00PM

Tuqan Phase 0 — Strategic foundation, audit, and initial roadmap

Kicking off the agentic modernization of Tuqan with living documentation, an audit plan, and a prioritized roadmap. First post in the Tuqan series.

Read more →
2026-05-25 11:00AM

Tuqan — PHP 8 migration plan, Docker-only dev, and test harness

Why upgrading a PHP 5.1 app with PEAR and later patches is not “bump the version and ship”, and what we decided after merging the executable plan in Tuqan (PR

Read more →
2026-05-26 10:00AM

Tuqan — Stage 3: Configuration Externalization and Safer Queries

How in Stage 3 of the Tuqan modernization we started removing hardcoded credentials and replacing string-concatenated SQL queries with prepared statements on the most critical paths of the application.

Read more →
2026-06-02 10:00PM

Tuqan — Agentic Lessons (11): Aplicación Fully Navigable (Profiles, Companies, Menus, Languages, and Permissions)

Closing the vertical slice for the Aplicación section under Administration. Full Perfiles, real Empresas, and modern pages for Menus, Idiomas, and Permisos. The entire submenu is now navigable before we dive into POST handling.

Read more →