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
- Live URL
- Open live result
- 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