Made with Cascade Windsurf πββοΈ
A modern markdown notes application designed for seamless note-taking and organization. Experience it live at rethinknotes.vercel.app
- Real-time Markdown Preview: See your formatting come to life as you type
- PDF Export: Convert your notes to professional PDFs with a click
- Secure Authentication: Keep your notes private and secure
- Cloud Sync: Access your notes from any device, anytime
- Version History: Track changes to your notes over time
- Modern UI: Clean, intuitive interface with custom design system
- Responsive Design: Works seamlessly on desktop and mobile
- Dark/Light Mode: Easy on the eyes, day or night
- Keyboard Shortcuts: Boost your productivity
- Rich Text Support: Tables, code blocks, and more
- Framework: Flask with SQLAlchemy ORM
- Database:
- Production: PostgreSQL on Supabase
- Development: SQLite
- Security:
- Werkzeug password hashing
- Session-based authentication
- CSRF protection
- Core Libraries:
markdown2
: Markdown parsingpython-dotenv
: Environment managementmarkdown-pdf
: PDF generation
- Core: HTML5, CSS3, JavaScript
- Design: Custom component system
- Features:
- Real-time preview
- Responsive layouts
- Dark mode support
- Hosting: Vercel
- CI/CD: Automatic deployments
- Version Control: Git
- Python 3.8+
- Git
- A text editor (VS Code recommended)
-
Clone & Navigate:
git clone https://github.com/yourusername/ReThink.git cd ReThink
-
Set Up Environment:
python -m venv venv venv\Scripts\activate # Windows # For Unix/macOS: source venv/bin/activate pip install -r requirements.txt
-
Configure Environment:
cp .env.example .env # Required settings in .env: # SECRET_KEY=your-secret-key # DATABASE_URL=postgresql://... (for production)
-
Initialize & Run:
flask db upgrade # Set up database python app.py # Start server # Visit http://localhost:5000
We welcome contributions! Here's how you can help make ReThink Notes better.
-
Fork & Clone:
- Fork the repository on GitHub
- Clone your fork locally
-
Branch: Create a branch following our naming convention:
git checkout -b your_name-type/description # Examples: # dishant-feature/markdown-tables # dishant-fix/pdf-export-bug # dishant-docs/api-documentation
-
Develop:
- Write clean, commented code
- Follow style guidelines
- Add tests for new features
- Update documentation
-
Commit:
git add . git commit -m "feat: add markdown table support" # Use conventional commits: # feat: new feature # fix: bug fix # docs: documentation # style: formatting # refactor: code restructure
-
Push & PR:
git push origin type/description # Open a Pull Request on GitHub
feature/*
: New features or enhancementsfix/*
: Bug fixes and patchesdocs/*
: Documentation updatesstyle/*
: Code style/formatting changesrefactor/*
: Code improvementstest/*
: Test additions/updates
- Follow PEP 8 for Python
- Use meaningful variable and function names
- Comment complex logic
- Keep functions focused and small
- Write tests for new features
- Update documentation for API changes
ReThink Notes supports rich HTML styling within markdown for beautiful document formatting. Here's your complete styling guide:
<!-- Text Alignment -->
<div class="text-center">Centered Text</div>
<div class="text-right">Right-aligned Text</div>
<!-- Text Sizes -->
<div class="text-sm">Small Text</div>
<div class="text-lg">Large Text</div>
<div class="text-xl">Extra Large Text</div>
<div class="text-2xl">2X Large Text</div>
<!-- Text Styles -->
<div class="font-bold">Bold Text</div>
<div class="font-light">Light Text</div>
<div class="italic">Italic Text</div>
<!-- Text Colors -->
<div class="text-primary">Primary Color</div>
<div class="text-secondary">Secondary Color</div>
<div class="text-success">Success Color</div>
<div class="text-warning">Warning Color</div>
<div class="text-error">Error Color</div>
<div class="text-gray">Gray Text</div>
<!-- Info Alert -->
<div class="alert alert-info">
Important information here!
</div>
<!-- Warning Alert -->
<div class="alert alert-warning">
Warning message here!
</div>
<!-- Success Alert -->
<div class="alert alert-success">
Success message here!
</div>
<!-- Error Alert -->
<div class="alert alert-error">
Error message here!
</div>
<!-- Card -->
<div class="card">
<h3>Card Title</h3>
<p>Card content goes here...</p>
</div>
<!-- Flex Container -->
<div class="flex-container">
<div>Column 1</div>
<div>Column 2</div>
</div>
<!-- Vertical Flex -->
<div class="flex-container flex-col">
<div>Row 1</div>
<div>Row 2</div>
</div>
<!-- Grid Container -->
<div class="grid-container">
<div>Grid Item 1</div>
<div>Grid Item 2</div>
<div>Grid Item 3</div>
</div>
<!-- Spacing -->
<div class="mt-1">Margin Top 0.5em</div>
<div class="mb-2">Margin Bottom 1em</div>
<div class="mt-4">Margin Top 2em</div>
<!-- Checklist -->
<ul class="checklist">
<li>Checked item 1</li>
<li>Checked item 2</li>
</ul>
<!-- Gradient Divider -->
<hr class="divider">
<!-- Badge -->
<span class="badge">New</span>
<!-- Special Quote -->
<blockquote class="quote-special">
A beautifully styled quote with decorative quotation mark
</blockquote>
<!-- Striped Table -->
<table class="table-striped">
<tr><th>Header 1</th><th>Header 2</th></tr>
<tr><td>Data 1</td><td>Data 2</td></tr>
</table>
<!-- Bordered Table -->
<table class="table-bordered">
<tr><th>Header 1</th><th>Header 2</th></tr>
<tr><td>Data 1</td><td>Data 2</td></tr>
</table>
<!-- Dark Theme Code Window -->
<div class="code-window">
<code>
function hello() {
console.log("Hello, World!");
}
</code>
</div>
<!-- Rounded Image -->
<img src="image.jpg" class="img-rounded">
<!-- Circular Image -->
<img src="image.jpg" class="img-circle">
<!-- Shadowed Image -->
<img src="image.jpg" class="img-shadow">
<!-- Bordered Image -->
<img src="image.jpg" class="img-border">
<!-- Page Breaks -->
<div class="page-break-before">Starts on new page</div>
<div class="page-break-after">Next content on new page</div>
<!-- Hide from Print -->
<div class="no-print">Only visible on screen</div>
<div class="bg-light">Light Background</div>
<div class="bg-primary">Primary Background</div>
<div class="bg-secondary">Secondary Background</div>
<div class="bg-success">Success Background</div>
<div class="bg-warning">Warning Background</div>
<div class="bg-error">Error Background</div>
You can combine multiple classes for complex styling:
<div class="card text-center bg-light mb-2">
<h3 class="text-xl font-bold text-primary">
Beautiful Heading
</h3>
<p class="text-gray">
Content with custom styling
</p>
</div>
These styles are optimized for both screen viewing and PDF export. Use them to create beautiful, professional documents!
All rights reserved.
Built with β€ by the ReThink team