The open-source website of The Alchemist Code, a software, app and AI studio in Puebla, Mexico.
A bilingual WordPress block theme with dark mode, a CSS-only 3D foldable phone, service pages generated from JSON, structured data for search, and the QA scripts we use before every release.
thealchemistcode.org · Español · GPL-2.0-or-later
- Bilingual by design. Spanish lives at the root and English under
/en/. Each page picks its view and language from two meta fields (tac_view,tac_lang), and the theme writeshreflang,langand the language switcher for you. - Dark mode without the flash. Dark is the default, the choice is remembered, and a tiny inline script sets the theme before the first paint.
- A foldable phone in pure CSS. One custom property (
--f, 0 = closed, 1 = open) drives the whole 3D fold. It opens with scroll on the home page and by itself on the PeakPlay and Flutter pages, and it’s tested in Chrome and WebKit. - Phone mockups without the clutter.
qa/phones.pycrops the status bar (time, signal, battery) from real screenshots and exports 1x and 2x WebP. - Service pages from data.
inc/data/servicios.jsonholds every text in both languages. The shared templateinc/views/_service.phprenders proof figures with their source, a visual block, FAQs andService+FAQPageschema. - Search-ready. Organization schema (
ProfessionalServicewith anOfferCatalog), breadcrumbs,noindexon thin archives and per-page social images. The All in One SEO integration lives ininc/seo.php. - Motion that respects people. Lenis smooth scroll, reveal-on-scroll, a live network topology, magnetic buttons and live clocks. Everything turns off with "reduce motion", and cursor effects are skipped on touch screens.
- Honest numbers. Every figure on the site comes with its source and date. That rule also applies to contributions.
tac-theme/alchemist-lab-next/ The theme (deployed to the server as themes/alchemist-lab)
inc/core.php Language, links between pages, phones, foldable, icons, [tac_page]
inc/chrome.php Top bar with live clocks, header and footer (dynamic blocks)
inc/seo.php hreflang, redirects, All in One SEO filters, schema
inc/contact.php Contact form (stored as private posts, emailed to the studio)
inc/views/*.php One file per page; files starting with _ are partials
inc/data/*.json Service pages, organization schema, app copy, proof
templates/, parts/ Block templates for the blog and the page shell
tac-uploads/tac-site/ Images the theme expects in wp-content/uploads/tac-site
qa/ Playwright checks, image builders and WP-CLI scripts
deploy-tac-preview.sh Upload to an inactive theme for preview
deploy-tac-produccion.sh Upload to the live theme, lint PHP and clear the cache
Requirements: WordPress 6.6+, PHP 8.0+ and WP-CLI. All in One SEO is optional; without it, the SEO filters simply don't run.
- Copy
tac-theme/alchemist-lab-nexttowp-content/themes/alchemist-laband activate Alchemist Lab. - Copy
tac-uploads/tac-sitetowp-content/uploads/tac-site. - Create the pages. Each brand page has
[tac_page]as its content, plus thetac_viewandtac_langmeta fields. These scripts create them for you:wp eval-file qa/crear-local.php --user=<admin> wp eval-file qa/crear-servicios.php --user=<admin>
- The app catalog (
wp-content/uploads/alchemist-apps/apps.json) is generated by a separate, private tool. Without it, the app marquee and the /apps page come up empty, and the rest of the site works.
The browser checks use playwright-core (loaded from ~/node_modules) with Chrome, plus WebKit for the foldable:
node qa/servicios.js <url> <name> [width] [height] [dark|light] # full-page shot + SEO audit (h1, title, schema, hreflang, broken images)
node qa/fold-engines.js <url> # foldable in Chrome and WebKit
node qa/perf.js <url> [movil] # LCP, CLS and page weight
node qa/reduced.js <url> <name> # with "reduce motion" on
php -l <file> # before every commitThe image builders (qa/phones.py, qa/og.py) need Python with Pillow and NumPy.
Copy .env.deploy.example to .env.deploy and fill in your server. That file is git-ignored, so server details never reach the repository. Then:
./deploy-tac-preview.sh # inactive theme alchemist-lab-next + new images (never overwrites)
./deploy-tac-produccion.sh # live theme alchemist-lab, PHP lint, LiteSpeed cache clearedIssues and pull requests are welcome, in English or Spanish. Please read CONTRIBUTING.md first, and report security problems privately as described in SECURITY.md. This project follows the Contributor Covenant.
The code is licensed under the GNU General Public License v2.0 or later (LICENSE), the same license as WordPress.
Not covered by that license:
- The name and logo of The Alchemist Code, our app names and icons, and the screenshots and images in
tac-uploads/. You're welcome to learn from them, but please don't use them to present another business. - Third-party components keep their own licenses: Plus Jakarta Sans and IBM Plex Mono (SIL Open Font License 1.1) and Lenis (MIT). See NOTICE.md.
El sitio de The Alchemist Code, estudio de software, apps e IA en Puebla, México, ahora en código abierto.
Es un tema de WordPress por bloques, bilingüe, con modo oscuro, un teléfono plegable en 3D hecho solo con CSS y páginas de servicio que se generan desde JSON. Incluye datos estructurados para Google y los scripts de QA que corremos antes de cada versión.
- Bilingüe: español en la raíz e inglés en
/en/. Cada página elige su vista e idioma con los metadatostac_viewytac_lang. - Modo oscuro por defecto, sin destello al cargar.
- Plegable en CSS: una sola variable (
--f) mueve todo el pliegue en 3D. Lo probamos en Chrome y en WebKit. - Páginas de servicio a partir de
inc/data/servicios.json, con cifras con fuente, preguntas frecuentes y schemaService+FAQPage. - Movimiento que respeta a las personas: todo se apaga con "reducir movimiento".
- Cifras honestas: cada número del sitio lleva su fuente y su fecha. Pedimos lo mismo en cada contribución.
Para instalarlo, revisarlo y desplegarlo, sigue los pasos de arriba. Los comandos son los mismos.
Contribuir: abre un issue o un pull request, en español o en inglés. Lee primero CONTRIBUTING.md. Los problemas de seguridad se reportan en privado (SECURITY.md).
Licencia: el código es GPL-2.0 o posterior, la misma licencia de WordPress. El nombre, el logo, los íconos de nuestras apps y las imágenes de tac-uploads/ no entran en esa licencia. Las fuentes (OFL 1.1) y Lenis (MIT) conservan la suya.