Skip to content

mathewlewallen/No_Tools_Experiment.ae

Repository files navigation

Markdown Collaboration Platform

A lightweight, file-based markdown editor and collaboration platform built using minimal tooling and standard file formats. This project demonstrates how to build a functional SaaS application with simple technologies.

Overview

This project is a Markdown Editor and collaboration platform that allows users to:

  • Create, edit, and save markdown documents
  • Track document history using Git
  • Toggle between light and dark themes
  • Work offline with service worker support
  • Store user data and documents in a structured way
  • Collaborate on documents (multi-user support)

🚀 Quick Start

  1. Clone the repository

    git clone https://github.com/yourusername/markdown-editor.git
    cd markdown-editor
  2. Start the application

    make start
  3. Access the application Open your browser and navigate to: http://localhost:3000

📋 Requirements

  • Python 3.6+
  • Git
  • Bash shell (or Git Bash on Windows)
  • Web browser with JavaScript enabled

📁 Project Structure

markdown-editor/
├── data/             # Data storage directory
│   └── docs/         # User documents
├── public/           # Static web assets
│   ├── app.js        # Application JavaScript
│   ├── index.html    # Main HTML
│   ├── styles.css    # CSS styles
│   └── ...           # Other assets
├── scripts/          # Shell scripts
│   ├── start.sh      # Cross-platform starter
│   └── backup.sh     # Backup utility
├── .vscode/          # VS Code configuration
├── .cursor/          # Cursor IDE configuration
├── Makefile          # Command shortcuts
└── .env              # Environment configuration

🔧 Development Setup

This project includes configurations for both VS Code and Cursor to ensure consistent development across different environments.

VS Code Setup

The .vscode directory contains configurations for VS Code:

  • settings.json: Editor settings
  • extensions.json: Recommended extensions
  • launch.json: Debug configurations

Cursor Setup

The .cursor directory contains settings specific to the Cursor IDE.

Environment Configuration

The .env file contains configuration parameters:

  • PORT: HTTP server port (default: 3000)
  • HOST: Server host (default: 0.0.0.0)
  • DEBUG: Debug mode toggle
  • DOCS_DIR: Document storage location
  • DB_PATH: SQLite database path

🛠️ Available Commands

The Makefile provides convenient commands:

  • make start: Start the application server
  • make stop: Stop the running server
  • make restart: Restart the application server
  • make clean: Clean temporary files
  • make backup: Create a backup of user data
  • make setup: Set up the application environment
  • make help: Display available commands

🌐 Offline Support

The application includes a service worker that enables offline functionality. Once you've visited the site while online, many features will continue to work without an internet connection.

🔄 Cross-Platform Compatibility

The application is designed to work across different operating systems:

  • macOS
  • Linux
  • Windows (using Git Bash or similar)

🔒 Security Considerations

  • This is a demonstration project and not production-ready
  • User authentication is simplified for demonstration purposes
  • Data is stored locally without encryption

📝 Document Versioning Architecture

This application uses Git for document versioning in a specific way:

  • Project Repository: Contains application code, configuration, and structure
  • User Document Repositories: Each user's documents are versioned in their own separate Git repository
    • Located in data/docs/user_X/ where X is the user ID
    • Each document edit creates a commit with metadata stored in the database
    • Document history can be viewed through the UI or Git directly

This two-level Git architecture allows for clean separation between application code and user content, while still providing robust versioning capabilities for documents.

📚 File "Stack"

Storage

  • .git: Document versioning and history
  • .json/.csv: Structured data
  • .sqlite: Relational database

Logic

  • .sh: Automation and server scripts
  • .html + .wasm: Frontend execution

User Interface

  • .html: Frontend structure
  • .md: Content storage

Event Logging & Analytics

  • .log: History tracking
  • .bash_history: Task replay

Backup & Distribution

  • .tar: Data packaging
  • .git: Cloud storage/distribution

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

This is an experiment to only use code and no tools to build a full stack SaaS.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors