• react
  • javascript
  • productivity
  • webdev

- cleaning

A clean workspace is more than just a luxury — it’s a productivity booster. Whether you're running a small business or working from home, staying organized can be a challenge. In this post, we’ll learn how to build a Clean Office Reminder App using React, and we’ll also explore why cleanliness is vital in the modern office.

Why Cleanliness Matters in the Workplace

Before we jump into code, let's talk about why this app is useful.

An organized workspace can:

  • Reduce stress and distractions
  • Improve focus and mental clarity
  • Decrease the spread of germs and illness
  • Enhance professional appearance, especially for client-facing businesses

Companies that take cleanliness seriously often rely on services like office Cleaning Chicago to keep everything spotless.

What We’re Building

We're creating a simple web app that:

  • Allows users to set recurring office cleaning reminders
  • Sends email or browser notifications
  • Offers tips and checklists for better cleaning habits
  • Is responsive and mobile-friendly

Let’s dive into the tech!


Tools & Technologies

  • React (with Hooks)
  • TailwindCSS (for styling)
  • EmailJS (for sending email notifications)
  • LocalStorage (to save user preferences)
  • Optional: Node.js backend for advanced features (scheduling, multi-user support)

Initial Setup

npx create-react-app clean-office-reminder
cd clean-office-reminder
npm install tailwindcss emailjs-com

Configure Tailwind:

npx tailwindcss init -p

Add Tailwind directives to index.css:

@tailwind base;
@tailwind components;
@tailwind utilities;

Create a Reminder Form

Let’s start by making a simple form component.

// ReminderForm.jsx
import { useState } from "react";

function ReminderForm({ addReminder }) {
  const [time, setTime] = useState("");
  const [message, setMessage] = useState("");

  const handleSubmit = (e) => {
    e.preventDefault();
    addReminder({ time, message });
    setTime("");
    setMessage("");
  };

  return (
    <form onSubmit={handleSubmit} className="space-y-4 p-4 bg-white rounded shadow">
      <input
        type="time"
        value={time}
        onChange={(e) => setTime(e.target.value)}
        className="border p-2 w-full"
        required
      />
      <input
        type="text"
        placeholder="Reminder message"
        value={message}
        onChange={(e) => setMessage(e.target.value)}
        className="border p-2 w-full"
        required
      />
      <button type="submit" className="bg-blue-500 text-white px-4 py-2 rounded">
        Add Reminder
      button>
    form>
  );
}

export default ReminderForm;

Display Reminders

// ReminderList.jsx
function ReminderList({ reminders }) {
  return (
    <ul className="mt-4 space-y-2">
      {reminders.map((reminder, index) => (
        <li key={index} className="p-2 border rounded bg-gray-50">
          <strong>{reminder.time}strong>: {reminder.message}
        li>
      ))}
    ul>
  );
}

export default ReminderList;

Main App Component

// App.jsx
import { useState, useEffect } from "react";
import ReminderForm from "./ReminderForm";
import ReminderList from "./ReminderList";

function App() {
  const [reminders, setReminders] = useState(() => {
    const stored = localStorage.getItem("reminders");
    return stored ? JSON.parse(stored) : [];
  });

  const addReminder = (reminder) => {
    const updated = [...reminders, reminder];
    setReminders(updated);
    localStorage.setItem("reminders", JSON.stringify(updated));
  };

  return (
    <div className="max-w-md mx-auto p-6">
      <h1 className="text-2xl font-bold mb-4">Clean Office Reminder Apph1>
      <ReminderForm addReminder={addReminder} />
      <ReminderList reminders={reminders} />
    div>
  );
}

export default App;

Optional: Email Notifications

If you want to send email notifications, you can use EmailJS. Create an account, get your user ID and service/template IDs, and then:

npm install emailjs-com

Then integrate it into your form’s submit logic.


Hosting the App

You can deploy this app easily with platforms like Vercel, Netlify, or GitHub Pages.

npm run build

Keep It Clean

Make sure to also keep your physical office space clean. Digital reminders help, but regular maintenance and routine sanitation are key to long-term productivity.


Final Thoughts

By integrating technology and cleanliness, you're investing in both efficiency and wellness. This simple app can serve as a daily nudge to tidy up, clean surfaces, empty trash bins, and disinfect shared areas.

Whether you manage a startup or work from a home office, taking just 10 minutes a day to organize your space can have a huge impact.


Happy coding — and stay clean!