An interactive Next.js demonstration showcasing QuikDB's always-on reliability and fault tolerance. Built for Vercel deployment with a single-page, no-scroll design.
This demo runs a simulated always-on job that:
- Executes every 10 seconds
- Continues running even when nodes fail
- Auto-recovers from failures
- Never misses a beat
- Node.js 16+ installed
- Yarn package manager
- A modern web browser
# Install dependencies
yarn install
# Start development server
yarn devVisit http://localhost:3000
# Build the application
yarn build
# Start production server
yarn start# Install Vercel CLI
yarn global add vercel
# Deploy
vercel- Real-time uptime counter - Shows how long the job has been running
- Execution count - Total number of successful job runs
- Failed runs - Always zero (because QuikDB doesn't fail)
- Active replicas - Current number of running nodes
- Last failure time - When the last node dropped (if any)
- Shows every job execution in real-time
- Displays node failures and recoveries
- Updates every 10 seconds
- Logs are color-coded for easy scanning
The big red button lets visitors:
- Disconnect a node from the system
- Watch the job continue running
- See the node automatically recover after 30 seconds
This proves the fault tolerance in action.
Shows all 3 replica nodes and their current status (active/disconnected)
The demo follows key principles:
- Uses plain language
- No buzzwords like "distributed" or "decentralized"
- Focuses on outcomes, not architecture
- Big, readable text
- Clean dark theme optimized for display screens
- Color-coded status indicators
- Visitors understand it without explanation
- Creates natural curiosity
- Prompts the question: "How?"
-
Large Display
- Use the biggest screen available
- Full-screen the browser (F11)
- Disable sleep mode
-
Placement
- High-traffic area
- Eye-level positioning
- Near your booth/table
-
Let It Run
- Start it in the morning
- Let the uptime counter grow
- Don't restart unnecessarily
When people stop to look:
Opening line:
"QuikDB runs background work on an always-on network so it keeps going even when machines fail."
Follow-up question:
"Do you run anything that can't afford to stop?"
Call to action:
"Want to try running one of your jobs on it?"
- Framework: Next.js 14 (App Router)
- Styling: CSS with global styles
- API: Next.js API Routes with polling
- Deployment: Optimized for Vercel serverless
quikdb-demo/
βββ app/
β βββ layout.tsx # Root layout
β βββ page.tsx # Main demo page (client component)
β βββ globals.css # Global styles
β βββ api/
β βββ stats/
β βββ route.ts # API endpoint for stats
βββ next.config.js
βββ tsconfig.json
βββ vercel.json
βββ package.json
βββ README.md
- Server State: API route maintains job state in memory
- Polling: Client polls
/api/statsevery 2 seconds - Simulation: Job executions happen every 10 seconds
- Auto-recovery: Disconnected nodes recover after 30 seconds
Note: Server state resets on each deployment. This is intentional for demo purposes.
A large headline: "THIS JOB HAS BEEN RUNNING ALL DAY"
Live stats showing uptime, executions, and node status
Feed showing jobs executing every 10 seconds
Big button inviting them to "try to break it"
They press the button, see a node disconnect, watch the job continue running
They ask: "What is this?" or "How does this work?"
Track these to measure demo effectiveness:
- Number of times "break" button is pressed
- Time visitors spend watching the feed
- Number of conversations started
- Follow-up questions about QuikDB
Development server won't start:
- Make sure you're using Node.js 16+
- Delete
.nextfolder and try again - Run
yarn installto ensure dependencies are installed
Stats not updating:
- Check browser console for errors
- Verify the API route is accessible at
/api/stats - Check Network tab for failed requests
Button doesn't work:
- Check if a node is already disconnected
- Wait for previous recovery to complete
- Check API response in Network tab
Build fails:
- Run
yarn installto update dependencies - Check for TypeScript errors
- Clear
.nextfolder and rebuild
MIT
This is a demo application. For production QuikDB integration, see the main QuikDB documentation.
Built to demonstrate QuikDB's always-on reliability