urBackend Landing Page — GitHub Issues
Issue 1 — Landing Page: Structure, Copy & Layout (No Animations)
Labels: good-first-issue, frontend, nsoc
Difficulty: Intermediate
Estimated time: 4–6 hours
What this is
Rebuild the urBackend landing page from scratch with a world-class developer aesthetic. This issue covers structure, content, and static layout only — no animations yet (that's Issue 2).
Design references
Study these before starting:
Theme
- Background:
#000000 / #0A0A0A
- Text primary:
#FFFFFF
- Text secondary:
#A1A1AA
- Borders:
rgba(255,255,255,0.08)
- Accent:
#3B82F6 (blue) for CTAs and glows
- Font: Inter or Geist (already in project or import from Google Fonts)
Section 1 — Hero
Headline (large, tight letter-spacing):
Your MongoDB.
Instant Backend.
Zero Boilerplate.
Keyword "Instant Backend" should have a subtle blue text gradient.
Subtext (below headline, #A1A1AA):
Auth, APIs, storage, webhooks — all in 60 seconds.
Your data stays in your Atlas cluster. Always.
CTAs:
- Primary button: "Start Building Free" →
/signup — solid white bg, dark text
- Secondary button: "View Docs" →
https://docs.urbackend.bitbros.in — ghost button, 1px white border
Hero visual (right side or below on mobile):
A mock macOS-style window (dark, rounded corners, 3 traffic light dots top-left).
Split view inside the window:
- Left panel label: "Schema (MongoDB)"
{
"name": "String",
"email": "String",
"age": "Number",
"isActive": "Boolean"
}
- Right panel label: "Generated API"
GET /api/data/users
POST /api/data/users
PUT /api/data/users/:id
DELETE /api/data/users/:id
Both panels have dark backgrounds, monospace font, subtle syntax colors.
Section 2 — Tech stack marquee
Text above: Works with your favorite stack
Logos (monochrome/white, small, horizontal row, infinite scroll or static grid):
React, Next.js, Vue, Flutter, iOS, Android, Node.js, Python, Java
Use simple SVG logos or lucide-react icons where available. Keep them white/gray, no colors.
Section 3 — How it works (3 steps)
Layout: 3 cards in a row, connected by a subtle dotted line between them.
Step 1 — Connect
Icon: database (lucide)
Title: "Bring your MongoDB"
Text: "Connect your existing Atlas cluster or use ours. AES-256-GCM encrypted. Your data never leaves your cluster."
Step 2 — Configure
Icon: sliders (lucide)
Title: "Define schema & rules"
Text: "Build collections visually. Set field types, relationships, RLS rules, and RBAC — all from the dashboard."
Step 3 — Consume
Icon: zap (lucide)
Title: "Get instant APIs"
Text: "Your REST API is live. Auth, storage, webhooks — all included. Ship your frontend today."
Section 4 — Features Bento Grid
Layout: Bento grid — cards of varying sizes. Use CSS grid.
Suggested layout (desktop):
[ Auth — large ] [ Storage — small ]
[ Database — small] [ Webhooks — large ]
Card: Auth & Security
Icon: shield (lucide)
Title: "Auth that just works"
Text: "Email, Google, GitHub OAuth. JWT + rotating refresh tokens. RLS per collection. Row-level ownership out of the box."
Size: Large (span 2 cols)
Card: Database
Icon: database (lucide)
Title: "MongoDB-native CRUD"
Text: "Visual schema builder. Relationships. Advanced filters. Aggregations. Your Atlas, our API layer."
Size: Normal
Card: Storage
Icon: hard-drive (lucide)
Title: "File storage"
Text: "Upload files, get CDN URLs. Bring your own S3 or R2 bucket. AES-256-GCM encrypted credentials."
Size: Normal
Card: Webhooks
Icon: webhook (lucide)
Title: "Webhooks + realtime"
Text: "HMAC-signed event delivery. BullMQ retry. Insert, update, delete triggers. Delivery logs in dashboard."
Size: Large (span 2 cols)
Card style:
- Background:
#111111
- Border:
1px solid rgba(255,255,255,0.08)
- Icon glow on hover:
box-shadow: 0 0 20px rgba(59,130,246,0.3)
- Border radius: 12px
Section 5 — SDK Code Snippet
Layout: 50/50 split on desktop, stacked on mobile.
Left side — copy:
Title: "Ship faster with the official SDK"
Text: "Five lines to get all your users. No fetch, no headers, no boilerplate. TypeScript types auto-generated from your schema."
Link: "npm install @urbackend/sdk →"
Right side — code block:
Dark background (#0D0D0D), monospace, syntax highlighted manually with spans or a lightweight lib.
import urBackend from '@urbackend/sdk';
const client = urBackend({ apiKey: 'pk_live_...' });
// Get all users
const users = await client.db
.collection('users')
.where('isActive', true)
.sort('createdAt', 'desc')
.limit(10)
.get<User>();
Section 6 — Pricing
Layout: 2 cards side by side, centered. Pro card has a glowing blue border.
Free card:
- Badge: "Sandbox"
- Price: $0 / forever
- Subtext: "Perfect for learning and prototyping"
- Features list:
- 1 project
- 5,000 API requests / day
- 50MB storage · 100MB MongoDB
- 1,000 auth users
- Email + Social auth
- Basic webhooks (100/month)
- Community support
- CTA: "Start Free" (ghost button)
Pro card:
- Badge: "Most Popular" (blue pill)
- Price: $9 / month
- Subtext: "First month free — no credit card needed"
- Small text: "Request via DM or dashboard"
- Features list:
- 10 projects
- BYOM — connect your own Atlas
- BYOS — S3 / Cloudflare R2
- BYOK mail (Resend / SendGrid)
- Unlimited auth users
- Full webhook retry + 1,000/month
- Advanced analytics
- Priority support
- CTA: "Get 1 Month Free" (solid white button, dark text)
- Border:
1px solid rgba(59,130,246,0.5) with glow
Section 7 — FAQ (Static accordion, no animation yet)
Use a simple show/hide toggle with useState. Framer-motion animation will be added in Issue 2.
Questions:
-
Is urBackend really open source?
Yes — AGPL-3.0. Self-host forever free. The cloud is optional convenience.
-
Does my data go through urBackend servers?
No. With BYOM, your data goes directly to your Atlas cluster. urBackend only handles the API layer.
-
What happens when I hit the free tier limit?
Requests return a 429 with a clear message. No data loss, no service interruption — just upgrade.
-
Can I self-host urBackend?
Yes. Docker Compose setup is included. Full self-hosting docs at docs.urbackend.bitbros.in.
-
What databases does urBackend support?
MongoDB only — and intentionally so. We go deep on MongoDB instead of shallow on everything.
Section 8 — Footer
Minimal. Dark, 1px top border.
Left: urBackend logo + tagline: "We never own your data."
Links:
- Product: Docs, Changelog, Status
- Community: Discord, GitHub, Twitter/X
- Legal: License (AGPL-3.0), Privacy
Contributor checklist
Issue 2 — Landing Page: Animations & Micro-interactions
Labels: frontend, nsoc, depends-on: Issue 1
Difficulty: Advanced
Estimated time: 3–4 hours
Depends on: Issue 1 must be merged first
What this is
Add scroll-triggered animations and micro-interactions to the landing page built in Issue 1.
Requirements
Install framer-motion (if not already in project):
npm install framer-motion --workspace=web-dashboard
Animations to add:
-
Hero section — fade in + slight upward slide on page load
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, ease: "easeOut" }}
-
How it works — 3 cards — staggered fade in when scrolled into view
// Each card delays by 0.1s × index
transition={{ delay: index * 0.1 }}
-
Bento grid cards — fade in staggered on scroll
Same pattern as above.
-
FAQ accordion — smooth height animation on open/close
Use AnimatePresence + motion.div with height: "auto".
-
Bento card hover glow — CSS only, no framer-motion:
transition: box-shadow 0.2s ease;
&:hover { box-shadow: 0 0 24px rgba(59,130,246,0.25); }
-
Hero mock window — subtle floating animation (slow, not bouncy):
animate={{ y: [0, -6, 0] }}
transition={{ duration: 4, repeat: Infinity, ease: "easeInOut" }}
Checklist
Issue 3 — Landing Page: Hero Visual (Mock Dashboard Window)
Labels: frontend, nsoc, depends-on: Issue 1
Difficulty: Intermediate
Estimated time: 2–3 hours
Depends on: Issue 1 must be merged first
What this is
Build the hero section's mock dashboard window as a standalone React component.
Component: <MockDashboardWindow />
File location: apps/web-dashboard/src/components/MockDashboardWindow.jsx
Visual spec:
- macOS-style window chrome — dark rounded rect, 3 traffic light dots (red
#FF5F57, yellow #FFBD2E, green #28C840) top-left, window title center: "urBackend Dashboard"
- Split panel inside:
- Left panel — "Schema" label, dark bg, JSON content in monospace
- Right panel — "API Endpoints" label, dark bg, endpoint list in monospace
- Subtle inner border:
1px solid rgba(255,255,255,0.06)
- Optional: a thin animated "cursor blink" in the left panel to make it feel live
Content:
Left panel:
{
"name": "String",
"email": "String",
"role": "String",
"createdAt": "Date"
}
Right panel:
GET /api/data/users
POST /api/data/users
PUT /api/data/users/:id
DELETE /api/data/users/:id
Color scheme for syntax:
- Keys:
#7DD3FC (blue-300)
- String values:
#86EFAC (green-300)
- HTTP methods: GET
#86EFAC, POST #FDE68A, PUT #FCA5A5, DELETE #FCA5A5
- Endpoint paths:
#E2E8F0
Checklist
urBackend Landing Page — GitHub Issues
Issue 1 — Landing Page: Structure, Copy & Layout (No Animations)
Labels:
good-first-issue,frontend,nsocDifficulty: Intermediate
Estimated time: 4–6 hours
What this is
Rebuild the urBackend landing page from scratch with a world-class developer aesthetic. This issue covers structure, content, and static layout only — no animations yet (that's Issue 2).
Design references
Study these before starting:
Theme
#000000/#0A0A0A#FFFFFF#A1A1AArgba(255,255,255,0.08)#3B82F6(blue) for CTAs and glowsSection 1 — Hero
Headline (large, tight letter-spacing):
Keyword "Instant Backend" should have a subtle blue text gradient.
Subtext (below headline, #A1A1AA):
CTAs:
/signup— solid white bg, dark texthttps://docs.urbackend.bitbros.in— ghost button, 1px white borderHero visual (right side or below on mobile):
A mock macOS-style window (dark, rounded corners, 3 traffic light dots top-left).
Split view inside the window:
{ "name": "String", "email": "String", "age": "Number", "isActive": "Boolean" }Both panels have dark backgrounds, monospace font, subtle syntax colors.
Section 2 — Tech stack marquee
Text above:
Works with your favorite stackLogos (monochrome/white, small, horizontal row, infinite scroll or static grid):
React, Next.js, Vue, Flutter, iOS, Android, Node.js, Python, Java
Use simple SVG logos or lucide-react icons where available. Keep them white/gray, no colors.
Section 3 — How it works (3 steps)
Layout: 3 cards in a row, connected by a subtle dotted line between them.
Step 1 — Connect
Icon: database (lucide)
Title: "Bring your MongoDB"
Text: "Connect your existing Atlas cluster or use ours. AES-256-GCM encrypted. Your data never leaves your cluster."
Step 2 — Configure
Icon: sliders (lucide)
Title: "Define schema & rules"
Text: "Build collections visually. Set field types, relationships, RLS rules, and RBAC — all from the dashboard."
Step 3 — Consume
Icon: zap (lucide)
Title: "Get instant APIs"
Text: "Your REST API is live. Auth, storage, webhooks — all included. Ship your frontend today."
Section 4 — Features Bento Grid
Layout: Bento grid — cards of varying sizes. Use CSS grid.
Suggested layout (desktop):
Card: Auth & Security
Icon: shield (lucide)
Title: "Auth that just works"
Text: "Email, Google, GitHub OAuth. JWT + rotating refresh tokens. RLS per collection. Row-level ownership out of the box."
Size: Large (span 2 cols)
Card: Database
Icon: database (lucide)
Title: "MongoDB-native CRUD"
Text: "Visual schema builder. Relationships. Advanced filters. Aggregations. Your Atlas, our API layer."
Size: Normal
Card: Storage
Icon: hard-drive (lucide)
Title: "File storage"
Text: "Upload files, get CDN URLs. Bring your own S3 or R2 bucket. AES-256-GCM encrypted credentials."
Size: Normal
Card: Webhooks
Icon: webhook (lucide)
Title: "Webhooks + realtime"
Text: "HMAC-signed event delivery. BullMQ retry. Insert, update, delete triggers. Delivery logs in dashboard."
Size: Large (span 2 cols)
Card style:
#1111111px solid rgba(255,255,255,0.08)box-shadow: 0 0 20px rgba(59,130,246,0.3)Section 5 — SDK Code Snippet
Layout: 50/50 split on desktop, stacked on mobile.
Left side — copy:
Title: "Ship faster with the official SDK"
Text: "Five lines to get all your users. No fetch, no headers, no boilerplate. TypeScript types auto-generated from your schema."
Link: "npm install @urbackend/sdk →"
Right side — code block:
Dark background (
#0D0D0D), monospace, syntax highlighted manually with spans or a lightweight lib.Section 6 — Pricing
Layout: 2 cards side by side, centered. Pro card has a glowing blue border.
Free card:
Pro card:
1px solid rgba(59,130,246,0.5)with glowSection 7 — FAQ (Static accordion, no animation yet)
Use a simple show/hide toggle with useState. Framer-motion animation will be added in Issue 2.
Questions:
Is urBackend really open source?
Yes — AGPL-3.0. Self-host forever free. The cloud is optional convenience.
Does my data go through urBackend servers?
No. With BYOM, your data goes directly to your Atlas cluster. urBackend only handles the API layer.
What happens when I hit the free tier limit?
Requests return a 429 with a clear message. No data loss, no service interruption — just upgrade.
Can I self-host urBackend?
Yes. Docker Compose setup is included. Full self-hosting docs at docs.urbackend.bitbros.in.
What databases does urBackend support?
MongoDB only — and intentionally so. We go deep on MongoDB instead of shallow on everything.
Section 8 — Footer
Minimal. Dark, 1px top border.
Left: urBackend logo + tagline: "We never own your data."
Links:
Contributor checklist
apps/web-dashboard/src/pages/LandingPage/index.jsxfrom scratch#000/#0A0A0Abg)npm run buildpasses with no errorsnpm run lintpassesIssue 2 — Landing Page: Animations & Micro-interactions
Labels:
frontend,nsoc,depends-on: Issue 1Difficulty: Advanced
Estimated time: 3–4 hours
Depends on: Issue 1 must be merged first
What this is
Add scroll-triggered animations and micro-interactions to the landing page built in Issue 1.
Requirements
Install framer-motion (if not already in project):
Animations to add:
Hero section — fade in + slight upward slide on page load
How it works — 3 cards — staggered fade in when scrolled into view
Bento grid cards — fade in staggered on scroll
Same pattern as above.
FAQ accordion — smooth height animation on open/close
Use
AnimatePresence+motion.divwithheight: "auto".Bento card hover glow — CSS only, no framer-motion:
Hero mock window — subtle floating animation (slow, not bouncy):
Checklist
whileInView)prefers-reduced-motionrespected — wrap all animations:Issue 3 — Landing Page: Hero Visual (Mock Dashboard Window)
Labels:
frontend,nsoc,depends-on: Issue 1Difficulty: Intermediate
Estimated time: 2–3 hours
Depends on: Issue 1 must be merged first
What this is
Build the hero section's mock dashboard window as a standalone React component.
Component:
<MockDashboardWindow />File location:
apps/web-dashboard/src/components/MockDashboardWindow.jsxVisual spec:
#FF5F57, yellow#FFBD2E, green#28C840) top-left, window title center: "urBackend Dashboard"1px solid rgba(255,255,255,0.06)Content:
Left panel:
{ "name": "String", "email": "String", "role": "String", "createdAt": "Date" }Right panel:
Color scheme for syntax:
#7DD3FC(blue-300)#86EFAC(green-300)#86EFAC, POST#FDE68A, PUT#FCA5A5, DELETE#FCA5A5#E2E8F0Checklist
LandingPage/index.jsxhero section