<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[johnwritescode]]></title><description><![CDATA[johnwritescode]]></description><link>https://johnwrites.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1746925211787/23e341be-a1d3-4e30-b4ed-40eba65f47ff.png</url><title>johnwritescode</title><link>https://johnwrites.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 15:31:59 GMT</lastBuildDate><atom:link href="https://johnwrites.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[📈 From 0 to 3,800+ Pageviews in a Month – Here’s What It Means for Business Owners]]></title><description><![CDATA[When I launched my personal website johncodes.xyz, I built it as a portfolio — something clean, fast, and focused on showing off my work as a web developer.
But last month, something surprising happened.Cloudflare emailed me saying I had passed 1,000...]]></description><link>https://johnwrites.hashnode.dev/from-0-to-3800-pageviews-in-a-month-heres-what-it-means-for-business-owners</link><guid isPermaLink="true">https://johnwrites.hashnode.dev/from-0-to-3800-pageviews-in-a-month-heres-what-it-means-for-business-owners</guid><category><![CDATA[SEO]]></category><category><![CDATA[business]]></category><category><![CDATA[SEO for Developers]]></category><category><![CDATA[Public Speaking]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[web dev]]></category><category><![CDATA[Web Design]]></category><category><![CDATA[seo services]]></category><category><![CDATA[software development]]></category><category><![CDATA[Business Websites]]></category><dc:creator><![CDATA[John Moyinoluwa]]></dc:creator><pubDate>Fri, 20 Jun 2025 15:22:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1750432756390/99c8ffa9-7334-451f-ac7d-42f7742de0b4.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I launched my personal website <a target="_blank" href="https://johncodes.xyz">johncodes.xyz</a>, I built it as a portfolio — something clean, fast, and focused on showing off my work as a web developer.</p>
<p>But last month, something surprising happened.<br />Cloudflare emailed me saying I had passed <strong>1,000 pageviews</strong> for the first time.</p>
<p>By the end of the month?</p>
<p><strong>3,809 pageviews.</strong></p>
<p>No ads. No viral tweet. Just basic SEO and consistency.</p>
<hr />
<h3 id="heading-what-i-did-and-what-actually-moved-the-needle">🔍 What I Did (And What Actually Moved the Needle)</h3>
<p>I’m not an SEO agency. But here’s exactly what I did to grow that traffic:</p>
<ul>
<li><p>✅ Set up <a target="_blank" href="https://cloudflare.com">Cloudflare</a> for better speed and protection</p>
</li>
<li><p>✅ Wrote blog posts about useful tools and dev tips (even basic ones!)</p>
</li>
<li><p>✅ Submitted my sitemap to Google Search Console</p>
</li>
<li><p>✅ Added proper <code>&lt;title&gt;</code> and <code>&lt;meta description&gt;</code> tags on every page</p>
</li>
<li><p>✅ Kept my design clean and mobile-friendly</p>
</li>
<li><p>✅ Optimized images and lazy-loaded them for faster load time</p>
</li>
</ul>
<p>Nothing fancy — just <strong>solid foundations</strong>.</p>
<hr />
<h3 id="heading-so-why-does-this-matter-for-business-owners">💡 So, Why Does This Matter for Business Owners?</h3>
<p>Now, here’s where it gets real. Imagine this wasn’t my portfolio…<br />but an actual <strong>business website</strong>.</p>
<p>Let’s say:</p>
<ul>
<li><p>You sell clothes, or run a restaurant, or offer consulting</p>
</li>
<li><p>You get <strong>3,800+ people visiting</strong> your site in a single month</p>
</li>
<li><p>Even <strong>1–3% convert</strong> (buy, book, or call you)</p>
</li>
</ul>
<p>That’s:</p>
<ul>
<li><p>Dozens of new leads</p>
</li>
<li><p>Real, organic exposure</p>
</li>
<li><p>More visibility than many small businesses ever get</p>
</li>
</ul>
<p>All from showing up consistently and making your website search-friendly.</p>
<hr />
<h3 id="heading-what-seo-can-actually-do-for-you">🚀 What SEO Can <em>Actually</em> Do for You</h3>
<p>SEO isn’t about tricking Google — it’s about helping the right people find you at the right time.</p>
<p>If a <strong>simple portfolio site</strong> like mine can get almost 4,000 visits in 30 days, imagine what <strong>your business site</strong> could do with:</p>
<ul>
<li><p>The right keywords</p>
</li>
<li><p>Clear call-to-actions</p>
</li>
<li><p>Fast performance</p>
</li>
<li><p>Blog content that answers real customer questions</p>
</li>
</ul>
<p>That’s the kind of digital footprint that builds long-term sales, not just likes.</p>
<hr />
<h3 id="heading-final-thoughts-build-it-then-optimize-it">💬 Final Thoughts: Build It, Then Optimize It</h3>
<p>Launching your site is only step one.<br />But with just a bit of intentional effort, your website can become your <strong>24/7 salesperson</strong>.</p>
<p>If you’re a business owner and you want your site to <em>actually bring in traffic</em>, not just sit online looking pretty — I’d be happy to chat.</p>
<hr />
<p><em>Want me to audit your site or help set up a strategy for growth?</em><br />👉 Contact me here or visit <a target="_blank" href="https://johncodes.xyz">johncodes.xyz</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1750432278293/f88bdc2b-e5cb-4684-83d0-333c154c1e5c.jpeg" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[How I Built and Published an Academic Journal Website with OJS and Custom Features]]></title><description><![CDATA[Publishing research in an academic journal takes more than just peer review and editing — there’s a lot of behind-the-scenes infrastructure required to make it accessible, professional, and citable.
As the developer for the Nigerian Journal of Social...]]></description><link>https://johnwrites.hashnode.dev/how-i-built-and-published-an-academic-journal-website-with-ojs-and-custom-features</link><guid isPermaLink="true">https://johnwrites.hashnode.dev/how-i-built-and-published-an-academic-journal-website-with-ojs-and-custom-features</guid><category><![CDATA[OJS]]></category><category><![CDATA[ojs hosting]]></category><category><![CDATA[journal]]></category><category><![CDATA[upcoming Scopus Indexed Journals]]></category><dc:creator><![CDATA[John Moyinoluwa]]></dc:creator><pubDate>Sun, 01 Jun 2025 19:41:11 GMT</pubDate><content:encoded><![CDATA[<p>Publishing research in an academic journal takes more than just peer review and editing — there’s a lot of behind-the-scenes infrastructure required to make it accessible, professional, and citable.</p>
<p>As the developer for the <a target="_blank" href="https://njsh.org.ng/index.php/njsh-journal">Nigerian Journal of Social Health</a>, I recently helped take the journal from drafts and emails to a fully functioning publication platform, complete with article submissions, editorial workflows, and DOI readiness.</p>
<p>Here’s what that journey looked like — and what I learned as a developer working in the academic space.</p>
<h2 id="heading-why-i-took-on-this-project">Why I Took On This Project</h2>
<p>I was brought in by the editorial team to help launch the journal’s online presence and streamline their publishing process. Initially, they were working entirely through email and Microsoft Word, which made managing submissions, revisions, and final uploads chaotic.</p>
<p>The goal:</p>
<ul>
<li><p>Launch the first issue of the journal</p>
</li>
<li><p>Enable future submissions to be handled online</p>
</li>
<li><p>Prepare the site for DOI assignment and indexing</p>
</li>
</ul>
<h2 id="heading-tech-stack-overview">Tech Stack Overview</h2>
<p>The core of the platform is built on <strong>Open Journal Systems (OJS)</strong> — a PHP-based, open-source journal management software. Here's the stack I worked with:</p>
<ul>
<li><p>🛠 <strong>OJS (v3.4.0.8)</strong> – for article submission and editorial workflow</p>
</li>
<li><p>🎨 <strong>Custom HTML/CSS + Smarty Templates</strong> – to style the theme</p>
</li>
<li><p>🌐 <strong>cPanel / Shared Hosting</strong> – for deployment and setup</p>
</li>
<li><p>📄 <strong>PDF + Metadata handling</strong> – for publication-ready articles</p>
</li>
<li><p>🔧 <strong>Manual config + MySQL tweaks</strong> – to tune the system performance</p>
</li>
</ul>
<h2 id="heading-getting-started-with-ojs">Getting Started with OJS</h2>
<p>OJS is a powerful tool but has a steep learning curve. It’s not your typical CMS — it comes with baked-in roles like <em>Author</em>, <em>Reviewer</em>, <em>Section Editor</em>, and <em>Journal Manager</em>, and each has its own flow.</p>
<p>I had to:</p>
<ul>
<li><p>Configure submission guidelines and journal sections</p>
</li>
<li><p>Set up user roles and access levels</p>
</li>
<li><p>Handle custom metadata fields for future DOI registration</p>
</li>
</ul>
<p>It’s a solid system, but required careful setup to avoid confusing the editors (and authors).</p>
<h2 id="heading-customizing-the-platform">Customizing the Platform</h2>
<p>This is where most of my time went.</p>
<h4 id="heading-key-customizations">Key customizations:</h4>
<ul>
<li><p><strong>Custom theme overrides</strong> using OJS’s Smarty templating engine</p>
</li>
<li><p>Adjusting <strong>article layout and homepage structure</strong></p>
</li>
<li><p>Simplifying the <strong>submission UI</strong> for less technical users</p>
</li>
<li><p>Embedding external resources and customizing footers to match the journal’s branding</p>
</li>
<li><p>Ensuring the site was <strong>mobile responsive</strong> (surprisingly not standard in many OJS themes)</p>
</li>
</ul>
<h2 id="heading-publishing-the-first-issue">Publishing the First Issue</h2>
<p>After months of setting things up, testing the submission/review workflow, and working closely with the editorial board, we launched <strong>Volume 2, Issue 1</strong>, containing <strong>8 peer-reviewed articles</strong>.</p>
<p>Each article had:</p>
<ul>
<li><p>A dedicated article page</p>
</li>
<li><p>Metadata for indexing</p>
</li>
<li><p>Downloadable PDF</p>
</li>
<li><p>Ready-to-be-assigned DOI metadata</p>
</li>
</ul>
<p>You can check it out here: <a target="_blank" href="https://njsh.org.ng">https://njsh.org.ng</a></p>
<h2 id="heading-lessons-learned">Lessons Learned</h2>
<ul>
<li><p><strong>OJS is powerful, but opinionated.</strong> Understanding its workflow is key before diving in.</p>
</li>
<li><p><strong>Most academic teams aren’t technical.</strong> UI/UX decisions need to be extremely simple and clear.</p>
</li>
<li><p><strong>Deployment matters.</strong> Hosting PHP apps like OJS often requires manual config and isn’t as smooth as modern Node/React setups.</p>
</li>
<li><p><strong>Documentation is limited.</strong> Most of my fixes came from forums, trial and error, and digging through old GitHub threads.</p>
</li>
</ul>
<h2 id="heading-whats-next">What’s Next</h2>
<p>Now that the first issue is live, we're:</p>
<ul>
<li><p>Preparing for <strong>DOI assignment</strong> through Crossref</p>
</li>
<li><p>Working on <strong>SEO and indexing</strong> in scholarly databases</p>
</li>
<li><p>Automating parts of the editorial process (email reminders, deadlines)</p>
</li>
<li><p>Possibly integrating <strong>ORCID logins</strong> in the future</p>
</li>
</ul>
<h2 id="heading-closing-thoughts">Closing Thoughts</h2>
<p>This project was a shift from the usual startup-style dev work I do — and that’s what made it worth it. Building tools that support research, education, and open access is a whole different kind of impact.</p>
<p>If you’re a developer looking to contribute to academic publishing or working with NGOs, OJS and platforms like it are worth learning.</p>
<p>And if you're a journal team looking for help going digital, I’d be happy to chat.</p>
]]></content:encoded></item><item><title><![CDATA[From Portfolio to Proof: How I Built a Client-Ready Web Presence Without Overthinking It]]></title><description><![CDATA[Not gonna lie, I used to overthink the whole “online presence” thing.
Should I go with a headless CMS?Build a custom blog from scratch?Spend weeks tweaking animations and transitions?
Spoiler: I did none of that.
I just needed something out there — a...]]></description><link>https://johnwrites.hashnode.dev/from-portfolio-to-proof-how-i-built-a-client-ready-web-presence-without-overthinking-it</link><guid isPermaLink="true">https://johnwrites.hashnode.dev/from-portfolio-to-proof-how-i-built-a-client-ready-web-presence-without-overthinking-it</guid><category><![CDATA[Web Development]]></category><category><![CDATA[React]]></category><category><![CDATA[Devcareer ]]></category><category><![CDATA[portfolio]]></category><category><![CDATA[Freelancing]]></category><category><![CDATA[personal branding]]></category><category><![CDATA[buildinpublic]]></category><category><![CDATA[No Code]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[Founder]]></category><category><![CDATA[Startups]]></category><category><![CDATA[startup]]></category><category><![CDATA[indiedev]]></category><dc:creator><![CDATA[John Moyinoluwa]]></dc:creator><pubDate>Wed, 14 May 2025 14:02:38 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1747230752977/c164751c-ee46-4253-a497-abf9823a67e1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Not gonna lie, I used to overthink the whole “online presence” thing.</p>
<p>Should I go with a headless CMS?<br />Build a custom blog from scratch?<br />Spend weeks tweaking animations and transitions?</p>
<h3 id="heading-spoiler-i-did-none-of-that">Spoiler: I did none of that.</h3>
<p>I just needed something <em>out there</em> — a site, a blog, and a way to prove I can ship.</p>
<h3 id="heading-done-gt-perfect">Done &gt; Perfect</h3>
<p>I built <a target="_blank" href="http://johncodes.xyz">johncodes.xyz</a> because I was tired of saying “I’m a dev” with nothing to show.</p>
<p>It’s not the flashiest site ever, but it’s:</p>
<ul>
<li><p>Clean</p>
</li>
<li><p>Responsive</p>
</li>
<li><p>Focused on <strong>exactly what a client wants to see</strong></p>
</li>
</ul>
<p>No distractions. Just:</p>
<ul>
<li><p>What I do</p>
</li>
<li><p>Projects I’ve built</p>
</li>
<li><p>How to reach me</p>
</li>
<li><p>Now, a blog to show I actually think about this stuff</p>
</li>
</ul>
<p>No fancy loading states. No “coming soon” messages. Just proof of work.</p>
<hr />
<h3 id="heading-blogging-without-stress">Blogging (Without Stress)</h3>
<p>Let’s be honest — I’m not blogging out of passion.</p>
<p>I’m blogging to <strong>look presentable to clients</strong> and build some long-term credibility.</p>
<p>Hashnode made sense:</p>
<ul>
<li><p>I don’t need to maintain it</p>
</li>
<li><p>It’s easy to write and publish</p>
</li>
<li><p>I can link it to my <code>/blog</code> route and redirect traffic</p>
</li>
</ul>
<p>That was enough.<br />Now I just write like I’m talking to the person who might hire me.</p>
<hr />
<h3 id="heading-clients-dont-care-about-fancy">Clients Don’t Care About Fancy</h3>
<p>This was a big mindset shift.</p>
<p>Clients don’t care how clever your code is: they care about:</p>
<ul>
<li><p>Can you deliver what they need?</p>
</li>
<li><p>Do you look like someone who’s done it before?</p>
</li>
<li><p>Is your site giving “serious” or “student project”?</p>
</li>
</ul>
<p>So I stopped obsessing over frameworks and animations and focused on:</p>
<ul>
<li><p>Clarity</p>
</li>
<li><p>Clean design</p>
</li>
<li><p>Copy that speaks to the people I want to work with</p>
</li>
</ul>
<hr />
<h3 id="heading-if-youre-overthinking-your-web-presence">If You’re Overthinking Your Web Presence…</h3>
<p>Here’s what helped me:</p>
<ul>
<li><p>Ship something simple first</p>
</li>
<li><p>Treat your site like a handshake, not a masterpiece</p>
</li>
<li><p>Write blog posts that talk <strong>to clients</strong>, not just other devs</p>
</li>
</ul>
<p>Most developers don’t even have a proper site.<br />So if yours is live and clear, you’re already ahead.</p>
<p>That’s it from my end.<br />Now I’m back to shipping and blogging, one non-overthought step at a time.</p>
<blockquote>
<p>Got thoughts or feedback? Hit me up at <a target="_blank" href="http://johncodes.xyz">johncodes.xyz</a> — or just connect with me on <a target="_blank" href="https://www.linkedin.com/in/johnmoyinoluwa/">LinkedIn</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Why Nonprofits Must Prioritize Their Online Presence in 2025]]></title><description><![CDATA[In today’s digital-first world, a nonprofit’s ability to build trust, raise awareness, and attract support heavily relies on its online presence. Yet, many nonprofits still operate with outdated websites, poor mobile experiences, or worse, no online ...]]></description><link>https://johnwrites.hashnode.dev/why-nonprofits-must-prioritize-their-online-presence-in-2025</link><guid isPermaLink="true">https://johnwrites.hashnode.dev/why-nonprofits-must-prioritize-their-online-presence-in-2025</guid><category><![CDATA[webdev]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[nonprofit]]></category><category><![CDATA[Ngo]]></category><category><![CDATA[Website design]]></category><category><![CDATA[Web Design]]></category><category><![CDATA[responsive design]]></category><dc:creator><![CDATA[John Moyinoluwa]]></dc:creator><pubDate>Sun, 11 May 2025 01:12:30 GMT</pubDate><content:encoded><![CDATA[<p>In today’s digital-first world, a nonprofit’s ability to build trust, raise awareness, and attract support heavily relies on its online presence. Yet, many nonprofits still operate with outdated websites, poor mobile experiences, or worse, no online visibility at all.</p>
<p>Think about it: when someone hears about your organization, what's the first thing they do? They search. If your website looks like it hasn’t been updated since 2012 or isn't optimized for mobile, you’re likely losing credibility and potential donations.</p>
<h2 id="heading-the-problem-with-just-having-a-website"><strong>The Problem with “Just Having a Website”</strong></h2>
<p>It’s not just about being online. It’s about being intentional. A good nonprofit site should clearly communicate your mission, make it easy to take action (donate, volunteer, contact), and be accessible across all devices.</p>
<p>Many nonprofits underestimate the power of design and performance—both of which deeply affect how users perceive your legitimacy and impact.</p>
<h2 id="heading-what-a-strong-presence-looks-like"><strong>What a Strong Presence Looks Like</strong></h2>
<p>I recently built a clean, purpose-driven site for a nonprofit called <strong>Cepher</strong>. It focuses on clear storytelling, simple navigation, and mobile-first responsiveness—key things every organization should prioritize.</p>
<p><a target="_blank" href="https://cepher.org.ng/">➜</a> <a target="_blank" href="https://www.cepher.org.ng/">Check out the Cepher site here</a></p>
<h2 id="heading-final-thoughts"><strong>Final Thoughts</strong></h2>
<p>Whether you're running a health outreach, a community initiative, or an academic publishing organization, your website is often your first impression. Make it count.</p>
<p>If you're a nonprofit leader looking to revamp your online presence, feel free to <a target="_blank" href="https://johncodes.xyz/">reach out</a> I’d love to help.</p>
]]></content:encoded></item></channel></rss>