Build Service

OJS Plugin Development

OJS plugin development builds custom plugins using Open Journal Systems' documented plugin architecture — generic, gateway, block, report, or import/export plugins — to add functionality or connect third-party systems, without modifying OJS core files.

OJS 3.5.0-5 LTS OJS 3.4.0-10 OJS 3.3.0-22 LTS Verified 2026-07-23

Who This Is For

  • Journals that need functionality no existing OJS plugin provides
  • Publishers connecting OJS to an external system via API (repository, payment processor, analytics tool)
  • Teams with an existing plugin that needs bug fixes, updates, or compatibility work for a newer OJS version
  • Institutions needing a plugin built to a specific internal specification

Common Problems This Solves

  • A workflow step currently handled manually outside OJS because no plugin supports it
  • An existing plugin that's abandoned by its original author and no longer maintained
  • The need to connect OJS to an institutional system (repository, SSO, analytics) with no existing integration
  • A plugin that needs updating to remain compatible with a newer OJS version

What's Included

Plugin built against OJS's documented plugin API (generic, gateway, block, report, or import/export type as appropriate)
Input validation and secure handling of any external data or API calls
Testing against the target OJS version(s)
Plugin source code and a short technical readme
A defined maintenance/update path if the plugin needs to track future OJS releases

How the Process Works

Technical scoping

We determine which plugin type fits the requirement and confirm technical feasibility.

Written specification

You receive a specification of exactly what the plugin will and won't do before development starts.

Development on staging

The plugin is built and tested against a staging copy of OJS, not production.

Testing & review

Functional testing against real data, plus a security review of any external input handling.

Deployment & handover

The plugin is installed on production and source code/documentation is handed over.

Access & Requirements

  • Admin access to the OJS installation (or a staging copy)
  • API documentation and credentials for any third-party system being integrated
  • Existing plugin source code, if the work involves updating or fixing an existing plugin

Realistic Benefits

  • Functionality added without touching OJS core, keeping the installation upgrade-safe
  • A plugin scoped to a written specification rather than an open-ended build
  • Source code you own and can hand to another developer later if needed

Limitations & Exclusions

  • We won't build a plugin that requires bypassing OJS's security model (e.g. unsafe direct database writes) — we'll propose a safer alternative instead
  • Third-party API changes on the other system's side can require plugin updates over time; this is scoped separately unless covered by a maintenance plan
  • Some requests are better solved by existing OJS settings or an existing plugin than a custom build — we'll say so if that applies

Documented, Not Improvised

Every engagement follows a written scope, a staging environment before production changes, and a validation checklist before anything is marked complete. Project write-ups are published as case studies once a client approves sharing them.

View case studies

Pricing for this service

Priced per plugin based on functional complexity and whether external API integration is involved.

View Pricing Guidance

Frequently Asked Questions

OJS supports several plugin categories — generic, gateway, block, report, theme, and import/export among others. We'll recommend the correct type based on what the plugin needs to do.

Often, yes — provided we can review the existing source code. We'll assess whether it can be updated or needs to be rebuilt, and tell you honestly which is more cost-effective.

Only if you want the plugin made publicly available and it meets PKP's submission requirements. Most custom plugins we build are private to a single installation.

We build and test against the specific version(s) you tell us you're running. Supporting multiple branches simultaneously is possible but should be scoped explicitly since plugin APIs can differ between versions.

API changes on the other system's side can break the integration over time. This isn't something we can prevent, but we can scope an ongoing maintenance arrangement to monitor and update the plugin as needed.

Written by the CyberDairy OJS Engineering Team

Technically reviewed by: Senior OJS Developer

Last updated 2026-07-23

Build Service

Ready to talk about OJS Plugin Development?

Tell us about your journal and current setup — we'll respond with a scoped recommendation.

Contact Us Request a Quote