Dev.to
Shopify App Store Ranking: What Day 14 of a New Compliance App Launch Actually Looks Like
We launched **GPSRReady on the Shopify App Store on June 8, 2026. It is a compliance app that helps Shopify merchants meet the EU General Product Safety Regulation (GPSR), which has been mandatory since December 2024 for non-food products sold in the EU. Two weeks later, here is the honest picture: organic rank above 96 on every relevant search term. The listing copy is solid. The app works. The installs are at zero. This post is about what the algorithm actually does to new apps — and what we are doing about it.** What GPSRReady does The EU General Product Safety Regulation entered into force in December 2024. For Shopify merchants selling non-food products to EU or UK consumers, it introduces mandatory product-level disclosures: the responsible person or importer, safety warnings, traceability information (batch number, serial, item number), and CE marking where applicable. GPSRReady surfaces these as native Shopify metafields and a theme block that auto-displays the right disclosures on every product page — no theme code injection, one-click uninstall. The EAA connection is close: both GPSR and the European Accessibility Act (EAA) are EU product and service regulations that enforce via the same channel — national market surveillance authorities — and both are often missed by non-EU merchants who think geography exempts them. They do not. If you sell into the EU above the microenterprise threshold, both regulations apply to your storefront. That is why we built both apps under the same umbrella. The ranking situation at day 14 On June 16 — day 8 post-launch — we ran a ranking check across the terms we are targeting. Results: gpsr : rank above 96 (not in the first 8 pages Shopify returns) gpsr compliance : rank above 96 product safety : rank above 96 eu representative : rank above 96 safety warnings : rank above 96 This is not a listing-copy problem. The description covers responsible person, importer, CE marking, traceability, labelling. The app title carries the
Romain
2026-06-21 20:35
👁 6
查看原文 →
Reddit r/programming
Finally - "Boing!" in 64 bytes
submitted by /u/Hell__Mood [link] [留言]
/u/Hell__Mood
2026-06-21 19:54
👁 4
查看原文 →
Reddit r/programming
OCaml 5.5.0 released
submitted by /u/Personal_Rough6944 [link] [留言]
/u/Personal_Rough6944
2026-06-21 18:57
👁 4
查看原文 →
Dev.to
1.5 Executor: How Results Come Back
By the time 1.4 ends, the planner has produced one PlannedStmt. Inside it is an execution tree built from Plan nodes, frozen into a form you can follow step by step, something like "go into the primary key index on users, fetch the one matching row, then output that whole row." But that is still only a blueprint. Reading actual pages off disk, picking out the rows that match the condition, handing results back to the caller: none of that has happened yet. The stage that takes that blueprint and produces actual rows is the executor. The difference between the planner and the executor is the difference between deciding and doing. The planner was the stage that weighed "which index, in what order, with what join method" by cost and chose . The executor takes the chosen approach and carries it out as is . There is nothing left to choose. It just runs the nodes baked into the plan tree and pulls rows out of them. To run it, the executor takes the Plan tree it received and turns it into a PlanState tree. The Plan tree is the static blueprint the planner made, and it does not change during execution. But to actually run, each node needs state that changes as execution proceeds: which row it is reading now, whether the hash table is fully built, what tuple it has buffered from a child. So when execution begins, a PlanState tree with the exact same shape as the Plan tree is created. The blueprint Plan tree is left untouched, and the running state lives in that PlanState tree instead. How the executor produces result rows is the heart of the stage. The executor does not build the entire result set at once and stack it up. Instead, it asks the topmost node of the tree for "the next row," and that request travels down the tree to the leaves. When a leaf scan node reads one row from a page and passes it up to its parent, that row climbs up one level at a time through joins and filters until it reaches the top. The top sends that single row to the caller (the client, or the targe
JoongHyuk Shin
2026-06-21 17:11
👁 9
查看原文 →