AH Original · Case study 08
ActiesDeal
A Dutch coupon and voucher site in Dutch and English, with a custom admin CMS, built on Next.js and a Hono API on Cloudflare Workers.
- Role
- Full-stack
- Stack
- Next.js · Hono · Cloudflare
- Year
- 2026


- Type
- Coupon & voucher site
- Role
- Full-stack developer
- Stack
- Next.js · Hono · Cloudflare
- Market
- Netherlands · NL / EN
01. The site
Every code, checked today.
ActiesDeal started as the coupon section I built for DIEWOHNEN and became its own product for Dutch shoppers. Pick a store, reveal a code, copy it and check out, then tell the next visitor whether it worked with a single vote.
02. The storefront
Deals first,no clutter.
The home page leads with a banner slider and a row of store logos, then the strongest verified deals with their votes, and the most popular stores. Every section is filled from the admin panel.

03. Store pages
One page per store, built to rank.
Each store lives at its own Dutch URL with its coupons, products, tips and FAQs. A code opens the merchant and a popup with the code ready to copy; an offer without one simply activates. The page ships its own structured data, so search engines and AI assistants can read the offers directly.
- Server-rendered pages with each store's data
- Code reveal popup with one-click copy
- Anonymous like and dislike on every deal
- Newsletter box on every page




04. Dutch & English
One switch, every word.
Navigation, buttons, badges, forms and legal pages all come from matching Dutch and English dictionaries of about 500 keys each. The NL / EN switch flips the interface instantly and remembers the choice, while Dutch stays the version search engines index.
- JSON-LD: Offers, Breadcrumbs, FAQPage and a site search box
- Sitemap built by the Worker from stores with live coupons
- robots.txt open to AI crawlers, plus an llms.txt index
- Old German and DIEWOHNEN URLs 301 to the Dutch ones


05. The admin CMS
Run the whole site without a developer.
A custom panel at /admin covers stores, coupons, the home page, special offers, authors, the newsletter, theme colours and staff. Every change lands in an activity log, and editors only see the modules they have been given.
- Super admin, admin and editor roles
- Editors see only their modules and can never delete
- Home-page builder: slides, sliders, promo, FAQs, SEO
- Hourly cron marks expired coupons






06. Architecture
One origin, an edge API.
The browser only ever talks to the Next.js origin, which renders every page with its data and rewrites API, image and sitemap requests to a Hono Worker. D1 holds stores, coupons and votes, R2 holds the images, and an hourly cron retires expired coupons.
Next.js 14
Site + /admin, SSR
i18n
nl + en dictionaries
Hono Worker
REST API · JWT · cron
D1
Stores, coupons, votes
R2
Logos and banners
07. In numbers
One product, three parts.
A public site, an admin panel and an API, shipped as one product built so non-technical staff can run it day to day.
- 2
- Languages, about 500 keys each
- 11
- Admin modules
- 3
- Staff roles
- 1 h
- Coupon expiry sweep
08. Technologies
- Next.js 14
- React 18
- TypeScript
- Tailwind CSS
- SWR
- Hono
- Cloudflare Workers
- D1
- R2
- Cron Triggers
- JWT
- Turnstile
- Resend
- JSON-LD
AH Originals
More Like This
Next episode
Want something like ActiesDeal?
Tell me about your idea and I'll reply with honest advice and a free quote. Replies within 24 hours.