Category: Blog

  • How I Built the Simplest WordPress Membership Plugin (and Why I Had To)

    How I Built the Simplest WordPress Membership Plugin (and Why I Had To)

    🌙 How a Quiet Night in Ericeira Led Me to Build My Own WordPress Membership Plugin

    Ericeira, Portugal. A Tuesday night in June 2025.

    The house was finally quiet.

    Dishes done, son asleep, dog curled up by the door. My wife had just turned in for the night. I was still at my desk — lights dimmed, ocean breeze drifting in through the cracked window, the last sips of lukewarm tea within reach.

    On the screen: my CRM knowledge base.

    A structured vault of insight — systems I’d built, frameworks I’d tested, vendor stacks I’d mapped out over months of deep work. I was proud of it. It wasn’t pretty, but it was useful. And it had quietly become one of the most valuable things I owned.

    “I should share this,” I thought.
    “But not with everyone.”

    I didn’t want it on LinkedIn. Not in a newsletter blast. I wanted it for my circle — my clients, peers, and the curious few who think the way I do. The ones who’d actually use it.

    That’s when I said the fateful words:

    “I just need a membership plugin. A simple one.”

    Ha. Yeah.


    “WordPress will handle this, right?”

    Naturally, I turned to WordPress. I’ve used it since forever. It’s home turf. I figured I’d just enable registrations, protect a few pages, maybe style a form or two. Done by midnight.

    But the reality?

    The registration feature is disabled by default. Fair enough — security. But even when enabled, the out-of-the-box experience is clunky at best and cursed at worst. The styling was a disaster. The flows were unintuitive. Even after some CSS and duct tape, it still felt like I was building an onboarding experience in 2009.

    “Okay. Plugins. Let’s find one that just… works.”

    I went plugin diving.

    There were plenty. In fact, too many. Most were impressive. But they all seemed to want one thing: control. They came bundled with Stripe integration, multi-tier access levels, dashboards, analytics, invoices, maybe a smoothie machine.

    They promised simplicity — but to me, they felt bloated, sales-driven, and way over-engineered for what I needed.

    I didn’t want a membership platform.

    I wanted a gate.


    So I built it. The hard way — but the right way.

    If something doesn’t exist, and you can’t duct tape it together… well, you build it.

    Problem: I’m not a full-time coder anymore. I started that way, years ago. But my JavaScript is rusty, my PHP gets second-guessed, and my time — between running projects and being a dad — is scarce.

    But then there’s AI.

    I started prototyping with ChatGPT and Claude. The first versions were… entertaining. And frustrating. If you get the prompt wrong, you get a weird Frankenstein plugin that doesn’t even activate. Fixing those dead-end outputs takes more time than starting over.

    Still, I kept going.

    I wanted something elegant, and clean, and conversion-focused. Something I’d actually be happy to run on my own site.

    So I went old-school. Opened up VS Code. Fired up Local. Sketched out the logic. Prompted GPT like a boss. And line by line, I started building.


    Introducing: Surfstyk Simplest Membership

    It’s exactly what the name says.

    A lightweight, native WordPress plugin that lets you protect content, blur what’s behind it, and give users a seamless way to sign up and get in — using a magic link.

    🛠️ The core features:

    • Teaser content: Show the first section of a protected post or page.
    • Blurring effect: Visually block the rest with a stylish transparent overlay and gradient fade.
    • Simple sign-up form: Just nickname, email, and a checkbox.
    • Magic link login: No passwords. Just one secure click from an email.
    • Instant unlock: They’re verified, logged in, and redirected — all in one clean flow.

    It’s secure. It’s clean. And it works with everything:

    • Pages, posts, custom post types
    • Custom fields
    • Pages rendered in React, Elementor, anything

    Even better: the overlay is completely isolated from the content. No DOM collisions. No style interference. Your content stays yours. My plugin just floats above it like a well-behaved guest.


    Why This Matters to Me

    I wasn’t trying to build the next “membership empire” plugin. I wasn’t optimizing for scale. I just wanted something that worked — for me, and people like me.

    I needed:

    • A gate that doesn’t kill the user experience
    • A sign-up that doesn’t require a new password
    • A flow that feels like it belongs in 2025, not 2012

    The end result is something I’m genuinely proud of. It’s minimal. It’s frictionless. It feels good to use. And it respects the principles I care about:

    • Simplicity
    • Data ownership
    • Clean onboarding
    • Zero distractions

    What’s Next?

    Right now, I’m running Surfstyk Simplest Membership on my own site to protect CRM content — and it works beautifully.

    I’m thinking about releasing it publicly. If I find the time (and maybe a few plugin veterans who’ve done this before), I’d love to get it into the WordPress Plugin Directory.

    If that’s your world — ping me.
    If you want to use it — let’s talk.
    If you just want to peek — go check it out here.


    Final Thoughts

    There’s something special about building for yourself.

    You make better decisions. You’re not distracted by trends. You care more about what it feels like at 11pm when your brain’s tired but the idea is still burning.

    This plugin wasn’t built with VC funding or a launch strategy.
    It was built with the door slightly open, the ocean air rolling in, and the quiet conviction that something simple can still be powerful.

    Thanks for reading.

  • From Pierogi to Pipelines: How We Rebuilt Marketing, Branding & CRM at Warsaw Dynamics

    From Pierogi to Pipelines: How We Rebuilt Marketing, Branding & CRM at Warsaw Dynamics

    It started with pierogi.

    Summer 2023. I had just landed in Warsaw to meet the two founders of Warsaw Dynamics — Krzysztof and Kamil — in person for the first time. We sat down at a local Polish restaurant. The kind with mismatched tablecloths and the smell of dill and smoked sausage hanging in the air. Kamil debated between gołąbki and żurek. I went straight for pierogi ruskie.

    Between bites, we talked shop.

    They told me about their plugins — highly rated, rock-solid additions to the Atlassian ecosystem. My personal favorite was “External Share,” a beautifully simple tool that lets you share Jira or Confluence content with people outside your workspace. It was solving a real problem, and it was making money.

    But underneath that success was a quiet bottleneck: no marketing team, no CRM system, no real way to nurture all the incoming trials.

    “We’re getting hundreds of users trying the product,” they said, “but we have no real process to support them.”

    No brand voice. No automation. No structure. Just great code — and a growing business that was starting to feel the pain of not following up.


    The Starting Point: Solid Product, Silent Funnel

    At that time, Warsaw Dynamics was already doing over $100K per month through Atlassian. That’s a great place to be. But when you looked closer, most of that revenue came in despite the lack of customer engagement.

    There was no social media presence, no onboarding sequences, no insights into who was trialing their products. And most of all — no system in place to prioritize leads or communicate value once the trial clock started ticking.

    We started small. Built the brand. Defined their voice. Set up a few basic outbound flows and gave the visual identity a light refresh. Within a few weeks, the lights started to come back on. People were responding to the brand again — because it finally had a pulse.

    But the real turning point came when we turned our attention to their CRM.


    Building the Brain: Why Zoho Was the Right Fit

    There was already a Zoho CRM instance floating around, mostly dormant. After reviewing options like HubSpot or building something custom, we decided to lean into what was already there — and give it a proper brain.

    It wasn’t always pretty. Zoho’s UI still has some turn-of-the-millennium vibes. But when you want raw flexibility, especially for a dev-savvy team, it’s a brilliant canvas. And that’s exactly what we needed.


    From Trials to Triage: Building the CRM That Thinks

    Over the next 18 months, we transformed that half-configured Zoho instance into a highly adaptive, revenue-aware system. Here’s what we built, layer by layer:

    🔁 Automated Data Ingestion & Enrichment

    • Hourly import of trial data via Atlassian API
    • Included: app name, hosting type (cloud vs. data center), user count, license type
    • Enriched with: employee count (via LinkedIn/Wiki), estimated revenue, and lead quality scoring

    📥 Lead Handling Logic

    • All new entries land in the Leads module
    • Cloud-hosted leads auto-convert into Deal + Contact + Account
    • Server/DC and event leads handled via manual “Mass Convert” for safe triage
    • Support for CSV imports from events, meetups, partner uploads

    📊 Deal Pipelines (Clear, Segmented, Actionable)

    • Direct Sales: auto-fed from cloud trials
    • Partner Sales: filtered by known partner resellers
    • Manual Conversion: everything else, waiting for human eyes
    • Probability-driven expected revenue tracking tied to deal stage

    ✉️ Automated Email Sequences

    • Smart sequences by app and hosting type (0, 4, 8, 24 days)
    • First touch (“Email Zero”) designed to get past spam filters
    • Lightweight HTML and contextual content, with tracked open rates and template versions

    👥 Governance & Roles

    • One superadmin (Krzysztof), one system owner (me, later Tomasz)
    • Jamale handling daily sales ops
    • No staging environment — so we enforced single-point change control

    📆 Daily Workflows & Pipeline Monitoring

    • Manual review of high-value trials
    • Slack-based alerts with screenshots
    • CRM exports for cross-referencing with Atlassian backend

    And Then… The Revenue Started Climbing

    When I first joined in summer 2023, monthly revenue was hovering around the 100K mark. But then things started to shift — slowly at first, then sharply.

    You can see it in the chart below.

    Source: https://ampin.app/vendors/1220579/warsaw-dynamics

    This graph shows estimated monthly revenue paid by customers through Atlassian, broken down by:

    • Cloud monthly (light blue)
    • Cloud annually (mint green)
    • Data center (pink)

    From the moment we got the CRM humming — and combined it with structured outbound messaging, better partner handling, and lead tagging — things moved.

    Steady growth through late 2023. A jump in Q1 2024 as pipeline visibility improved. Another step-change in mid-2024 when we fully activated automation and began handling partner leads more aggressively.

    By April 2025, just as my engagement ended, monthly revenue had nearly tripled. That wasn’t a fluke — it was the result of building the right foundation, then letting it compound.


    What I Learned — and What Others Can Steal

    This project reminded me of something simple: great products don’t scale on their own. Even in developer-first ecosystems like Atlassian, communication matters. Context matters. Follow-up really matters.

    We didn’t run big paid campaigns. We didn’t overcomplicate things. We just put structure in place:

    • So the sales team knew who to talk to
    • So every trial user got the info they needed — without being chased manually
    • So partners got a clean handoff and visibility
    • So the founders could finally see what was happening in their own funnel

    And that made all the difference.


    Final Thoughts

    The engagement was supposed to last six months. It turned into eighteen.

    Not because we kept adding scope — but because we kept seeing results. And when things are working, you keep going.

    I’m proud of what we built together. A brand, a system, a structure that made sense — and that scaled. Warsaw Dynamics has a strong team and even stronger products. Now, they also have the backbone to support serious growth.

    And to think… it all started over a plate of pierogi.

  • TYPO3, WordPress, and a Morning by the Sea

    TYPO3, WordPress, and a Morning by the Sea

    ☕️ TYPO3, WordPress, and a Morning by the Sea

    The window is open. Seagulls are shouting over Praia do Matadouro, the ocean rhythm humming underneath it all. I take a sip of coffee — still hot, still quiet — and let my eyes rest on the horizon.

    It’s early. The kind of early where the sun is just starting to do its job, and the light is spilling across my desk in soft gold. A new tab opens. I’m checking a few websites for a client, like I do many mornings — quick source code scan, structure check, see what’s under the surface.

    Mostly WordPress. Always WordPress.

    But then I pause.

    This website is powered by TYPO3 – inspiring people to share!

    Wait a second. Is that… TYPO3?

    I lean in, frown a little, and squint at the headers.

    Yep. TYPO3. That takes me back.

    A sudden rabbit hole

    I don’t normally go down technical rabbit holes before 9 AM. But this one feels personal.

    I start digging — not out of skepticism, but curiosity. I’ve built, scaled, and helped sunset plenty of CMS systems over the years. And while TYPO3 and I have crossed paths before, it’s been a while.

    I open my dashboard notes, start running a quick comparison. What’s TYPO3 up to in 2025? Is it worth considering? And how does it hold up against my go-to workhorse, WordPress?

    The market doesn’t lie

    The numbers say it all:

    • WordPress powers over 43% of the entire internet.
    • TYPO3? Around 0.6% and mostly in German-speaking enterprise circles.

    At this point, I mumble something like:

    “Okay… maybe there’s a reason I don’t run into this very often.”

    But I don’t want to dismiss it too quickly. So I pull up the data, and it turns into this neat little table:

    AspectWordPressTYPO3
    Market Share43%+ of all websites worldwide~0.6%, strong in Germany, Enterprise markets
    Ease of UseBeginner-friendly block editor, drag & drop, real-time previewSteep learning curve, developer-centric interface
    Extensions60,000+ plugins and themes6,000+ extensions, fewer integrations
    PerformanceGreat up to medium scale; needs tuning for enterpriseBuilt for complex, high-scale environments
    SecuritySecure if maintained; high attack surface due to popularityMore secure out of the box; enterprise-grade controls
    SEOExcellent with Yoast & others Very strong technical SEO built-in
    Cost to DevelopLower – wide talent pool, lots of freelancersHigher – specialized developer skill required
    CommunityMassive, global, vibrant (WordCamps, forums, etc.)Smaller but passionate; focused around TYPO3 Association
    Who it’s forBloggers, small businesses, e-commerce, creatorsCorporates, governments, multilingual portals, regulated environments

    The honest verdict

    So here’s the thing: TYPO3 isn’t bad. It’s focused. It’s opinionated. It serves enterprise environments well — and if you have a German government project or a multinational portal with strict workflows, it might even be the right call.

    But for most real-world projects I work on — fast-moving, pragmatic, scaling from solopreneur to small team to mid-sized business — WordPress wins. Every time.

    And it’s not just about the numbers.

    It’s about how it feels to build with it. How fast you can launch. How easy it is to hand off. How your marketing team won’t hate you for choosing it.

    Zooming back out

    I glance back at the window. The ocean’s picking up. Light’s brighter now. The coffee’s cooling in my hand.

    And I think:

    “Yeah, WordPress just makes sense. It gets out of the way. It lets you ship.”

    For someone like me — a fractional tech strategist who lives in that sweet spot between strategy and shipping — that matters. A lot.

    I don’t need elegance for elegance’s sake. I need momentum. WordPress gives me that.

    If you’re on the fence…

    If you’re evaluating your next CMS stack — maybe you’re in that classic in-between moment of rebranding, launching, rebuilding — don’t overthink it. Start with WordPress. There’s a reason it keeps winning.

    And if you’re knee-deep in legacy systems or evaluating “enterprise-grade” options that feel like overkill? Let’s talk. I’ve been in those rooms. I’ve made those migrations. I know the signs.

    That morning, over coffee and a glimpse into someone else’s codebase, I was reminded why I keep coming back to WordPress.

    Not because it’s flashy.

    But because it works.

    And if you work in the real world — with real clients, real budgets, real deadlines — that’s exactly what you need.

  • Inside WordCamp Europe 2025: A Tech Strategist’s Raw Take

    Inside WordCamp Europe 2025: A Tech Strategist’s Raw Take

    Sitting in the front row at the fireside chat with Matt and Mary talking about the state of affairs of WordPress, I came across a term again that I haven’t read in a while:

    data liberation“.

    It perfectly reflects what I’ve been thinking and working on over the past few years. You have to own your content, you have to own your data, and be free with it to share it with the platform that you like.

    This isn’t only true for CRM systems that I’m focused on—it’s fundamental to how we should approach data and personal information online everywhere. This was a key moment across the three days, and I’m getting ahead of myself because there’s a lot more to unpack.

    From Spontaneous Discovery to Strategic Insight

    Four weeks ago, I didn’t even know about the WordPress community. Then, thanks to the WordPress dashboard (which needs some strong improvements, by the way—I agree with Matt on that one), I discovered WordCamp Lisbon and attended it spontaneously. That’s where I met the vibrant people of the community and learned about the event in Basel.

    Despite all odds, I booked the flight and attended without any time to build expectations. In this approach, you’ll find my honest impressions. Since there’s substantial ground to cover, I’m creating three parts: this raw take from the event, a deep dive into the sessions I strategically attended, and a detailed analysis of that revealing fireside chat with Matt and Mary.

    The Community Pulse: Alive and Evolving

    WordPress is alive and powering roughly 50% of the internet, with Google and Salesforce there as title sponsors. The vibe was vibrant—everyone discussing what’s genuinely interesting about WordPress, what they can accomplish with it, and expressing gratitude for what the platform offers. The hundreds of volunteers working on the event is a statement by itself. This volunteer-driven approach mirrors what I see in successful CRM implementations—community ownership drives better adoption than top-down mandates.

    The Elephant in the Room

    Of course, there were dark clouds—not only over Basel’s sky but within the community. I won’t dive into anything that’s in progress, but the launch of Project FAIR was something that surprised many and will definitely impact the path forward.

    What I took away was Matt’s statement: “A lot of great inventions in the WordPress community started with ‘we don’t like the way this is done. Let’s do our own thing.’” Then later, these innovations made it back into core. That’s a productive mindset, but the situation was definitely a discussion topic on and off stage.

    Three Moments That Shifted My Perspective

    1. The AI Team Formation

    I didn’t see many AI buzzwords across the booths and speeches, but AI was part of numerous conversations. The fact that WordPress is forming its own AI team proves this matters strategically. This reminds me of how forward-thinking organizations approach CRM—not chasing every trend, but methodically building capability where it delivers real value.

    2. The Block Editor Evolution

    Gutenberg Block Editor and Interactive API were huge topics. Everyone was discussing them, and my take is that most have converted to block editor advocates. There’s still ongoing discussion, and it’s productive to observe.

    As a satisfied user of WordPress 6.8 with standard Twentytwentyfive theme, using Gutenberg blocks, I can confidently say this is remarkable. I used to purchase premium themes for commercial projects. Now I can accomplish more than 80% of the work with everything available in the free version of WordPress, which creates tremendous opportunities.

    3. The Unexpected Q&A Dynamic

    Something few people anticipated was an actual Q&A session during Matt and Mary’s fireside chat, which included genuinely direct feedback from the community. I’ll examine this in a dedicated analysis, so stay with me through this series.

    What Nobody Was Discussing

    Something absent from conversations was WooCommerce’s current limitations and the competitive landscape against platforms like Shopify or Wix, who make user onboarding significantly easier. For WordPress to compete effectively, substantial work remains—particularly around WooCommerce’s checkout process, which is still restrictive with considerable development needed.

    This presents future risk, as confirmed by several one-on-one conversations I had with community members. This connects to a principle I call “CRM as a mindset“—the best systems prioritize user experience over technical features, and WordPress still has work to do here.

    The Generational Challenge

    There’s a saying: “If you’re the smartest person in the room, you’re in the wrong room.” I like to adapt this to: “If you’re the oldest person in the room, bring in more young people.”

    In this event’s context, I felt great company, but I was particularly intrigued by something Matt mentioned about bringing younger people into the developer community. I’ll dissect that comment and its implications in my upcoming analysis of the fireside chat—it reveals more about WordPress’s strategic challenges than most realize.


    Coming Next: In Part 2, I’ll break down the three strategic sessions I attended, including insights on enterprise WordPress implementation, potential CRM use cases and integration patterns, and the technical demonstrations that revealed WordPress’s actual capabilities and what plugins might make it even more fit for purpose.

    Coming soon Part 3: The complete fireside chat analysis—including the uncomfortable questions, strategic admissions, and timeline revelations that most attendees missed but every WordPress professional should understand.

  • Confessions of a Fractional Tech Strategist (Or: Why I Let AI Help Me Find My Job Title)

    Confessions of a Fractional Tech Strategist (Or: Why I Let AI Help Me Find My Job Title)

    “Sounds like Tech Bro Crypto blah blah 😂 🫠”


    That was the raw, honest feedback I got from a friend and peer, Andy. And you know what? He’s got a point.

    Since I’ve started using the title Fractional Tech Strategist for my personal brand, I’ve noticed more than one puzzled look. People don’t quite know what to make of it. Is it about tech? Is it about strategy? Is it fractional because I only work on Tuesdays?

    Let’s unpack that.

    Why Fractional?

    Fractional work is not new. The term comes from the world of Fractional CFOs — senior finance leaders who help companies on a part-time or project basis.
    It’s about bringing executive-level thinking without the executive-level overhead.
    In other words, you get the brain, not the bureaucracy.

    For me, fractional means I embed into teams temporarily. I don’t consult from the sidelines. I don’t deliver 100-slide decks. I dive in, roll up my sleeves, help the team, get the work done, and then leave the place better than I found it.

    Why Tech Strategist?

    Because that’s where I bring the most value.
    I help companies — from startups to scaling teams — figure out:

    • Which tech tools actually make sense for their business (and which are just shiny distractions).
    • How to set up systems like CRMs so they serve the team (not the other way around).
    • How to connect dots between tech, teams, and goals.

    But calling myself Digital Consultant felt old school.
    Calling myself Tech Advisor felt vague.
    And calling myself Freelance Growth Hacker? Let’s not even go there.

    The AI Origin Story (Yes, I Asked ChatGPT)

    Here’s the plot twist: I didn’t sit in a dark room meditating for hours to come up with this title.
    I used ChatGPT.

    Why?
    Because AI, when used right, can speed up thinking, improve options, and sharpen messaging.
    In a 15-minute brainstorm session with ChatGPT, I got dozens of ideas. Fractional Tech Strategist stood out because it captured exactly what I do:
    Part-time, embedded, strategic support in the tech and systems space.

    I believe AI is not replacing thinking — it’s accelerating it.
    It’s a fantastic tool to challenge your assumptions and push you out of your bubble.
    And no, ChatGPT didn’t tell me to write this post. That part is 100% me.

    Why I’m Sticking With It (For Now)

    Could the title confuse people?
    Yes.

    Could it trigger an eye-roll from the Anti-Buzzword Brigade?
    Definitely.

    But here’s the thing:
    It starts conversations. It makes people ask questions. It forces me to explain what I do in plain words — and that’s always a good test.

    Plus, it reflects the way I work:

    • Fractional (nimble, no long contracts, flexible engagement)
    • Tech (tools, systems, platforms)
    • Strategist (I help you see the big picture, not just configure the software)

    And that’s me.

    So yes, call me a Fractional Tech Strategist.
    But more importantly, call me when your team is stuck in tools, workflows, and “we are not using the CRM right” paralysis.

    I’ll help you cut the blah blah and get sh*t done.


    PS: What do you think?

    Would love to hear from others: Does the title make sense? Would you call it something else?
    Hit me up on LinkedIn or wherever you like to rant about titles and tech.