Collaboration & Open Source

Careers & Collaboration

Help build a useful learning platform

ApilageAI brings community questions, shared study resources, and AI assistance together. We welcome collaborators who care about making that experience clearer, more accessible, and more dependable.

Important notice: This is an invitation to explore contributing to the project. It is not an announcement of salaried vacancies, and it does not promise compensation, an internship, or future employment. Scope and any working arrangements need to be agreed before a collaboration begins.
Contribution Areas

Where you could contribute

You do not need experience with every part of the stack. A focused contribution in an area you understand is a useful starting point.

💻
Frontend

Frontend engineering

Improve the question feed, onboarding, profiles, settings, and study interfaces. Help make interactions responsive, keyboard accessible, and understandable on smaller screens.

⚙️
Backend

Backend engineering

Work on APIs, database queries, account controls, uploads, and community interactions. We value explicit permissions, predictable errors, and changes that preserve existing data and behavior.

🤖
AI & ML

AI features and evaluation

Help improve study explanations, question classification, reply reviews, and conversation handling. Useful work includes evaluating incorrect answers, testing privacy boundaries, and improving failure handling and resource limits.

🎨
UX & Content

Design, content, and accessibility

Clarify confusing journeys, improve interface wording, and make the product easier to navigate. Educators and students can contribute by identifying where a learning workflow needs more context or better feedback.

🧪
QA & Docs

Testing, reliability, and documentation

Reproduce bugs, improve setup guides, write meaningful regression tests, and help verify changes across the frontend and backend.


Architecture & Tooling

Technologies we use

Our stack is chosen for performance, strong type safety, reliability, and clear operational boundaries.

Area Technologies and their role
Web application Svelte 5, SvelteKit, TypeScript, and Vite for the interface and web application tooling.
Styling Tailwind CSS and component CSS for layout, appearance, and responsive behavior.
Backend Go and Chi for HTTP APIs and application services.
Application data PostgreSQL, Supabase-hosted PostgreSQL, pgx, and sqlc-generated query code.
File storage Appwrite for uploaded resources, accessed through backend storage services.
AI study features Gemini through a server-side orchestration layer with scoped conversations and usage controls.
Content screening A local Node.js moderation service using TensorFlow.js, NSFWJS, and a profanity filter.
Documents & explanations PDF.js for document viewing, pdfcpu for backend PDF processing, and Markdown and KaTeX tooling for study content.
Configuration & delivery Doppler, Docker Compose, Git, and GitHub.
Optional background infrastructure Redis and Asynq support mail-worker scaffolding; production email delivery is not complete. Core AI jobs use PostgreSQL.

You do not need experience with every part of the stack. A focused contribution in an area you understand is a useful starting point.


Engineering Culture

How we work

We prefer small, reviewable changes with a clear reason. Understand the existing behavior before changing it, keep secrets out of code, and test the parts of the system your change affects.

Correctness, security, data integrity, and maintainability guide our decisions. A simpler implementation that is easy to understand and verify is usually more useful than a large rewrite.

AI-assisted development is part of the project’s history. Contributors remain responsible for understanding, reviewing, and validating the work they submit.

Getting Started

A good first contribution

🎯 Focus on clear, reproducible impact

Start with a reproducible interface issue, a confusing instruction, an accessibility improvement, or a focused regression test. Describe the problem, the expected behavior, and how you checked your change.

Read the repository’s README and engineering instructions before starting. Avoid including real user data, production credentials, or private conversation content in issues and examples.


Introduce your interest

When proposing a collaboration, share your area of interest, relevant work or learning experience, realistic availability, and one problem you would like to help solve. A clear, thoughtful proposal is more useful than claiming expertise in every tool.