HLPLabs.
HLP Labs is a Bulgarian online shop for research peptides. I designed and built the storefront, the reference library that sits beside it, the admin panel the team runs both from, and the SEO system that grew it. The day Google indexed the rewritten pages, the site matched its previous month of organic reach in 24 hours.

- 24h
- to match a full month of organic reach, counted from the day Google indexed the rewritten pages.
- #1
- for many peptide queries, above the largest shops in the Bulgarian market.
- 7
- parts to the SEO system, from reading the studies to watching the rankings. All of it runs without a person.
- 0
- unsourced claims on Instagram. Every finding on a slide stays linked to the study it came from.
A shop with a library attached.
Nobody buys a research peptide on impulse. Someone looking at Retatrutide wants to know the mechanism, how to store it and how to dilute it before the add-to-cart button matters. So the brief was a storefront and a reference library, built as one site.
The public site has a catalog sorted by research area, an encyclopedia, a blog of how-to guides, an FAQ, a dilution calculator, an AI assistant, search, accounts and order history. Behind it is an admin panel for the catalog and all of that content, and two AI systems: one that keeps the pages ranking, one that turns studies into Instagram posts. Everything is in Bulgarian, because that is where the customers are.
I designed the screens and built the system. That includes the data model behind a product page, which has to carry a CAS number, a formula, molecular weight, purity, sizes and price, and then a long article about the mechanism underneath.
A month of reach in a day.
Before the rewrite, HLP Labs collected a month of organic visits in a month. The day Google indexed the new pages, it collected the same number in 24 hours. For many peptide queries the site now sits at position one, above the biggest shops in the Bulgarian market.
The pages kept their shape. What changed is what is on them. Every product page now carries copy backed by the studies, a title and description written for the query people actually type, an FAQ, structured data with the live price and stock, and internal links to the encyclopedia entry and the guide that answer the next question.
None of that was done by hand. I built an SEO system in seven parts that does it, and it keeps going after the page is live: rankings, indexed pages and organic traffic are tracked, so a page that slips gets sent back through the loop.
- Research and contentReads the studies and the existing product information, finds the topics nobody has covered, and rewrites product copy with evidence behind each claim.
- KeywordsMaps search terms to products and stops two pages from competing for the same term.
- On-pageWrites page titles, meta descriptions, headings, FAQs, image text and internal links.
- TechnicalManages canonical URLs, sitemap entries, indexability and server-rendered content, so Google reads the same page a customer does.
- Structured dataGenerates Product, Offer or AggregateOffer schema with the correct price, currency, availability and variants.
- ValidationChecks the rendered HTML and the JSON-LD for errors before the page is submitted for reindexing.
- MonitoringTracks rankings, indexed pages and organic traffic, and flags weak pages so they can be updated again.

Shop, Resources, then the spec.
Shop and Resources. The shop menu opens into research areas like weight regulation, longevity and recovery, so you can start from a goal without knowing a product name.
Every product page puts the label, sizes and price first. The article on the mechanism starts underneath. You can buy in two clicks or read for ten minutes.
The shop opens in a dark theme. A sun icon in the header switches to light. The captures on this page are the dark version, which is how most visitors first see it.


Laid out for one hand.
On a phone the headline and the vial each get the full width, and the two buttons sit where a thumb rests. The catalog navigation folds into the menu. Same page, same content, arranged for one hand.

The order button is a short film.
Confirm the order and a parcel slides into a truck. The doors close, the road starts moving and the truck drives off. All of it happens inside the button, while the order summary above stays still.
It is one sequence of connected states, so the parcel sitting in the idle button is the same parcel that ends up in the trailer. Each movement starts where the previous one stopped.
Video could not load. Open the recording.
A second tap during the animation is ignored, timers are cleared if the screen unmounts, and with reduced motion the button shows a plain confirmation state.
Video could not load. Open the recording.
Every product links to an answer.
A product page raises questions the buy box cannot settle. What does this peptide do? How do I store it? How much do I dilute it? The encyclopedia, the guides, the calculator and the assistant each answer one kind of question, and each links back to the catalog.

A study goes in. A carousel comes out.
The same evidence feeds Instagram. The content flow takes scientific studies and product research as input, pulls out the findings worth sharing, and turns them into a carousel, a caption and a set of source notes.
Each claim stays connected to the study it came from, all the way to the finished slide. For a shop whose customers read papers, that is the rule that makes the posts worth anything: nothing on a slide is unsourced, and the source notes say where each number came from.
The finished post is saved for review. Someone on the team reads it and decides whether it goes out. The AI does the reading and the drafting. It does not publish.
- Studies inPapers and product research, as published
- Findings outEach one still tied to its source
- Post draftedCarousel, caption and source notes
- Held for reviewA person approves before it is published
The admin panel is half the product.
A shop with this much writing in it falls apart if the team cannot edit it. The admin panel covers products, categories, orders, banners, blog posts, encyclopedia entries and the FAQ. Every list has the same filters and the same status column.

Products, categories and orders. New orders show up as a badge in the sidebar.
Blog posts and encyclopedia entries, each with a draft or published state and its own categories.
Search by title, then narrow by status, category and visibility. The capture shows the blog list.
Five decisions I'd make again.
A single Next.js app on one MongoDB database. The storefront, the library and the admin panel read the same records, so there is no second system to keep in sync when a product or an article changes.
The product page shows the label, sizes and price above the fold and keeps the mechanism article below. A customer who already knows what they want is not made to scroll past it.
The customers are Bulgarian, so the storefront, the articles, the assistant and the admin panel are all in Bulgarian. The captures on this page are the live site as they see it.
Most of the site is still. The order button is the exception, and it got the same care as the data model: repeat taps, timer cleanup, a reduced-motion fallback.
The SEO system rewrites product copy from studies and the Instagram flow builds slides from them. In both, a finding stays attached to the paper it came from, a page is validated before it is resubmitted to Google, and a post waits for a person before it goes out.
Next up:Keep Up.
A daily programming quiz on your phone, with a pixel-art duck that reacts to your answers.