Pipeline & Changelog

What's happening with DWCode

Follow along as the platform grows. This page is updated every time something ships, something breaks and gets fixed, or a new idea makes it onto the roadmap.

36shipped
1in progress
5planned / ideas

In Progress
1 item

In-app notifications

Feature

A notification bell in the navbar that surfaces activity like contest start reminders, new problems, and comment replies.

#notifications#ux
Planned
4 items

AI-powered hints

Feature

Ask for a contextual hint on any problem without revealing the full solution. Powered by Gemini.

#ai#problems

Problem collections / learning paths

Feature

Curated sets of problems grouped by topic (Arrays, Objects, Reduce, Date-Time…) so users can follow a structured learning path.

#problems#learning

Per-problem discussion threads

Feature

A dedicated discussion section on each problem page where users can ask questions, share approaches, and upvote helpful comments.

#community#problems

Embeddable playground snippets

Feature

An <iframe> embed so any DWCode playground snippet can be embedded directly in blog posts, documentation, or external sites.

#playground#sharing
Idea
1 item

Mobile app (PWA)

Feature

Progressive Web App version of DWCode for offline problem browsing and code reading on mobile.

#mobile#pwa
Shipped
36 items

Leaderboard → public profiles

Feature

Every player on the leaderboard is now clickable — jump straight to their public profile to see their tier, heatmap and recent submissions. Users without a public profile show as plain rows.

July 26, 2026#leaderboard#profile#community

Leaderboard pagination

Improvement

The leaderboard is paginated server-side (25 players per page) with sort by score, solved or accuracy. Rank numbers stay canonical across every sort, and your own rank card works from any page.

July 26, 2026#leaderboard#performance

Monorepo restructure

Dev Experience

The app is now split into client/ (the Next.js frontend) and server/ (a new TypeScript backend). A single `npm run dev` starts both.

July 26, 2026#architecture#dx

New backend service

Feature

A layered Express + TypeScript API with request validation, structured logging, rate limiting, and Clerk JWT auth. The legacy DataWeave /api/transform contract is preserved byte-for-byte, guarded by characterization tests.

July 26, 2026#backend#api#dx

Sponsorships

Feature

A new /sponsor page with Razorpay checkout, preset tiers, and a public sponsor wall. Every payment is verified server-side via HMAC signature before it counts.

July 26, 2026#sponsor#payments#community

Theme Store

Feature

Seven purchasable accent themes with a live try-before-you-buy preview across the whole site. Coins are now spendable — debits are atomic and race-safe.

July 26, 2026#themes#coins#gamification

Playground redesign

Improvement

A decluttered toolbar, the AI panel removed, and a new settings dialog covering editor theme, font size, indent, wrap, minimap, line numbers, and opt-in auto-run. Your layout preference is persisted.

July 26, 2026#playground#editor#ux

Site footer

Improvement

A new footer with quick links across the site. Changelog moved from the navbar into it, and the footer stays hidden inside the problem workspace to keep the editor distraction-free.

July 26, 2026#ui#navigation

Blog — dark-theme fixes

Bug Fix

LinkedIn embed tiles are now readable in dark mode, and long-form post styling has been rebuilt from scratch — the old prose classes were inert and did nothing.

July 26, 2026#blog#dark-mode

Admin user directory fixed

Bug Fix

Users who never submitted code were invisible in the admin directory. It now unions profiles, submissions, comments, coins, and roles, with activity tabs and per-user counts.

July 26, 2026#admin#bugfix

Security hardening

Security

Removed an unauthenticated AI endpoint that exposed the server's Gemini key. CI now scans every push for committed secrets and live API keys.

July 26, 2026#security#ci

CI/CD overhaul

Dev Experience

Separate frontend and backend pipelines with path filtering and caching, a one-click Render blueprint for the backend, and Vercel config for the frontend.

July 26, 2026#ci#deploy#dx

Blog voting

Feature

Upvote or downvote any blog post, with the score updating live.

July 26, 2026#blog#community

Rank avatars

Feature

Profile pictures now carry tier effects that match your rank — and Grandmasters get an animated ring.

July 26, 2026#profile#gamification

Public profiles redesigned

Improvement

Public profiles got a full refresh: tier badge, score, streak, solve breakdown rings, an activity heatmap, and recent submissions.

July 26, 2026#profile#ui

Weekly contests

Feature

A public contest with randomly selected problems is scheduled automatically every Saturday at 15:00 UTC — show up, solve, climb the leaderboard.

July 26, 2026#contests#community#gamification

404 page with rotating memes

Improvement

Getting lost is now a feature. Dead links serve a fresh meme on every visit — we can neither confirm nor deny that some team members type bad URLs on purpose.

July 26, 2026#404#fun

Public user profiles

Feature

Every user now has a shareable public profile at /profile/[username] showing their solve breakdown by difficulty, a 30-day activity heatmap, acceptance rate, followers/following counts, and their last 10 submissions.

July 17, 2025#profile#community

Follow / unfollow users

Feature

Users can follow and unfollow each other directly from public profile pages. Follower and following counts update in real time.

July 17, 2025#profile#community#social

Edit profile — username & bio

Feature

An "Edit Profile" dialog on the profile page lets users set a custom username (3–20 alphanumeric characters) and a short bio. Usernames are unique and case-insensitively validated.

July 17, 2025#profile#ux

Automatic profile setup on first sign-in

Feature

On first authenticated load, a default username is auto-generated from the user's email and a UserProfile record is created silently — no manual setup required.

July 17, 2025#profile#onboarding

Activity heatmap & progress rings

Feature

New reusable chart components: a 30-day submission heatmap with intensity-based colouring, and SVG progress rings showing solve percentages per difficulty level.

July 17, 2025#profile#ui#charts

Hydration error with DialogTrigger fixed

Bug Fix

A React hydration mismatch on the profile page caused by DialogTrigger with asChild was resolved by switching to the render prop pattern.

July 17, 2025#profile#bugfix#react

Added missing shadcn Label component

Dev Experience

The Label UI component was missing from the component library. It has been added so form fields across the app render correctly.

July 17, 2025#ui#dx

Home dashboard enhancements

Improvement

The home dashboard now shows username, follower/following counts, and a link to the user's public profile. The profile data fetch also auto-triggers setup if a username is missing.

July 17, 2025#dashboard#profile#ux

Product Tour for new users

Feature

First-time signed-in users now see a friendly step-by-step walkthrough introducing Playground, Problems, Contests, Blog, and the Leaderboard.

July 17, 2025#onboarding#ux

Pipeline & Changelog page

Feature

This very page! A public roadmap showing shipped features, what's in progress, and what's coming next.

July 17, 2025#transparency#community

Blog — LinkedIn embed rendering fix

Bug Fix

The blog listing page was showing raw <iframe> HTML as plain text instead of a preview card. Fixed: the list now shows a clean LinkedIn preview tile; the detail page renders the embed correctly.

July 17, 2025#blog#embeds

Blog — shareable links & login-free reading

Improvement

Blog posts are now fully public — no sign-in required to read. Each post has a Share button that uses the Web Share API on mobile or copies the URL on desktop.

July 17, 2025#blog#sharing

Admin link controlled by environment variable

Improvement

The Admin nav button is now hidden by default. Set NEXT_PUBLIC_SHOW_ADMIN=true in your environment to reveal it.

July 17, 2025#admin#config

Maintenance mode banner

Feature

Operators can flip NEXT_PUBLIC_MAINTENANCE_MODE=true to show a friendly overlay banner site-wide without blocking browsing.

July 16, 2025#ops#config

Single-place backend URL config

Dev Experience

The DataWeave compiler backend URL is now controlled by DWL_BACKEND_URL in .env.local. Change one env var to switch between local Docker, staging, or production — no code edits needed.

July 16, 2025#config#dx

Apache 2.0 license footer

Improvement

A global footer now appears on every page stating the project's open-source Apache 2.0 license.

July 16, 2025#legal

Dashboard stats scoped to authenticated user

Bug Fix

Solved, Attempted, and Bookmarked counts on the home dashboard were previously returning global aggregates. They are now correctly filtered to the signed-in user's data only.

July 15, 2025#dashboard#auth

Bookmarks scoped per user

Bug Fix

Bookmarks now store a userId field and enforce a compound unique index on {problemId, userId}. The API routes require authentication and return only the calling user's bookmarks.

July 15, 2025#bookmarks#auth

Guest progress migration on sign-in

Feature

Accepted solves made as a guest are persisted to localStorage and silently migrated to the user's account on first authenticated dashboard load.

July 15, 2025#guest#onboarding