Rescent is a web app designed for olfactory training and smell recovery.
Name meaning: Rescent is a wordplay combining Re (to return/recover) + Scent (aroma), representing the journey to regain your sense of smell.
- π― Guided olfactory training with 4 essential scents
- β±οΈ Structured sessions: 60s stimulation + 30s sniffing
- π± Mobile-first design (feels like a native app)
- π Dark mode for comfortable viewing
- πΌοΈ Immersive visual design with curated imagery
- β¨ Smooth view transitions between pages
- π 3-phase training method based on neuroplasticity
- Framework: Astro 4.x
- Styling: Tailwind CSS
- Interactivity: React (Islands)
- Transitions: Astro View Transitions
- Deploy: GitHub Pages + GitHub Actions
npm installnpm run devThe app will be available at http://localhost:4321
npm run build
npm run previewThis app is configured for automatic deployment to GitHub Pages.
Read DEPLOY.md for step-by-step instructions.
Check DEPLOY_COMMANDS.md for copy-paste commands.
# Make script executable (first time only)
chmod +x deploy.sh
# Deploy with one command
./deploy.sh "Your commit message"Live URL: https://joaquin021.github.io/rescent/
rescent/
βββ public/
β βββ favicon.svg
βββ src/
β βββ components/
β β βββ TrainingSession.jsx # React component with timer logic
β βββ data/
β β βββ aromas.json # Aroma database
β βββ layouts/
β β βββ Layout.astro # Base layout
β βββ pages/
β β βββ index.astro # Home page with grid
β β βββ train/
β β βββ [id].astro # Dynamic training page
β βββ styles/
β βββ global.css # Global Tailwind styles
βββ .github/
β βββ workflows/
β βββ deploy.yml # GitHub Actions workflow
βββ astro.config.mjs
βββ tailwind.config.mjs
βββ package.json
The app includes training sessions for 4 scientifically-selected scents:
| Scent | Category | Purpose |
|---|---|---|
| π Orange | Citrus | Energizing, sharp, acidic |
| πΏ Eucalyptus | Medicinal | Cooling, penetrating, menthol |
| πΊ Geranium | Floral | Sweet, herbaceous, powdery |
| π Cinnamon | Spicy | Warm, woody, comforting |
- View curated images
- Read sensory adjectives
- Read evocative descriptions
- Reflect on episodic memory questions
- Do NOT smell yet - prepare your mind first
- Visual cue: "Smell Now!"
- Take short, gentle sniffs (not deep breaths)
- Focus on the sensations
- Session summary
- Options to repeat or return to menu
This app follows the olfactory training method based on neuroplasticity research:
- Frequency: 2 times per day
- Duration: Minimum 3 months
- Method: Episodic memory activation before smelling
- Breathing: Short, gentle sniffs (not deep inhalations)
Studies show that combining visual stimuli, memory recall, and consistent practice can help recover smell loss (anosmia/hyposmia) caused by various conditions.
Add Rescent to your home screen for a native app experience:
iOS (Safari):
- Tap the share icon
- Select "Add to Home Screen"
Android (Chrome):
- Menu (3 dots) β "Add to Home screen"
Edit src/data/aromas.json to modify:
- Images (Unsplash URLs)
- Adjectives
- Evocative texts
- Questions
Edit src/components/TrainingSession.jsx (lines 4-7):
const PHASE_DURATIONS = {
STIMULATION: 60, // Change this
ACTION: 30, // Change this
};Edit tailwind.config.mjs (lines 6-26) for custom color palette.
- Mobile: Vertical layout, touch-optimized
- Desktop: Split-screen immersive experience
- Breakpoints: Fully responsive from 375px to 2560px+
MIT License - Free to use and modify
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve translations
This app was created to help people recovering from smell loss (anosmia) through structured olfactory training, combining modern web technologies with evidence-based therapeutic techniques.
Rescent = Recovering your sense of scent πΈ
Built with β€οΈ using Astro, React, and Tailwind CSS