
Ask an AI assistant to create an OJS theme or plugin, and it may return an impressive result: a redesigned homepage, a working form, or a feature that appears to solve exactly the problem you described. For a journal team, the temptation is understandable. Why purchase an extension when AI can generate the code?
Because generating code is only the beginning of the responsibility. An extension for a live journal must do more than install successfully or produce the expected result in one test. It must fit the platform, preserve essential publishing information, handle permissions and data appropriately, and remain maintainable as OJS changes.
The risk is not simply that AI might produce an obvious error. It is that an extension can appear finished while leaving important problems outside the parts you know how to check.
On a live journal, those hidden problems can affect more than the feature you wanted to add. A redesigned article page might display correctly while omitting information needed by indexing services. A plugin might complete its intended task while allowing access that should have been restricted. Neither problem necessarily announces itself with an error message. Your team could continue using the extension, unaware that something important is no longer being handled correctly.
This is where the decision becomes less about generating code and more about who will take responsibility for it. Someone still needs to review the implementation, test what happens beyond the expected scenario, and maintain it when OJS changes. For a journal team without that expertise, these are responsibilities that another prompt cannot simply take away. When comparing an AI-generated solution with a professionally developed OJS product, the real consideration is not just the price or the visible features, but the development, testing, and maintenance behind them.
Table of Contents
What Happens After AI Generates the Code for your OJS?

AI can quickly generate PHP files, templates, CSS, JavaScript, and even installation instructions for an OJS extension. This makes it much easier to start building a theme or plugin without first learning every detail of OJS development. For many journal teams, this can save a significant amount of time during the early development stage. However, generating the code is only the first step, because the result still needs to be checked before it is used on a live journal.
A theme or plugin may install correctly and appear to work as expected, but that does not always mean it is ready for production use. There are still important things to review, such as whether the extension follows the expected OJS structure, supports the correct OJS version, keeps important publication metadata intact, and handles user permissions properly. These details may not be obvious from the interface alone. An extension can look completely functional while still containing problems that only become visible in certain situations.
Some issues are also difficult to identify during a simple installation test. An extension may work well when tested by an administrator, but behave differently when used by an editor, author, reviewer, or another user role. Problems can also appear later when the journal goes through an OJS upgrade or when the extension is used as part of a more complex editorial workflow. Because of this, testing only the main feature is usually not enough to understand how the extension will behave in a real publishing environment.
For example, a plugin might successfully save data when used by an administrator, but the same action may not be handled correctly for another user role. A theme may also look modern and work normally in the browser while changing parts of the article page that are important for metadata or indexing. These kinds of problems are easy to miss because the journal may still appear normal to editors and readers. The issue may only become noticeable later, when indexing, permissions, compatibility, or another part of the workflow starts to behave differently.
What Can Go Wrong When Customizing an OJS Theme with AI?

An OJS theme is not just a visual skin. It presents scholarly content together with important information about articles, authors, issues, citations, identifiers, and publication metadata. Its quality therefore cannot be judged from a homepage screenshot alone.
Consider a request to redesign an article page. An AI-generated implementation may replace large parts of an existing OJS template simply to achieve the requested appearance. Visually, the result may look excellent. The page may be cleaner, more modern, and appear completely functional. But during that process, important markup or metadata that was originally generated by OJS may also be changed, duplicated, or removed.
This is where the risk becomes more serious for an OJS journal. Google Scholar relies on bibliographic information and page structure to identify and process scholarly articles. If important metadata such as the article title, author, publication date, or links to the full text are no longer presented correctly, the problem may not be visible to the journal administrator at all. The article page can continue to open normally while Google Scholar sees incomplete or incorrect information.
The consequences may only become noticeable later. Newly published articles may fail to appear in Google Scholar, existing articles may be identified incorrectly, citation information may not be associated properly, or some pages may eventually stop being included as expected. Google Scholar itself warns that incorrect bibliographic data can result in poor indexing and, in some cases, articles may not be included at all.
This makes theme customization particularly deceptive: the journal can look better to human visitors while becoming more difficult for indexing systems to understand. There may be no error message in OJS, no broken page, and no obvious warning telling the journal manager that discoverability has been affected.
Indexing and Other Issues in AI-Generated OJS Themes

An OJS journal page is not only read by visitors. Google Scholar, search engines, crawlers, and other scholarly indexing services also depend on metadata, links, and the structure of article pages. An AI-generated theme may change these elements while the journal still looks completely normal to editors and readers. This makes indexing problems especially difficult to notice during a simple visual review.
Incorrect or missing metadata can affect how an article is discovered and processed by Google Scholar and other reputable indexing services. In some cases, newly published articles may fail to appear in Google Scholar, existing articles may disappear from search results, or bibliographic information such as the title, authors, publication date, DOI, and full-text links may be interpreted incorrectly. Similar problems can also affect how journal content is discovered or evaluated by services such as Scopus, Web of Science, DOAJ, and other academic databases. A theme should therefore preserve the information these systems need, not only the visible design of the page.
Indexing is also not the only concern. Theme changes can introduce other technical problems that may not be immediately visible when the journal is viewed normally.
Some common issues include:
- Broken article or galley links
- Duplicate or missing metadata
- Incorrect canonical URLs
- Missing citation metadata
- Mobile layout problems
- Navigation and accessibility issues
- Problems with multilingual content
Changes to templates may also affect article downloads, citation tools, galley files, or other parts of the OJS interface. These issues may not immediately stop the journal from working, but they can still affect readers, authors, editors, crawlers, and indexing services.
This does not mean that every AI-generated OJS theme will cause these problems. It means that a theme should not be considered safe simply because the pages load correctly and the new design looks good. Before using a theme in production, the journal team should check what has changed behind the interface and verify that important metadata, article links, indexing elements, and OJS functions are still working correctly.
Security Issues in AI-Generated OJS Plugins

OJS plugins can interact with user accounts, database records, uploaded files, forms, APIs, external services, and editorial workflows. Because of this, a plugin may affect much more than what is visible on the page. A plugin may appear to work correctly during a simple test, but that does not prove that its authorization, input validation, file handling, and data access are secure.
Security problems can become much more serious if a weakness allows an attacker to upload or execute a malicious file. For example, if a vulnerable plugin allows a backdoor to be uploaded, an attacker may gain access to parts of the journal website or server that should not be accessible. From there, the attacker could potentially modify files, inject unwanted content, access sensitive information, or damage the journal installation. In a more serious incident, journal content, uploaded files, or other important data could also be altered or deleted.
This is why security checks cannot be limited to whether the main feature works. The implementation still needs to handle permissions, input validation, output escaping, file uploads, database access, and other safeguards correctly. A successful demonstration from an AI-generated plugin does not replace a proper security review. “It works” and “it is secure” are two different things, especially when the plugin will be used on a live journal.
Testing AI-Generated OJS Extensions

An AI-generated OJS extension may work correctly during the first test, but that does not mean it is ready for production. Most initial tests only cover the exact scenario described in the prompt. In a real journal environment, the extension may be used by different roles, with different types of data, and in workflows that were never included in the original request.
Some problems only appear after the extension has been used for a while. A feature may work for an administrator but fail for an editor, author, or reviewer. Other issues may appear when the journal receives more traffic, when unusual input is submitted, or after OJS is upgraded to a newer version. If these problems are discovered after deployment, they may already be affecting an active publishing workflow.
Testing should therefore cover more than the main feature. Depending on the extension, important areas may include:
- User roles and permissions
- Invalid or unexpected input
- Editorial workflows
- Metadata output
- Performance and compatibility
- OJS upgrades and version changes
- Accessibility and user interface behavior
AI can help generate test cases and identify possible scenarios, but it should not be the only basis for deciding that an extension is ready to use. Someone who understands OJS still needs to review the implementation, check the important workflows, and confirm that the extension behaves correctly beyond the original prompt. A successful first test is useful, but it is only the beginning of proper testing.
Using AI in OJS Extensions Development
Using AI in professional OJS development is not a problem by itself. AI can be very useful for generating an initial version of a plugin or theme, explaining unfamiliar code, helping with debugging, or speeding up repetitive development work. The important point is that the generated result should not be treated as a finished product simply because it works during the first test.
Every result still needs to be reviewed in the context of OJS. The developer needs to consider the OJS version, journal workflow, user roles, metadata, compatibility, and the actual purpose of the extension. AI can help produce the code, but it may not understand every requirement or condition that exists in a real journal environment.
This becomes more important after the extension is deployed. If a plugin behaves unexpectedly, a theme affects article metadata, or an OJS update causes compatibility problems, someone still needs to understand the code well enough to identify and fix the issue. AI can assist during that process, but the responsibility for maintaining the extension still belongs to the people who develop and manage it.
Professional development therefore involves more than generating code. It includes code review, testing, validation, maintenance, and support after release. The main difference is not whether AI was used, but whether the final extension has been properly reviewed, tested, understood, and maintained.
How We Develop OJS Themes and Plugins

Our OJS products are developed with production use in mind. We look beyond whether a theme appears attractive or whether a plugin completes one requested action, because those are only part of what a journal needs from an extension.
For themes, we consider compatibility, maintainability, accessibility, metadata, indexing, performance, and the overall user experience within OJS. For plugins, we consider how the feature interacts with the platform, handles data and permissions, responds to changes, and can be maintained over time.
Our themes and plugins are developed and reviewed by real expert people who have experience working with OJS and understand how the platform works beyond its visible interface. This includes OJS architecture, publishing workflows, user roles and permissions, metadata, indexing requirements, compatibility, and security. We follow OJS development best practices and consider how each extension will behave in a real journal environment, not only whether the requested feature works. This experience is especially important when dealing with areas such as data handling, file uploads, access control, upgrades, and other parts of OJS where a small implementation mistake can create larger problems.
Our themes are also developed around the important principles we consider essential when choosing an OJS theme. These principles go beyond visual design and include compatibility with indexing, consistent structure and navigation, responsive design, security, clear presentation of scholarly information, support for article and galley content, maintainability, and long-term technical support. Every theme we develop is designed with these considerations in mind, because an OJS theme should support the needs of a scholarly journal as a whole, not simply make the website look more attractive.
These concerns explain the value of an OJS product beyond its visible features. The purchase decision should account for the work behind the interface, not just whether an AI assistant can imitate the appearance or generate a similar feature.
No development method makes software automatically free of defects. What matters is the process behind the product and a clear understanding of its scope and requirements. Our focus is on developing extensions for the publishing platform, rather than treating generated files as the end of the job.
Conclusions
AI has made it remarkably easy to create an OJS theme or plugin. With the right prompt, it can generate code, reproduce a design, or build a feature in a matter of minutes. But producing something that works is not the same as producing something that is ready for a live scholarly journal. An OJS extension operates within a much larger publishing environment. It may affect metadata, indexing, user permissions, editorial workflows, uploaded files, compatibility, security, and future upgrades. Many of these areas are not immediately visible when a theme looks correct or a plugin successfully completes its main function.
This does not mean AI should be avoided in OJS development. It can be a valuable development tool and can significantly accelerate many parts of the process. The important question is what happens after the code is generated. Someone still needs to understand it, review it, test it in the context of OJS, validate how it behaves across different scenarios, and maintain it as the platform evolves.
Ultimately, the difference between generated code and a production-ready OJS extension is not simply who or what wrote the code. It is the process behind it: the experience, testing, validation, maintenance, and responsibility that continue after the first version has been created.
Your journal should not have to become the testing environment for code that has never been properly validated.
If you are considering a new OJS theme or plugin, start by defining what your journal actually needs from the extension—not simply how quickly it can be generated. Explore our OJS themes and plugins, or talk with us about the requirements of your journal before putting a new extension into production.
