Skip to content
4 min read
Ringkaskata.com

Ringkaskata is an independent Indonesian publishing platform I co-founded with a journalism graduate. I built the product end-to-end so freelance writers could publish work that often struggled to pass verification on larger platforms. Our editorial direction is simple: make room for useful, positive, and verified stories amid the noise of online misinformation.

Ringkaskata website screenshot

My Role

As the technical co-founder and sole full-stack developer, I owned the architecture, implementation, deployment, and technical trade-offs from the public site to the internal publishing tools. My co-founder shaped the editorial direction, while four writing contributors create and submit articles.

Product and Editorial Workflow

I built a custom admin dashboard rather than adopting a generic CMS. Contributors prepare articles as drafts, then authorized admins review and publish them. The dashboard supports three access levels: guest, admin, and superadmin.

For authoring, I integrated the TipTap rich-text editor. Writers can source thumbnail images through the Unsplash API or upload their own assets to Cloudinary. This keeps the publishing flow focused while giving the editorial team enough control over content quality and presentation.

Architecture

Ringkaskata runs as a full-stack Next.js application written in TypeScript. Neon provides the serverless PostgreSQL database, with Drizzle ORM as the type-safe schema and query layer. Resend handles passwordless admin access through magic links. The application is deployed on Vercel, with Cloudflare managing DNS.

I added sitemap generation, page metadata, and Google Search Console integration to support discoverability. Ahrefs complements Search Console for SEO monitoring, while Umami Cloud provides privacy-friendly visitor analytics and visibility into audience activity.

Stack Responsibilities

Technology Responsibility
Next.js Runs the public publication and custom admin dashboard as one full-stack application.
TypeScript Adds type safety across the frontend, server logic, and shared data contracts.
Neon PostgreSQL Stores application and editorial data in a managed serverless PostgreSQL database.
Drizzle ORM Defines the database schema and provides type-safe queries between Next.js and Neon.
Resend Delivers passwordless magic links for admin authentication.
TipTap Provides the rich-text authoring experience for article drafts.
Unsplash API Lets contributors discover suitable article thumbnails from the dashboard.
Cloudinary Stores and delivers images uploaded manually by the editorial team.
Vercel Hosts and deploys the Next.js application through a framework-native workflow.
Cloudflare Manages the domain and DNS layer.
Google Search Console + Ahrefs Monitor indexing, discoverability, keywords, and search performance.
Umami Cloud Tracks privacy-friendly visitor and content engagement metrics.

Challenge: Hosting Resilience

An early availability incident exposed friction in the Cloudflare Workers ecosystem for this Next.js application. I evaluated the operational trade-offs and migrated the deployment to Vercel. The move gave the project a more resilient, Next.js-native hosting setup while retaining Cloudflare for DNS management.

Discovery and Impact

The SEO foundation is already producing results: published articles have begun appearing in Google Search. I monitor indexing and search performance through Google Search Console and Ahrefs, then use Umami to understand visitor activity and which content earns attention.

Engineering Workflow

I use Codex as a thinking partner when evaluating technical trade-offs. It accelerates research and brainstorming, while architecture decisions, implementation, and product ownership remain mine.

Why It Matters

Ringkaskata turns a publication bottleneck into an owned platform: writers have a place to publish, editors have a focused workflow, and readers gain a calmer source of useful Indonesian stories.