Grants:Programs/Wikimedia Community Fund/Rapid Fund/Upgrading Citron:External Link Anti-Spam Tool for Vietnamese Wikipedia (ID: 24030985)
Applicant details
[edit]- Main Wikimedia username. (required)
Plantaest
- Organization
N/A
- If you are a group or organization leader, board member, president, executive director, or staff member at any Wikimedia group, affiliate, or Wikimedia Foundation, you are required to self-identify and present all roles. (required)
N/A
- Describe all relevant roles with the name of the group or organization and description of the role. (required)
Main proposal
[edit]- 1. State the title of your proposal. This will also be the Meta-Wiki page title.
Upgrading Citron: External Link Anti-Spam Tool for Vietnamese Wikipedia
- 2. and 3. Proposed start and end dates for the proposal.
2026-11-01 - 2027-01-31
- 4. What is your tech project about, and how do you plan to build the product?
Include the following points in your answer:
- Project goal and problem you solve
- Product strategy or project roadmap
- Technical approach (infrastructure, tech stack, key tools and services)
- Integrations or dependencies (if any)
Citron is an existing tool used on Vietnamese Wikipedia to detect potentially problematic external domains added through recent edits. It uses machine learning to score domains and produces reports for patrollers and administrators to review.
After nearly two years of operation, Citron has shown several limitations. Reviewers still need to manually open many websites to understand what they are, low-scoring but problematic domains may receive little attention, reports are fragmented by day, and historical Citron data is difficult to search. The goal of this project is therefore to make Citron better at preparing information for human reviewers, while keeping all final judgments and administrative actions under human control.
The project is described in more detail at vi:Thành viên:Plantaest/Nâng cấp Citron.
The project will run for 13 weeks, in five phases:
- Phase 1 – Foundation and design (Weeks 1–2): review and standardize the existing Citron components and terminology, establish baseline data for later evaluation, prepare the data changes needed by the new features, and prototype the upgraded analysis and review workflow.
- Phase 2 – Domain analysis (Weeks 3–5): update the existing machine-learning model using newer data, implement website-content analysis using an LLM, and produce short structured explanations and evidence that can be shown to reviewers.
- Phase 3 – Citron Review (Weeks 6–8): rebuild the review interface, including cross-report review of domains that still need attention, standardized review reasons, filters, viewed-state support, and a shorter path for administrators to proceed to the existing domain-blocking workflow.
- Phase 4 – Citron Console (Weeks 9–10): build a Toolforge interface for searching Citron's historical data by domain, article, revision, account and related information.
- Phase 5 – Integration and deployment (Weeks 11–13): integrate the components, improve report presentation, conduct user testing with the Vietnamese Wikipedia community, fix issues, evaluate the results, complete documentation, and deploy the upgraded version.
Technically, I plan to evolve the existing Citron architecture rather than rewrite it. Citron Console will be hosted on Toolforge and reuse Citron's stored data and backend functionality where appropriate.
The project will continue to depend on Wikimedia infrastructure such as MediaWiki APIs and recent-change data. For the LLM component, I will prioritize open models, free or low-cost services, and an architecture that does not tightly depend on one provider. The existing ML-based analysis and reporting workflow will remain functional if the LLM service is temporarily unavailable.
- 5. What is the expected impact of your project, and how will you measure success?
Include the following points in your answer:
- Milestones and progress tracking
- Project impact and success metrics
The expected impact is to reduce the amount of repetitive manual investigation required from Vietnamese Wikipedia patrollers and administrators and to make more of Citron's existing data useful for reviewing and investigating external-link spam.
Progress will be tracked against the five project phases described above. The main implementation milestones are: an updated domain-analysis system, a usable new Citron Review workflow, a working Citron Console MVP, community testing, and production deployment with completed documentation.
Before the major changes are deployed, I will collect a baseline from the current Citron workflow. After deployment, I will compare the new workflow with the existing one, focusing on whether Citron helps reviewers work more efficiently, provides more useful information about reported domains, improves access to historical data, and supports more consistent review decisions.
Success does not mean automatically identifying or blocking every problematic domain. The main success criterion is that Citron provides better information and organization so that limited human review time can be spent on cases that genuinely require human judgment.
- 6. Who is your target audience, and how have you confirmed there is demand for this project? How did you engage with the Wikimedia community?
Include the following points in your answer:
- Project demand and target audience description
- Links to interaction(s) with Wikimedia community
- Evidence from community consultation such as the [Community Wishlist]
The primary target audience is Vietnamese Wikipedia patrollers and administrators who review external links, investigate spam, and decide whether domains require further action. Other experienced editors investigating suspicious editing patterns may also benefit from Citron Console.
This is an upgrade to an existing tool that has already been used on Vietnamese Wikipedia for nearly two years, so the project is based on observed workflow problems rather than a hypothetical use case.
Before preparing the final project proposal, I opened a discussion with active Citron users and administrators at vi:Thảo luận Thành viên:Plantaest/Nâng cấp Citron. The discussion produced concrete requests concerning old reports, review reasons, filtering, administrator workflow, and report presentation. These suggestions were incorporated into the current project draft.
A formal community discussion has also been opened at vi:Wikipedia:Thảo luận cộng đồng/Dự án Nâng cấp Citron to confirm support for the overall direction before implementation.
The full project draft is available at vi:Thành viên:Plantaest/Nâng cấp Citron.
- 7. How will your team predict and manage potential user security and privacy risks, and what risks do you currently see?
Include the following points in your answer:
- The level of in-house or consulted security and privacy expertise you will have available to you during delivery of this project
- How your development, testing, and deployment processes mitigate the introduction of unnecessary security or privacy risks
I have professional backend-development experience and will handle application security and privacy considerations during development. I am not a dedicated security specialist, so if a high-risk issue requires specialist review, I will consult relevant Wikimedia technical or Toolforge channels before deployment.
The main new security risk comes from Citron fetching arbitrary public websites for analysis. External websites will therefore be treated as untrusted input. Requests will use limits on response size, redirects and execution time, appropriate rate limiting, and protections against SSRF and access to internal or otherwise unsafe network destinations. Citron will only access publicly available content.
Website content supplied to an LLM will also be treated as untrusted data. The implementation will limit the amount of content sent, validate structured model output, mitigate prompt-injection attempts, and ensure that the LLM has no capability to perform administrative actions on Wikimedia.
Only data necessary for analysis will be sent to external AI services, if such a service is used. Unnecessary website content, prompts and responses will not be retained in logs. Citron's user-facing review state will also use the minimum data needed for the feature.
Development will take place separately from production, with basic testing and manual checks of security-sensitive behavior before deployment. The existing ML and reporting workflow will remain independent of the LLM layer so that failure of an external service does not compromise the core tool.
- 8. Who is on your team, and what is your experience?
Include the following points in your answer:
- Your experience as a developer, relevant past projects
- Wikimedia SUL (developer), Gerrit, Github, Gitlab or other relevant public account handles
- Other team members, their roles and expertise
I am the sole developer and project maintainer.
I have several years of professional software-development experience, as well as several years of experience developing tools for Wikimedia projects. I am the original developer and current maintainer of Citron and have developed other Wikimedia-related software projects. I have also previously completed or received support for multiple Wikimedia Foundation Rapid Fund technical projects.
Relevant public accounts:
- Wikimedia SUL: Plantaest
- GitHub: plantaest
- Citron repository: plantaest/citron
- 9. How will the project be maintained long-term?
Include the long-term maintenance plan with maintainer(s) in your answer. If you expect the long-term maintenance to incur expenses, please list those and the plan for long-term expense coverage.
I will remain the primary maintainer of Citron after the grant period. The project is already an existing long-running tool rather than a temporary application created only for this grant.
Citron will continue to be hosted on Wikimedia Toolforge. I will document deployment, configuration, data structures, model updates and the new user-facing components so that other technically experienced Wikimedia contributors can understand and contribute to the project if necessary.
A specific maintenance concern is the cost and availability of LLM inference. The project will therefore prioritize open models, free or low-cost services, caching, and avoiding repeated analysis. The integration will also be designed so that the model or provider can be changed later.
Most importantly, the core Citron workflow will not depend on a permanently paid AI service. If an LLM provider becomes unavailable or financially unsustainable, Citron will still be able to detect domains, use its ML model, produce reports and accept human reviews. If significant recurring expenses become necessary in the future, they can be reconsidered separately rather than becoming a requirement for basic operation of the tool.
- 10. Under what license will your code be released, and how will you ensure the product is well documented?
Include the following points in your answer:
- Code license and compatibility with Wikimedia projects
- Documentation plan
Citron is currently released under the GNU Affero General Public License version 3 (AGPL-3.0), and the code produced by this project will continue under the same open-source license. This allows the software to remain publicly inspectable, reusable and modifiable by Wikimedia contributors.
Documentation will be updated as part of the project rather than postponed until after implementation. It will include:
- end-user documentation for Citron Review and Citron Console;
- developer setup and architecture documentation;
- deployment and operational instructions for Toolforge;
- documentation of important data structures and integrations;
- instructions for updating or replacing ML/LLM components;
- security and privacy considerations relevant to website analysis;
- maintenance notes for future contributors.
User-facing documentation will also be maintained on Wikimedia where appropriate, while technical documentation will be kept with the public source repository.
- 11. Will your project depend on or contribute to third-party tools or services?
Yes, but third-party dependencies will be kept limited and replaceable.
Citron primarily depends on Wikimedia infrastructure, including Toolforge, MediaWiki APIs and recent-change data. The upgraded analysis system may additionally use an external service for LLM inference and public datasets used for website/domain information.
The exact LLM model or provider will be selected during implementation based on quality, privacy, reliability and sustainable operating cost. The integration will be designed so that Citron is not tightly coupled to a single provider, and the core tool will remain functional if this service is unavailable.
No major contribution to a third-party software project is required as part of this grant.
- 12. Is there anything else you’d like to share about your project? (optional)
Budget
[edit]- 13. Upload your budget for this proposal or indicate the link to it. (required)
- 14. and 15. What is the amount you are requesting for this proposal? Please provide the amount in your local currency. (required)
130373750 VND
- 16. Convert the amount requested into USD using the Oanda converter. This is done only to help you assess the USD equivalent of the requested amount. Your request should be between 500 - 5,000 USD.
4999.9 USD
- By submitting your proposal/funding request you confirm that you have read and agree to the Application Privacy Statement, WMF Friendly Space Policy, and the Universal Code of Conduct.
Yes
Endorsements and Feedback
[edit]Please add endorsements and feedback to the grant discussion page only. Endorsements added here will be removed automatically.
Community members are invited to share meaningful feedback on the proposal and include reasons why they endorse the proposal. Consider the following:
- Stating why the proposal is important for the communities involved and why they think the strategies chosen will achieve the results that are expected.
- Highlighting any aspects they think are particularly well developed: for instance, the strategies and activities proposed, the levels of community engagement, outreach to underrepresented groups, addressing knowledge gaps, partnerships, the overall budget and learning and evaluation section of the proposal, etc.
- Highlighting if the proposal focuses on any interesting research, learning or innovation, etc. Also if it builds on learning from past proposals developed by the individual or organization, or other Wikimedia communities.
- Analyzing if the proposal is going to contribute in any way to important developments around specific Wikimedia projects or Movement Strategy.
- Analysing if the proposal is coherent in terms of the objectives, strategies, budget, and expected results (metrics).
This is an automatically generated Meta-Wiki page. The page was copied from Fluxx, the web service of Wikimedia Foundation Funds, where the user has submitted their application. Please do not make any changes to this page because all changes will be removed after the next update. Use the discussion page for your feedback. The page was created by CR-FluxxBot.
