PRNow lets businesses, agencies and resellers publish a press release without talking to a salesperson. They write it (or let the AI writer draft it), pick a plan and premium outlets, and pay. The platform distributes it, collects the live placement links and sends a branded report.
My role
Lead developer since August 2025. I built everything behind the original homepage mock-up: accounts, orders, payments, distribution, reporting, support and the admin back office. Around 545 reviewed pull requests so far.
What I built
AI press release writer grounded in live web search, with SEO checks and fallback across model providers
Order pipeline with per-package tracking, credit refunds and automatic cancel-and-refund for stalled orders
Automatic submission to wholesale distribution partners, with placement links collected back into each order
Branded web, PDF and Excel reports, including white-label domains for agencies
Checkout with cards, Apple Pay, Google Pay and crypto, built so a retry can never charge twice
Support desk where AI drafts replies and a person approves them before sending
Public REST API with Swagger docs, and a white-label storefront for resellers
Hard problems
Moved the app off Vercel to a VPS behind Cloudflare without downtime, with client-IP handling that a forged header can't bypass
Fixed an admin page that shipped an estimated 80 MB by slimming the list and loading details on demand
Results
5 self-serve plans, from free to agency
11 premium add-ons, including AP News, Yahoo Finance and MarketWatch
Check the Live Sitemap Before Signing Off the Release
A sitemap can export correctly while the live website still serves an older URL list. The task needs a check at the public sitemap address after deployment.
That check should compare the published file with the pages the team agreed to include.
Imagine an export containing 200 URLs. The public sitemap also contains 200, but it still lists a retired service page and omits the new replacement. The totals match. The contents do not.
Before closing the task, check:
• The production sitemap address returns the expected XML.
• Its complete URL list matches the agreed inventory.
• Each intended page type is represented, including a newly published page.
• Deliberately excluded pages remain absent.
• Someone owns the process that keeps the file current.
Start with the sitemap already on the site. It may be an index pointing to several smaller files. Include those files in the comparison so a working index does not hide an outdated section underneath it.
Keep the inventory decision explicit: which service pages, locations, articles or products belong in this release? A crawler's export tells you what it discovered. Compare that list with the pages the site was supposed to publish.
Open a sample of the listed URLs as well. Check that they reach the intended production pages and use the preferred addresses. If the sitemap includes modification dates, those dates should reflect significant page updates; exporting the file again does not make every page newly updated.
For a site that publishes regularly, document how new pages enter the sitemap and how retired pages leave it. An automated generator still needs clear inclusion rules and a check when those rules change.
Keep the public address, inventory comparison and update owner in the release notes. Make the sitemap discoverable through Search Console or robots.txt, and check for retrieval or processing errors. Submission does not guarantee that every listed page will be crawled or indexed.
Solid checklist. I'd add lastmod: if every release stamps today's date on every URL, Google learns to ignore it. It should only change when the page content changes. Also worth confirming every sitemap URL returns a direct 200, not a redirect.
Scroll → a camera flies through a watch gallery → zooms into the dial → you pick a dial colour → add to cart.
That's the homepage of AUREL, a luxury watch store I designed and built as a portfolio project. ⌚
Under the hood:
• 3D scroll story with React Three Fiber, GSAP and custom shaders
• Full shop flow: filters, product variants, cart, 4-step checkout
• Mobile CSS 3D fallback + reduced-motion layout
• Accessible, fast, and ready to plug into Shopify
I'm a web developer (React · WordPress · PHP, 6+ years) looking for remote frontend or WordPress roles. Recruiters and hiring managers, my DMs are open.
This is how 3D should be used in commerce — not decoration, sequence. Camera through the gallery, zoom into the dial, then the colour pick and add to cart: by the time someone chooses, they already feel like they have handled the watch. The detail that sold me on the craft is...