AlgoBreath is a modern, markdown-based note-taking web application built with Remix and deployed on Cloudflare Pages. It offers seamless creation, management, and organization of notes with robust tagging functionality.
- Markdown Support: Write and preview notes in markdown with syntax highlighting and LaTeX support.
- Tagging System: Organize notes using tags for easy categorization and retrieval.
- Admin Dashboard: Manage notes and tags through an intuitive administrative interface.
- Responsive Design: Optimized for all devices using Tailwind CSS and DaisyUI.
- SEO Optimized: Automatically generated sitemap and meta tags for improved search engine visibility.
- Cloudflare Integration: Leveraging Cloudflare Workers and D1 for a performant and scalable backend.
- Framework: Remix
- Frontend: React
- Styling: Tailwind CSS with DaisyUI
- Type Checking: TypeScript
- Syntax Highlighting: Highlight.js
- Mathematical Notation: KaTeX
- Backend: Cloudflare Workers with D1 Database
- Deployment: Cloudflare Pages
- Linting: ESLint with TypeScript ESLint
- Node.js (v18 or higher)
- npm
- Cloudflare Account with Workers and Pages enabled
-
Clone the repository:
git clone https://github.com/yourusername/algobreath.git cd algobreath -
Install dependencies:
npm install
-
Configure Environment Variables:
Create a
.envfile in the root directory and add the following:WORKER_HOST=your_worker_host_url DB=your_d1_database_url
AlgoBreath uses Wrangler to emulate the Cloudflare runtime locally.
-
Start the development server:
npm run dev
-
Access the application:
Open http://127.0.0.1:8788 in your browser.
-
Build the application:
npm run build
-
Start the development server:
npm run dev
-
Lint the codebase:
npm run lint
-
Type check:
npm run typecheck
-
Deploy to Cloudflare Pages:
npm run pages:deploy
AlgoBreath is deployed on Cloudflare Pages. To deploy your changes:
-
Build the application:
npm run build
-
Deploy using Wrangler:
npm run pages:deploy
Ensure your Cloudflare account is properly configured with the necessary environment variables.
app/: Contains all frontend and server-side code.routes/: Defines all application routes.models/: Handles data fetching and manipulation.utils/: Utility functions like markdown parsing.styles/: Tailwind CSS configurations and styles.
public/: Static assets like images and manifest files.server.ts: Entry point for the Cloudflare Workers server..gitignore: Specifies intentionally untracked files to ignore.package.json: Project metadata and dependencies.tailwind.config.ts: Tailwind CSS configuration.tsconfig.json: TypeScript configuration.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
-
Fork the repository
-
Create a new branch
git checkout -b feature/YourFeature
-
Commit your changes
git commit -m "Add some feature" -
Push to the branch
git push origin feature/YourFeature
-
Open a Pull Request
This project is licensed under the MIT License.
- Built with love using Remix, React, and Cloudflare.
- Inspired by modern web development best practices.