Skip to content

ibourgeois/nebula-terminal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Nebula Terminal

A modern, cross-platform terminal application built with Tauri, NuxtJS, and TailwindCSS. Nebula Terminal combines the power of Rust for system-level operations with the flexibility of Vue.js for a beautiful, responsive user interface.

๐Ÿš€ Tech Stack

  • Backend: Rust with Tauri 2.6.0
  • Frontend: NuxtJS 3.17.5 (Vue.js 3.5.17)
  • Styling: TailwindCSS 4.1.10
  • Terminal: xTerm.js (planned integration)
  • Database: SurrealDB (planned integration)
  • Build Tool: Vite
  • Package Manager: npm

โœจ Features

  • Cross-platform: Runs on Windows, macOS, and Linux
  • Modern UI: Beautiful gradient design with glassmorphism effects
  • Fast Performance: Rust backend for system operations
  • Responsive Design: TailwindCSS-powered responsive interface
  • Hot Reload: Instant development feedback with NuxtJS HMR
  • Type Safety: Full TypeScript support
  • Terminal Integration: xTerm.js for advanced terminal capabilities
  • Database Integration: SurrealDB for data persistence

๐Ÿ› ๏ธ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • Rust (latest stable version)
  • npm or yarn
  • Git

Installing Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Installing Node.js

Visit nodejs.org or use a version manager like nvm.

๐Ÿ“ฆ Installation

  1. Clone the repository

    git clone https://github.com/ibourgeois/nebula.git
    cd nebula
  2. Install dependencies

    # Install Node.js dependencies
    npm install
    
    # Install Rust dependencies (automatic on first build)
    cd src-tauri
    cargo build
    cd ..

๐Ÿš€ Development

Starting the Development Server

# Start NuxtJS dev server only
npm run dev

# Start Tauri with NuxtJS integration
cd src-tauri
cargo tauri dev

The application will be available at:

Development Workflow

  1. Frontend Changes: Edit Vue components in the root directory
  2. Backend Changes: Edit Rust code in src-tauri/src/
  3. Styling: Use TailwindCSS classes or edit assets/css/tailwind.css
  4. Configuration: Update nuxt.config.ts or src-tauri/tauri.conf.json

๐Ÿ—๏ธ Building

Web Build

# Build for production
npm run build

# Preview production build
npm run preview

Desktop Build

# Build desktop application
cd src-tauri
cargo tauri build

The built application will be available in src-tauri/target/release/.

๐Ÿงช Testing

Frontend Tests

# Run NuxtJS tests (when implemented)
npm run test

Backend Tests

# Run Rust unit tests
cd src-tauri
cargo test

๐Ÿ“ Project Structure

nebula/
โ”œโ”€โ”€ assets/
โ”‚   โ””โ”€โ”€ css/
โ”‚       โ””โ”€โ”€ tailwind.css          # TailwindCSS styles
โ”œโ”€โ”€ components/                   # Vue components
โ”œโ”€โ”€ layouts/                      # NuxtJS layouts
โ”œโ”€โ”€ pages/                        # NuxtJS pages
โ”œโ”€โ”€ public/                       # Static assets
โ”œโ”€โ”€ server/                       # Server-side code
โ”‚   โ””โ”€โ”€ tsconfig.json            # TypeScript config for server
โ”œโ”€โ”€ src-tauri/                    # Tauri backend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ lib.rs               # Rust library code with tests
โ”‚   โ”‚   โ””โ”€โ”€ main.rs              # Tauri main entry
โ”‚   โ”œโ”€โ”€ Cargo.toml               # Rust dependencies
โ”‚   โ”œโ”€โ”€ tauri.conf.json          # Tauri configuration
โ”‚   โ””โ”€โ”€ build.rs                 # Build script
โ”œโ”€โ”€ app.vue                      # Main Vue component
โ”œโ”€โ”€ nuxt.config.ts               # NuxtJS configuration
โ”œโ”€โ”€ tailwind.config.js           # TailwindCSS configuration
โ”œโ”€โ”€ package.json                 # Node.js dependencies
โ”œโ”€โ”€ tsconfig.json                # TypeScript configuration
โ””โ”€โ”€ README.md                    # This file

๐ŸŽจ Styling

The project uses TailwindCSS v4.1 for styling:

  • Configuration: tailwind.config.js
  • Custom Styles: assets/css/tailwind.css
  • Design System: Modern gradients, glassmorphism, responsive design

Key Design Features

  • Gradient Background: Blue to purple to indigo
  • Glassmorphism: Semi-transparent containers with backdrop blur
  • Responsive Typography: Mobile-first design approach
  • Dark Mode Ready: Compatible with system dark mode

๐Ÿ”ง Configuration

NuxtJS Configuration

Edit nuxt.config.ts to modify:

  • Build settings
  • CSS processing
  • PostCSS plugins
  • Development tools

Tauri Configuration

Edit src-tauri/tauri.conf.json to modify:

  • App metadata
  • Window settings
  • Build commands
  • Security policies

๐Ÿš€ Deployment

Web Deployment

The web version can be deployed to any static hosting service:

  • Vercel
  • Netlify
  • GitHub Pages
  • AWS S3

Desktop Distribution

Use Tauri's built-in distribution:

cd src-tauri
cargo tauri build --release

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Commit Convention

We use Conventional Commits:

  • feat: New features
  • fix: Bug fixes
  • docs: Documentation changes
  • style: Code style changes
  • refactor: Code refactoring
  • test: Test additions/changes
  • chore: Build/tooling changes

Development Guidelines

  • Write unit tests for all new functionality
  • Follow the existing code style and patterns
  • Update documentation for new features
  • Ensure all tests pass before submitting PRs

๐Ÿ“„ License

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

๐Ÿ™ Acknowledgments

  • Tauri - Cross-platform desktop framework
  • NuxtJS - Vue.js framework
  • TailwindCSS - Utility-first CSS framework
  • Rust - Systems programming language
  • xTerm.js - Terminal emulator for the web
  • SurrealDB - Multi-model database

๐Ÿ“ž Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Include your operating system and version information

๐Ÿ”ฎ Roadmap

  • xTerm.js integration for terminal functionality
  • SurrealDB integration for data persistence
  • Advanced terminal features (tabs, split panes)
  • Custom themes and color schemes
  • Plugin system for extensibility
  • Cross-platform package distribution

Nebula Terminal - Where modern design meets powerful functionality. โœจ

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors