Tsdev (Zero Config Modern Typescript Projects)

Tsdev (Zero Config Modern Typescript Projects)

Motivation

I really like the idea behind https://github.com/jaredpalmer/tsdx but I find it uses older tools and it ends up taking time for me to setup my typescript packages anyways. So I wanted to make something like it that fit my stack and preferred tools better, something that obfuscates all the configuration needed to run modern typescript applications and allows use to get started instantly.

Get started

npm install -g tsdev-installer

tsdev create {name}

Features

  • Instantly bootstrap typescript apps for express, react and next
  • Automatically handles all eslint and prettier config
  • Comes with built in dev mode with in built watcher
  • Use very fast built tools, like esbuild and vite
  • Inbuilt config and setup for tailwind
  • Has tooling for bundling .dts with dts-bundle
  • Has defaults for publishing react packages with vite-library-mode
    • Adds support for twind (tailwind as css-in-js) so you can publish react packages while using tailwind with tiny bundles. This also has better support when use in next

Base commands

➜ tsdev --help
NAME:
   tsdev - Zero config modern typescript tooling

USAGE:
   tsdev [global options] command [command options] Run a .ts file with zero config directly

COMMANDS:
   create    Create a new application
   dev       This run the app in dev mode with file watching
   build     This builds the app for production.
   prettier  Will run pretty-quick
   lint      Will lint the application
   help, h   Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --watch     Run in watch mode (default: false)

Templates

Templates are not stored here, this just allows us to keep this repo clean, all the templates are here https://github.com/CryogenicPlanet/tsdev-templates/ and are hosted at https://tsdev.vercel.app/

TODOs

Some of these might happen sooner than others. If you want something to be prioritized make an issue

  • [] Monorepo support, automatically bootstrap monorepos
  • [] Support for publishConfig beyond just pnpm. This is super useful for typescript packages in monorepos
  • [] Add basic CI setup for github actions (with all three package managers)
  • [] Add defaults for publishing normal non-react packages
  • [] Allow overwriting or extending eslint configs
  • [] Add graphql template using tsgql. This will be graphql without having to write any graphql code at all, just typescript.
  • [] Add prisma batteries
  • [] Add support for all nextjs examples from https://github.com/vercel/next.js/tree/canary/examples
  • tsdev filename Automatically run any .ts or .tsx file with zero config
    • The .ts part of this is easy, it is basically what tsdev dev filename is
    • The .tsx part is a bit more complicated, and will require making a custom version of vite that just runs file without a config file or a .html file or having to use react-dom yourself
  • [] Make vite default template use filesystem routing
  • [] Clone bun run feature to allow really fast npm run commands
  • [] Add support for bun once it becomes more stable
Owner
Similar Resources

⚙️ Dead Simple Config Management, load and persist config without having to think about where and how.

Configo Dead Simple Config Management, load and persist config without having to think about where and how. Install go get github.com/UltiRequiem/conf

Apr 6, 2022

Traefik config validator: a CLI tool to (syntactically) validate your Traefik configuration filesTraefik config validator: a CLI tool to (syntactically) validate your Traefik configuration files

Traefik config validator: a CLI tool to (syntactically) validate your Traefik configuration filesTraefik config validator: a CLI tool to (syntactically) validate your Traefik configuration files

Traefik Config Validator Note This is currently pre-release software. traefik-config-validator is a CLI tool to (syntactically) validate your Traefik

Dec 16, 2021

Go-config - Config parser for go that supports environment vars and multiple yaml files

go-multiconfig This package is able to parse yaml config files. It supports gett

Jun 23, 2022

Goconf - The rudimentary golang config tool purpose is to config PHP servers via SSH

goconf The rudimentary golang config tool purpose is to config PHP servers via S

Jan 31, 2022

A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.

age age is a simple, modern and secure file encryption tool, format, and library. It features small explicit keys, no config options, and UNIX-style c

Dec 28, 2022

A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.

A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.

A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.

Jan 7, 2023

A flexible and powerful SQL string builder library plus a zero-config ORM.

SQL builder for Go Install Usage Basic usage Pre-defined SQL builders Build SQL for MySQL, PostgreSQL or SQLite Using Struct as a light weight ORM Nes

Dec 30, 2022

Fast, zero config web endpoint change monitor

Fast, zero config web endpoint change monitor

web monitor fast, zero config web endpoint change monitor. for comparing responses, a selected list of http headers and the full response body is stor

Nov 17, 2022

Web-based, zero-config, dependency-free database schema change and version control tool for teams

Web-based, zero-config, dependency-free database schema change and version control tool for teams

Live Demo • Install • Help • Development • Design Doc Bytebase is a web-based, zero-config, dependency-free database schema change and version control

Jan 1, 2023

“Dear Port80” is a zero-config TCP proxy server that hides SSH connection behind a HTTP server!

Dear Port80 About The Project: “Dear Port80” is a zero-config TCP proxy server that hides SSH connection behind a HTTP server! +---------------------

Jun 29, 2022

A lightweight yet powerful config package for Go projects

Config GoLobby Config is a lightweight yet powerful config package for Go projects. It takes advantage of env files and OS variables alongside config

Dec 11, 2022

A go project generator, which aims to simplify building and releasing go projects by storing all project configuration in a single file called gojen.json, and creates appropriate workflow/git files using that config.

gojen Define your go project's configuration using a json config. This config can be used to generate a new go project for you, and can also create co

Mar 8, 2022

A simple multi-layered config loader for Go. Made for smaller projects. No external dependencies.

gocfg ⚠️ Work in progress! A simple multi-layered config loader for Go. Made for smaller projects. No external dependencies. Example From main.go: //

Dec 26, 2021

A simple multi-layered config loader for Go. Made for smaller projects. No external dependencies.

config ⚠️ Work in progress! A simple multi-layered config loader for Go. Made for smaller projects. No external dependencies. Installation go get -u g

Dec 26, 2021

Clones github projects into ~/Projects/github/{org}/{repo}

Tidy clone Github cli extension (gh extension) to clone repos into ~/Projects/github/{org}/{repo} on the local filesystem Install gh extension install

Jan 19, 2022

Generate TypeScript interfaces from Go structs/interfaces - useful for JSON RPC

bel Generate TypeScript interfaces from Go structs/interfaces - useful for JSON RPC bel is used in production in https://gitpod.io. Getting started be

Oct 23, 2022

[TOOL, CLI] - Filter and examine Go type structures, interfaces and their transitive dependencies and relationships. Export structural types as TypeScript value object or bare type representations.

typex Examine Go types and their transitive dependencies. Export results as TypeScript value objects (or types) declaration. Installation go get -u gi

Dec 6, 2022

XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator

xgen Introduction xgen is a library written in pure Go providing a set of functions that allow you to parse XSD (XML schema definition) files. This li

Jan 1, 2023

An extremely opinionated TypeScript monorepo tool.

Unirepo is an extremely opinionated TypeScript build tool. Typical monorepo management tools in the Node.js ecosystem provide automation aroun

Nov 29, 2022
Comments
  • TODOs

    TODOs

    Wanted to move the TODOs from the Readme to an issue

    All template requests can go here https://github.com/CryogenicPlanet/tsdev-templates/issues/1

    Some of these might happen sooner than others. If you want something to be prioritized make an issue

    • [] Monorepo support, automatically bootstrap monorepos
    • [] Support for publishConfig beyond just pnpm. This is super useful for typescript packages in monorepos
    • [] Add basic CI setup for github actions (with all three package managers)
    • [x] Add defaults for publishing normal non-react packages
    • [] Allow overwriting or extending eslint configs
    • [] Add graphql template using tsgql. This will be graphql without having to write any graphql code at all, just typescript.
    • [] Add prisma batteries
    • [] Add support for all nextjs examples from https://github.com/vercel/next.js/tree/canary/examples
    • [x] tsdev filename Automatically run any .ts or .tsx file with zero config
      • [x] The .ts part of this is easy, it is basically what tsdev dev filename is
      • The .tsx part is a bit more complicated, and will require making a custom version of vite that just runs file without a config file or a .html file or having to use react-dom yourself
    • [] Make vite default template use filesystem routing
    • [] Clone bun run feature to allow really fast npm run commands
    • [] Add support for bun once it becomes more stable
  • Change prettier default command to be prettier instead of prettier-quick

    Change prettier default command to be prettier instead of prettier-quick

    Many times when linting a project, you want to lint all the files and not just the staged files, so please change the default command to use just prettier. If you want to still want to have it be prettier quick by default, can there at least be a --all flag to lint all files?

Generate a modern Web project with Go and Angular, React or Vue in seconds 🚀
Generate a modern Web project with Go and Angular, React or Vue in seconds 🚀

Goxygen Generate a Web project with Go and Angular, React or Vue. Goxygen aims at saving your time while setting up a new project. It creates a skelet

Jan 5, 2023
listmonk is a standalone high performance, self-hosted newsletter and mailing list manager with a modern dashboard. Single binary app.
listmonk is a standalone high performance, self-hosted newsletter and mailing list manager with a modern dashboard. Single binary app.

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL database as its data store.

Jan 1, 2023
Modern UI for Ansible
Modern UI for Ansible

Releases Docker Hub Install Instructions Troubleshooting Contribution Guide Roadmap UI Walkthrough (external blog) Release Signing All releases after

Jan 2, 2023
Store files in Telegram messages for free and access them from a modern Web UI

Telegram Storage Store files in Telegram messages for free and access them in a nice web UI. Telegram allows to store files (of max 2GB each) for a un

Jan 4, 2023
GoTrue is a small open-source API written in Golang, that can act as a self-standing API service for handling user registration and authentication for Jamstack projects.
GoTrue is a small open-source API written in Golang, that can act as a self-standing API service for handling user registration and authentication for Jamstack projects.

GoTrue is a small open-source API written in Golang, that can act as a self-standing API service for handling user registration and authentication for Jamstack projects.

Dec 13, 2021
This is a template project to help beginners learn, or to help developers develop some interesting small projects
This is a template project to help beginners learn, or to help developers develop some interesting small projects

This is a template project to help beginners learn, or to help developers develop some interesting small projects

Dec 13, 2022
Minimal bundling for projects that require generation (e.g. SASS to CSS)

staticgen staticgen is a tool that generates file bundles and watches directories for changes. Configuration Project configurations are specified in t

Dec 14, 2021
Kuncie Cart - An implementation of Kuncie cart in Golang projects

Kuncie Cart - An implementation of Kuncie cart in Golang projects

Jan 21, 2022
K8s-network-config-operator - Kubernetes network config operator to push network config to switches

Kubernetes Network operator Will add more to the readme later :D Operations The

May 16, 2022
protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript clients that connect the web frontend and golang backend fronted by grpc-gateway.

protoc-gen-grpc-gateway-ts protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript

Dec 19, 2022