The Problem: Crypto News Platforms Are Stuck in 2019
The cryptocurrency news space moves at the speed of a blockchain confirmation — and yet most crypto publications still run on bloated WordPress installations, choking under the weight of legacy plugins and a chaotic content pipeline. SEO is an afterthought. Google News integration? Forget about it.
When the Ethers News team approached Teckgeekz with a vision for a next-generation crypto news publishing platform, we saw an opportunity to rethink the entire stack. Not a reskin. Not a migration. A ground-up rebuild designed for the modern web — one where every architectural decision serves the twin gods of performance and discoverability.
The result is Ethers News: a full-stack newsroom platform that ships structured data by default, generates AI-drafted articles in seconds, enforces editorial workflows through role-based access control, and passes Google News compliance checks before a single article is published.
This is how we built it.
The Architecture: Why We Chose Next.js 15 + Firebase
A Server-First Rendering Model
We chose Next.js 15 with the App Router as the foundation for one critical reason: server-side rendering at the page level with fine-grained control over static generation, dynamic rendering, and incremental revalidation.
In a news platform, content freshness is non-negotiable. The homepage and article pages must reflect the latest published stories within seconds. At the same time, crawlers from Google, Bing, and aggregators need fully rendered HTML with complete structured data — no hydration delays, no loading spinners.
The App Router gave us exactly this. Our article pages (/articles/[slug]) are server-rendered on every request, serving fully hydrated HTML — including JSON-LD structured data — directly from the edge. The homepage uses a hybrid model: the initial batch of 12 articles is server-rendered, and subsequent batches load via infinite scroll through server actions.
src/
├── app/
│ ├── articles/[slug]/ # Dynamic article pages with full SEO
│ ├── author/[id]/ # Dedicated author profiles
│ ├── category/[slug]/ # Category archive pages
│ ├── search/ # Full-text article search
│ ├── admin/ # Protected admin dashboard
│ ├── sitemap.xml/ # Google News sitemap (auto-generated)
│ ├── feed.xml/ # RSS 2.0 feed with Dublin Core
│ └── robots.ts # Programmatic robots.txt
Firebase as the Serverless Backbone
For the backend, we selected Firebase — specifically Firestore for the database and Firebase Auth for identity management. This wasn't a compromise; it was a strategic choice.
Firestore's real-time NoSQL model maps naturally to the publishing domain. Articles, categories, tags, and author profiles live in their own top-level collections. Draft articles are structurally segregated into subcollections under each author's profile document (/admin_users/{adminUid}/articles_drafts). This structural segregation means:
- Published content is never accidentally exposed alongside drafts.
- Queries against published articles are clean and efficient — no where('status', '==', 'published') filter tax on every public-facing read.
- Security rules are simple and auditable.
We invested significant effort in our Firestore Security Rules, implementing a full RBAC (Role-Based Access Control) model:
- Public content (published articles, categories, tags, author profiles) is readable by anyone, including unauthenticated users.
- All write operations are restricted to authenticated users with an admin role, verified via the /admin_roles collection.
- Draft articles are private and scoped exclusively to their author.
- The authorId field is enforced on creation and immutable on update — ensuring a clean audit trail.
AI-Assisted Content Creation: Groq + Llama 3.3 70B
One of the most compelling features of the platform is AI-assisted article drafting, powered by the Groq API running Meta's Llama 3.3 70B Versatile model.
Here's how it works: an editor enters a topic in the admin panel — say, "Ethereum's Pectra Upgrade and Its Impact on Staking Yields." The system fires a server action that sends a structured prompt to the Groq API. The prompt instructs the AI to act as an expert crypto journalist and financial analyst, performing research-like analysis before producing:
- A compelling headline
- A concise summary (1-2 sentences)
- A fully structured article body (1,200-1,500 words, with 6+ subheadings)
The AI's output is validated at runtime using Zod schemas to ensure structural correctness before it's loaded into the editor. The output is formatted as clean HTML (h2 and p tags only), making it immediately editable in the rich text editor.
Why Groq? Speed. Groq's LPU inference engine returns a 1,500-word article draft in under 3 seconds. In a newsroom where every minute counts, that's a game-changer.
The AI doesn't replace editors — it accelerates them. Every AI-generated draft goes through the same editorial workflow: it loads into the Tiptap rich text editor, where journalists can refine the copy, add images, insert links, and adjust tone before publishing.
The Rich Text Editor: Tiptap at the Core
For content authoring, we integrated the Tiptap editor — a headless, framework-agnostic rich text editor built on ProseMirror. We extended it with:
- Link extension for inline hyperlinks with URL validation
- Image extension with alt-text prompts for accessibility compliance
- The StarterKit bundle for headings, lists, blockquotes, code blocks, and more
Tiptap's headless architecture was essential. Unlike WYSIWYG editors that impose their own UI opinions, Tiptap gave us full control over the toolbar layout, keyboard shortcuts, and output format — all styled consistently with our shadcn/ui component library and Tailwind CSS design system.
Google News Compliance: Built In, Not Bolted On
Google News compliance was not a line item on our backlog. It was a first-class architectural requirement that shaped decisions from day one.
JSON-LD Structured Data
Every article page automatically generates a NewsArticle JSON-LD block injected into the
| Field | Source |
|---|---|
headline |
Article title |
datePublished / dateModified
|
Firestore timestamps |
author (Person) |
Linked author profile with canonical URL |
publisher (Organization) |
Ethers.news with 600×60 logo |
articleSection |
Resolved category names |
keywords |
Resolved tag names |
wordCount |
Dynamically computed from content |
inLanguage |
en |
Google News Sitemap
The platform generates a Google News sitemap (/sitemap.xml) that includes only articles published within the last 48 hours — aligned with Google's News sitemap specification. Each entry includes:
- news:publication with publisher name and language
- news:publication_date in ISO 8601
- news:title properly XML-escaped
- news:keywords resolved from tag IDs to human-readable names
- image:image with article thumbnail metadata
RSS 2.0 Feed with Dublin Core
The RSS feed (/feed.xml) serves the latest 50 articles with full content syndication support:
- content:encoded for full HTML article bodies
- dc:creator for author attribution
- for article thumbnails
- Proper elements resolved from Firestore IDs to names
- atom:link self-reference for feed validation
OpenGraph & Twitter Cards
Every article also ships with complete OpenGraph (og:type: article) and Twitter Card (summary_large_image) metadata — including publishedTime, modifiedTime, author URLs, and 1200×630 images.
Google News Subscribe with Google
We integrated the Subscribe with Google (SwG) JavaScript library, initializing articles as NewsArticle type under the openaccess product ID — future-proofing the platform for Google's reader engagement features.
The Admin Panel: A Complete Newsroom CMS
The admin panel at /admin is a secure, role-gated dashboard that gives editors full control over:
- Articles: Create, edit, publish, and manage drafts with AI assist
- Authors: Manage profiles with display names, bios, bylines, and avatars
- Categories: Organize content into thematic sections (Blockchain, Ethereum, Solana, etc.)
- Tags: Fine-grained keyword tagging for SEO and content discovery
The layout uses a responsive sidebar navigation with Radix UI primitives (dialogs, dropdowns, tabs) composed through shadcn/ui. Admin authentication is enforced both at the Firebase Security Rules layer and the application layer, with server-side checks on every data mutation.
Frontend Polish: The Details That Matter
A news platform lives and dies by its reading experience. Here's what we shipped:
- Dark mode by default with the Inter font family for body text and Space Grotesk for headlines — loaded from Google Fonts with preconnect optimization
- Sticky header with backdrop blur, dynamic category navigation (only showing categories with published articles), and integrated search
- Infinite scroll on the homepage and author pages, loading 12 articles per batch via Next.js server actions
- Featured article carousel powered by Embla Carousel with autoplay
- Responsive mobile navigation using Radix Sheet (slide-out drawer)
- DMCA badge in the footer with dynamic URL reflection
- Social media integration with Facebook and X (Twitter) links
- Google Tag Manager for analytics
- Custom 404 page styled to match the platform's design language
Performance & Deployment
The platform is deployed via Firebase App Hosting with the Turbopack dev server for local development (next dev --turbopack). The production build uses NODE_ENV=production next build with vercel.json configuration for hosting flexibility.
Key performance decisions:
- Server components by default: minimizes client-side JavaScript bundle
- Image optimization: Next.js with remote pattern allowlists for CDN-served article thumbnails
- Revalidation strategy: key paths (/, /admin, /sitemap.xml, /feed.xml) are revalidated on every content mutation via revalidatePath
- Firestore batch reads: author and category data resolved in batch using where('name', 'in', [...]) queries to minimize round trips
What We Learned
Building EtherNews taught us several lessons worth sharing:
- Structure beats speed. Investing upfront in data model design (separating published and draft articles into distinct collections) eliminated entire classes of security bugs and made every feature simpler to build.
- Google News compliance is an architecture problem, not a content problem. If your structured data, sitemaps, and feeds aren't correct at the infrastructure level, no amount of editorial effort will get you indexed.
- AI-assisted drafting changes the editorial velocity equation. When a journalist can go from topic to 1,500-word draft in 3 seconds, the bottleneck shifts from writing to editing — which is where it should be.
- Headless editors are worth the setup cost. Tiptap + ProseMirror gave us an editor that feels native to the platform, not a third-party widget awkwardly embedded in an iframe.
The Bottom Line
At Teckgeekz, we don't build websites. We engineer platforms. Ethers News is proof that a modern crypto news publication doesn't need to choose between editorial power and technical excellence.
The platform is live at ethers.news — and it shipped Google News-ready on day one.
Written by the Jeffrey Mathew at Teckgeekz. We build high-performance web platforms for publishers, fintech companies, and digital-first brands. If you have a product that needs to be engineered — not just developed — Lets Talk.

Top comments (0)