Print these mentally and don’t break them:
- One project = one day, max 3–5 hours, in a new branch
- No backend. No auth. No DB. No APIs.
- Local-only. No deployment.
- Static data only (hardcoded JSON or JS objects)
- Done > perfect
- Reuse your own components aggressively
If something doesn’t serve speed + clarity, it’s out.
→ React + Vite
Why:
- Fast dev server
- Minimal boilerplate
- Forces component thinking
- Industry-relevant but not overengineered
Template:
npm create vite@latest daily-site -- --template reactNo Next.js. No SSR. No routing libraries.
Pick ONE and do not change it mid-challenge.
Best for speed + consistency.
Rules if using Tailwind:
- No custom CSS files unless absolutely necessary
- Use utility classes only
- Create reusable components instead of repeating class soup
Alternative if you hate Tailwind:
- Vanilla CSS + CSS Modules
- But Tailwind is faster for this challenge
→ React useState and useEffect only
Rules:
- No Redux
- No Zustand
- No Context unless unavoidable
This is a UI challenge, not state architecture practice.
Static JS object or JSON file
Example:
const business = {
name: "Green Leaf Café",
tagline: "Fresh. Local. Simple.",
services: ["Coffee", "Brunch", "Pastries"],
hours: "Mon–Sat 8am–4pm",
}No fetching. No async unless faking loading states.
This prevents decision fatigue.
src/
components/
Header.jsx
Hero.jsx
Services.jsx
About.jsx
Contact.jsx
Footer.jsx
data/
business.js
App.jsx
main.jsxRules:
- Same structure every day
- Same section names
- Only content and layout change
This is deliberate muscle memory training.
Every website should include exactly this:
-
Hero section
- Business name
- Tagline
- Call to action
-
Services / Offerings
- 3–6 items
-
About section
- Short paragraph
-
Contact / CTA
- Fake phone/email
- Fake location
-
Footer
- Business name + year
No blogs. No galleries. No booking systems.
Day X
- 15 min – Pick random business & rough vibe
- 30 min – Layout + structure
- 90 min – Styling & components
- 30 min – Polish (spacing, typography)
- 15 min – Review & stop
When time’s up, you STOP—even if it’s ugly.
To avoid analysis paralysis:
-
Pick businesses from:
- Google Maps random city
- Yelp categories
- Walk around your city mentally
Examples:
- Local plumber
- Nail salon
- Dentist
- Yoga studio
- Auto repair shop
- Landscaping company
- Pet grooming
- Small bakery
- Cleaning service
No startups. No SaaS. No personal portfolios.
Each day:
- One font family
- One primary color
- One accent color
- Light mode only
Use:
- Google Fonts (Inter, Poppins, Montserrat, Playfair)
- No font pairing experiments unless you reuse a previous combo
- VS Code
- ESLint (default)
- Prettier
- Browser DevTools
No design tools. No Figma. No Notion.
This challenge trains:
- Visual hierarchy
- Spacing intuition
- Component abstraction
- Speed under constraints
- Knowing when something is “good enough”
Not:
- Architecture
- Scalability
- Backend thinking
