April 13, 20261 Month

NGO Platform — Content, Membership, and Admin System

Built a production-oriented web platform for a non-profit organization using Next.js, combining a public-facing website with an admin system for content management, events, membership applications, file handling, and operational workflows.

Client
Acıpayam ve Çevresi Eğitimi Destekleme Derneği
Engagement
Freelance
Role
Full Stack Developer
Scope
Public-facing NGO website for organizational communication · Admin panel for managing announcements, events, members, and uploaded assets · Membership and application workflows with structured form handling · Content and settings infrastructure for maintainable updates
Impact
Enabled the organization to manage content and operational workflows through a single platform · Reduced dependency on manual developer-led updates for day-to-day site changes · Created a more structured foundation for events, announcements, applications, and internal administration · Turned a standard web presence into a maintainable operational system

Overview

This project was built for a non-profit organization that needed more than a simple informational website.

Instead of a static marketing-style site, the platform was designed as an operational system: a public-facing website for visitors and applicants, paired with an internal admin panel for managing content, events, members, applications, and uploaded assets.

This was not a simple informational website, but an operational system used to manage real organizational workflows.

Problem Context

The main challenge was creating a system that non-technical stakeholders could operate without depending on developers for everyday updates.

The platform needed to support multiple real workflows at once:

  • Public content pages
  • Event and announcement publishing
  • Membership and scholarship-style application flows
  • File and dataset management
  • Admin-side content and operational control

This meant the project had to balance usability, maintainability, and structured backend logic rather than focusing only on visual presentation.

Solution

I built the system with Next.js and TypeScript, using a modular architecture that separated public pages, admin workflows, API routes, and shared domain logic.

The platform included:

  • Public pages for organization content and communication
  • Admin panel for managing announcements, events, members, and uploaded assets
  • Application flows for membership and related organizational processes
  • Authentication and admin session handling
  • Structured database-backed content and settings management

The result was a maintainable organization platform that supported both external communication and internal operations.

Architecture Approach

The project was implemented as a full-stack Next.js application with both public and admin-facing surfaces in the same codebase.

Key architectural choices included:

  • App Router-based structure for separating public and admin routes
  • API-driven admin workflows for operational management
  • Prisma-based relational modeling for core domains
  • Migration path from legacy MongoDB usage toward a more structured schema
  • Reusable settings and content abstractions for maintainability

Key Decisions

  • Single integrated platform instead of separate website and admin tools
    Chosen to keep content, operations, and internal workflows in one maintainable system.

  • Next.js full-stack architecture
    Allowed frontend delivery, route handling, and backend logic to live within one coherent application.

  • Prisma-backed domain modeling
    Introduced more structure for operational data such as announcements, events, members, and applications.

  • Incremental migration strategy
    Used because parts of the system were transitioning from legacy MongoDB-based flows to a more maintainable relational setup.

Constraints

  • Non-technical stakeholders needed a usable admin experience
  • Public content and internal operations had to coexist in one system
  • The project required balancing speed of delivery with long-term maintainability
  • Legacy data and migration concerns added structural complexity

What I Learned

  • Organizational websites often become operational systems, not just presentation layers
  • Admin usability matters as much as frontend polish in client-facing delivery
  • Content, workflows, and data models should be designed together rather than separately
  • Incremental migration is often more realistic than full rewrites in active systems

Related work