fox-archives / tails

tails enables you to view, edit, and organize all your programming projects in one place

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tails 🦊

tails enables you to view, edit, and organize all your programming projects in one place

are you tried of

  • creating the same boilerplate when starting new side projects / apps?
    • ex. editorconfig, prettier, eslint, stylelint, vscode
    • ex. webpack w/ hmr, nodemon
  • not having good linting / styling configurations, because you are tired of setting them up every time?
  • having to search for your project on your hard drive, and find out how to run / access / deploy it?
  • leveraging websites purported to solve these problems (ex. jsfiddle, codesandbox, etc), but they come with some other problems
    • sometimes code output is shown in tiny iframe
    • use online code editor, which is not your ide with all the good plugins
    • projects not stored under version control
    • no easy way to see all / organize your projects from all these sites
    • have projects work easily after you download them (if there is a way to download from the site)

don't you want

  • a tool that helps you organize all your side projects / apps
  • a framework, utility, and ide agnostic tool
  • something super extensible, allowing you to easily add a plugin to extend the feature set for how you want it to be

goals

to be a hub for all your projects, and be super extensible via plugins to modify projects however you like. some examples

  • plugin that automatically boilerplates configuration for programing projects (ex. using yeoman)
    • creates perfect combo of editorconfig, prettier, eslint, stylelint, and vscode setting to go with it etc.
  • plugin that integrated with zeit, netlify etc. one click deploy solutions
  • plugin that deploys chosen microservices to kubernetes cluster on demand
  • plugin that opens up your project with a browser version of vscode, with all the plugins you need (no extras to slow launch time)
  • plugin that gives you integrated dns (so nice urls) during development
  • browse through, label, sort, and manage all your projects within the web interface
  • leverage the tools that some with your ide as much as possible
  • show projects from repl.it, codepen, codesandbox, etc. as separate workspaces
  • plugin security (server side code runs on separate Deno instance)
  • avoid reinventing the wheel

details

some or most of these should be plugins that come bundled by default

  • project type examples
    • web, spa, node, node + spa, deno, c++, scala, etc.
  • ability to 'upgrade' web projects
    • ex. 'upgrade' web (static files) to node (importing express or server-static, etc.)
      • this copies rather than edits to prevent mistakes in upgrade process
    • ex. 'upgrade' (we w/ webpack bundler) + node to non-managed projects
    • similar ejecting for ejecting out of boilerplated config if needed
  • showing stdout / stderr
    • maybe have cli so we can just output crap in an existing pty
    • or just for plugins
  • linting / style formatting
    • option to have no linting or style formatting (meaning, the editor does everything)
    • or option to have prettier, eslint configs symlinked to project directory and have watch optiosn for auto update
    • or have combo wombo or something
  • show generated metadata
    • how much browser support your website has
    • size of codebase gzipped, minified, etc.
  • misc
    • open any mount of subprojecs at once without conflicts

terminology

a project is a folder that contains a programming project

  • ex. folder that contains a package.json
  • ex. folder that is the root of a monorepo

a pack is a folder that contains projects

  • starts with underscore _
  • purpose to make workspace folder less flat and generic categorization
  • does not nest

a workspace is a folder that contains projects and packs

  • specified ~/.config/tails/config.json
  • usually only one is needed

the following is an example of a worksapce called programming-projects

> programming-projects (workspace folder)
  > _30-day-js-challenge
    > day-1
    > day-2
    > day-3
    > ...
  > _throwaway
    > mongodb-test
    > grpc-node-go-experiment
    > create-react-app-test
    > vue-3-alpha-composition-api
  > chat-app
  > custom-database
  > cool-react-app

usage

project still in (heavy) early development (pre-alpha)

contributing

git clone --recurse-submodules https://github.com/eankeen/tails
yarn install
make start

About

tails enables you to view, edit, and organize all your programming projects in one place

License:GNU General Public License v3.0


Languages

Language:TypeScript 55.7%Language:JavaScript 39.5%Language:CSS 2.4%Language:HTML 2.2%Language:Makefile 0.1%Language:Python 0.0%